深度神經網路模型
tflearn.models.dnn.DNN (網路, 剪貼梯度=5.0, 張量板詳細資訊=0, 張量板資料目錄='/tmp/tflearn_logs/', 檢查點路徑=無, 最佳檢查點路徑=無, 最多檢查點數量=無, 工作階段=無, 最佳驗證精確度=0.0)
待辦事項:完成說明
引數
- 網路:
Tensor
。要使用的神經網路。 - 張量板詳細資訊:
int
。摘要詳細資訊層級,接受不同層級的張量板記錄
0: Loss, Accuracy (Best Speed).
1: Loss, Accuracy, Gradients.
2: Loss, Accuracy, Gradients, Weights.
3: Loss, Accuracy, Gradients, Weights, Activations, Sparsity.(Best visualization)
- 張量板資料目錄:
str
。儲存張量板記錄的目錄。預設值:"/tmp/tflearn_logs/" - 檢查點路徑:
str
。儲存模型檢查點的路徑。如果設為「無」,則不會儲存任何模型檢查點。預設值:無。 - 最佳檢查點路徑:
str
。如果驗證率達到目前訓練工作階段的最高點,且高於 best_val_accuracy,就會儲存模型的路徑。預設值:無。 - 最多檢查點數量:
int
或「無」。檢查點的最大數量。如果設為「無」,則沒有限制。預設值:無。 - 工作階段:
工作階段
。執行運算的工作階段。如果設為「無」,就會建立一個新的工作階段。注意:提供工作階段時,變數必須已經初始化,否則會擲回錯誤。 - 最佳驗證精確度:
float
模型權重儲存至 best_checkpoint_path 之前,必須達到的最低驗證精確度。它使用戶可以跳過最早的儲存,也能在繼續訓練已重新載入的模型時設定最低儲存點。預設值:0.0。
屬性
- 訓練程式:
訓練程式
。處理模型訓練。 - 預測器:
預測器
。處理模型預測。 - 工作階段:
工作階段
。目前模型工作階段。
方法
評估 (X, Y, 批次大小=128)
根據提供樣本來評估模型指標。
引數
- X:陣列、陣列清單 (如果是多個輸入) 或
dict
(輸入層名稱為金鑰)。輸入訓練模型的資料。 - Y:陣列、陣列清單(如果有多個輸入)或字典(以估計器層名稱作為鍵值)。輸入給訓練模型的目標(標籤)。通常設定為序列的下一元素,例如:x[0] => y[0] = x[1]。
- batch_size:整數。批次大小。預設:128。
傳回
指標評分。
fit (X_inputs, Y_targets, n_epoch=10, validation_set=None, show_metric=False, batch_size=None, shuffle=None, snapshot_epoch=True, snapshot_step=None, excl_trainops=None, validation_batch_size=None, run_id=None, callbacks=[])
訓練模型,輸入 X_inputs 和 Y_targets 給網路。
注意:未輸入字典時,資料指定按輸入/估計器層建立順序進行(例如,建立的第二個輸入層將輸入 X_inputs 清單的第二個值)。
範例
model.fit(X, Y) # Single input and output
model.fit({'input1': X}, {'output1': Y}) # Single input and output
model.fit([X1, X2], Y) # Mutliple inputs, Single output
# validate with X_val and [Y1_val, Y2_val]
model.fit(X, [Y1, Y2], validation_set=(X_val, [Y1_val, Y2_val]))
# 10% of training data used for validation
model.fit(X, Y, validation_set=0.1)
引數
- X_inputs:陣列、陣列清單(如果有多個輸入)或字典(以輸入層名稱作為鍵值)。輸入給訓練模型的資料。
- Y_targets:陣列、陣列清單(如果有多個輸入)或字典(以估計器層名稱作為鍵值)。輸入給訓練模型的目標(標籤)。
- n_epoch:整數。執行輪迴數。預設:None。
- validation_set:元組。代表用於驗證的資料。元組包含資料和目標(與 X_inputs 和 Y_targets 型別相同)。此外,它也接受<浮點數(<1)在訓練資料上進行資料分割。
- show_metric:布林值。顯示或不顯示每一步的準確度。
- batch_size:整數或 None。如果為整數,會使用此值覆寫所有網路估計器的「batch_size」。如果為整數,且 validation_batch_size 為 None,也會覆寫 validation_batch_size。
- validation_batch_size:整數或 None。如果為整數,會使用此值覆寫所有網路估計器的「validation_batch_size」。
- shuffle:布林值或 None。如果為布林值,會使用此值覆寫所有網路估計器的「shuffle」。
- snapshot_epoch:布林值。如果為 True,將在每個輪迴結束時建立模型快照。(建立模型快照會在驗證集合上評估此模型,並在指定「檢查點路徑」時建立檢查點)。
- snapshot_step:整數或 None。如果為整數,將每隔「snapshot_step」步驟建立模型快照。
- excl_trainops:TrainOp 清單。從訓練程序中排除的訓練操作清單(可透過 tf.get_collection_ref(tf.GraphKeys.TRAIN_OPS) 取得 TrainOp)。
- run_id:字串。提供此執行階段的名稱。(適用於 Tensorboard)。
- callbacks:回呼函式,或清單。自訂訓練生命週期中使用的回呼函式。
get_weights (weight_tensor)
取得一個變數權重。
範例
dnn = DNNTrainer(...)
w = dnn.get_weights(denselayer.W) # get a dense layer weights
w = dnn.get_weights(convlayer.b) # get a conv layer biases
引數
- weight_tensor:張量。一個變數。
傳回
np.array
。提供的變數權重。
load (model_file, weights_only=False, **optargs)
回復模型權重。
引數
- model_file:
str
。模型路徑。 - weights_only:
bool
。如果為 True,則將只回復權重(以及中間變數,例如:步驟計數器、移動平均數...)。請注意,如果您使用批次標準化,則平均值也不會被回復。 - optargs: trainer.restore 的額外選用參數(請參閱 helpers/trainer.py)。這些選用參數可用于限制回復變數的範圍,並控制是否為已回復的變數建立新的工作階段。
predict (X)
給定輸入資料,則模型預測。
引數
- X: 陣列、陣列的
list
(如果有輸入資料的許多部分),或是dict
(其中輸入圖層名稱作為金鑰)。輸入資料,用於預測。
傳回
陣列或陣列的list
。預測的機率。
predict_label (X)
預測輸入資料 X 的類標籤。
引數
- X: 陣列、陣列的
list
(如果有輸入資料的許多部分),或是dict
(其中輸入圖層名稱作為金鑰)。輸入資料,用於預測。
傳回
陣列或陣列的list
。預測的類別索引陣列,依後裔機率值排序。
save (model_file)
儲存模型權重。
引數
- model_file:
str
。模型路徑。
set_weights (tensor, weights)
指派張量變數一個給定的值。
引數
- tensor:
Tensor
。要指派值的張量變數。 - weights: 將指派的的價值。