六步法
1.import
2.train test(數(shù)據(jù)集劃分)
3.model=tf.keras.models.Sequential(搭建網(wǎng)絡結構)
4.model.complie(設置訓練方法)
5.model.fit(訓練過程)
6.model.summary(打印網(wǎng)絡結構和參數(shù))
Sequential
- 全連接層
tf.keras.layers.Dense(神經(jīng)元個數(shù),activation=激活函數(shù),kernel_regularizer=正則化方法)
激活函數(shù)可選:
relu/softmax/sigmoid/tanh
正則化方式可選:
tf.keras.regularizers.l1()
tf.keras.regularizers.l2()
- 拉直層
tf.keras.layers.Flatten()
不進行計算只對形狀進行轉換,將輸入特征轉化為1維數(shù)組 - 其他層用到再補充
compile
model.compile(optimizer = 優(yōu)化器,loss = 損失函數(shù),metrics=[評判指標])
優(yōu)化器可選:
tf.keras.optimizers.SGD(lr=學習率,momentum=動量參數(shù))
tf.keras.optimizers.Adagrad(lr=學習率)
tf.keras.optimizers.Adadelta(lr=學習率)
tf.keras.optimizers.Adam(lr=學習率,beta1=0.9,beta2=0.999)
loss可選:
均方誤差:tf.keras.losses.MeanSquaredError()
交叉,也可填名稱mse熵:tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
最后一個參數(shù)用于設置網(wǎng)絡是否經(jīng)過了softmax進行均值分布,是原始分布則為true,經(jīng)過概率分布則使用false
也可填名稱sparse_categorical_crossentropy
如果預測概率和無信息計算的概率相同,應當檢查此處
metrics可選:
accuracy:表示label和預測結果都是數(shù)值
categorical_accuracy:label和預測結果都是獨熱碼(即概率分布)
sparse_categorical_accuracy:label是數(shù)值,預測結果是獨熱碼
fit
model.fit(訓練集輸入特征,訓練集標簽,batch_szie=,epoch=,validation_data=(測試集的特征,測試集的標簽),validation_split=從訓練集劃分多少比例給測試集,validation_freq=多少epoch進行一次驗證)
summary
打印網(wǎng)絡結構和參數(shù)統(tǒng)計