深度神經網路模型

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: 將指派的的價值。