Tensorflow學習筆記No.1

使用tf.keras.Sequential()創建網絡模型

整個過程可分爲五步:
1建立Sequential模型,2添加所須要的神經層,3使用.compile方法肯定模型訓練結構,4使用.fit方法網絡

使模型與訓練數據「擬合」,5.predict方法進行預測。函數

1.創建Sequential模型

導入tensorflow模塊,使用keras中的Sequential模型學習

import tensorflow as tf
model = tf.keras.Sequential()

keras.Senquential()模型是一個順序堆疊模型,能夠在模型中依次添加所須要的神經層測試

2.添加神經層

使用model.add()方法能夠向創建好的模型中添加須要的神經層優化

 

首先是輸入層lua

1 model.add(tf.keras.layers.Flatten(input_shape = (28, 28)))#輸入的數據爲 28*28的二維數據

Flatten是經常使用的輸入層,能夠把輸入的多維數據展開成一維,便於輸入到神經網絡中spa

input_shape參數是以元組的形式輸入數據的維度code

 

而後是添加中間層,這裏只介紹簡單的幾種中間層對象

Dense:全鏈接神經網絡層blog

Dropout:對於神經網絡單元,按照必定的機率將其暫時從網絡中丟棄

 

1 model.add(tf.keras.layers.Dense(128, activation = "relu"))
2 model.add(tf.keras.layers.Dropout(0.5))

 

Dense中的第一個參數是隻隱藏單元的數量,隱藏單元越多,神經網絡就越複雜,activation參數是Dense層的激活函數。

Dropout是按照必定機率隨機丟棄一些隱藏單元,避免隱藏單元之間出現過強的依賴性形成過擬合,Dropout層能夠有效抑制過擬合,參數是隨機丟棄隱藏單元的機率。

 

最後是添加分類器。

分類器也是一箇中間層,激活函數選用某些用於分類的函數。

softmax就是一個經常使用的分類器。

1 model.add(keras.layers.Dense(10, activation='softmax'))

這裏添加了一個softmax分類器,第一個參數是分類的類別,這是一個10分類的分類器。

 

3.使用.compile()方法肯定模型訓練流程

1 model.compile(optimizer = 'adam', #梯度降低
2               loss = 'sparse_categorical_crossentropy', #損失函數
3               metrics = ['acc'] #正確率
4              )

optimizer參數是選擇模型梯度降低的傳遞優化器實例,也能夠經過下面這種方式自定義優化器中的學習率。

1 optimizer = tf.keras.optimizers.Adam(learning_rate = 0.001)

loss參數是選擇計算模型偏差的損失函數,常見的有均方差‘mse’和'sparse_categorical_crossentropy'等。

metrics用於監視訓練,它們是 tf.keras.metrics模塊中的字符串名稱或可調用對象。

 

4.使用.fit()方法訓練模型

model.fit(train_image, train_label, epochs = 10,batch_size = 32,
          validation_data = (test_image, test_label) 
          #顯示測試集在訓練中的測試狀況
          )

最開始的兩個參數是訓練數據和數據的標籤。

epochs是迭代次數,也就是 對這些數據反覆訓練的次數。

batch_size每次迭代輸入的數據數量。

validation_data監視迭代過程當中在驗證集上達到的效果。

5.評估和預測

1 model.evaluate(test_image, test_label)

使用.evaluate()方法對測試集進行評估。

1 model.predict(test_image[0])

使用.predict()方法對數據進行預測,返回一個預測的結果。

相關文章
相關標籤/搜索