序列表產生器模型
tflearn.models.generator.SequenceGenerator (network, dictionary=None, seq_maxlen=25, clip_gradients=0.0, tensorboard_verbose=0, tensorboard_dir='/tmp/tflearn_logs/', checkpoint_path=None, max_checkpoints=None, session=None)
用於產生序列的深度神經網路模型。
參數
- network:
Tensor
。要使用的網路。 - dictionary:
dict
。將每個範例與一個金鑰關聯的字典(通常為整數)。例如:{'a': 0, 'b': 1, 'c': 2, ...}。 - seq_maxlen:
int
。序列的最大長度。 - tensorboard_verbose:
int
。摘要詳盡程度,它接受不同程度的 tensorboard 記錄。
0 - Loss, Accuracy (Best Speed).
1 - Loss, Accuracy, Gradients.
2 - Loss, Accuracy, Gradients, Weights.
3 - Loss, Accuracy, Gradients, Weights, Activations, Sparsity.(Best visualization)
- tensorboard_dir:
str
。用於儲存 tensorboard 記錄的目錄。預設值:"/tmp/tflearn_logs/" - checkpoint_path:
str
。用於儲存模型檢查點的檔案路徑。如果設為 None,則不會儲存任何模型檢查點。預設值:None。 - max_checkpoints:
int
或 None。檢查點的最大數量。如果設為 None,則不設限。預設值:None。 - session:
Session
。用於執行操作的階段。如果設為 None,則會建立一個新的階段。注意:當提供一個階段時,變數必須已經初始化完畢,否則會產生一個錯誤訊息。
屬性
- trainer:
Trainer
。處理模型訓練。 - predictor:
Predictor
。處理模型預測。 - session:
Session
。目前的模型階段。
方法
evaluate (X, Y, batch_size=128)
根據提供的範例評估模型。
參數
- X: 陣列、陣列
list
(如果有多個輸入)或dict
(包含輸入層名稱做為金鑰)。用來訓練模型的資料。 - Y:陣列、陣列的
清單
(如果有多個輸入)或詞典
(以估計器層名稱作為鍵)。供應給訓練模型的目標(標籤)。通常設定為序列的下一元素,即 x[0] => y[0] = x[1]。 - batch_size:
int
。批次大小。預設: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, run_id=None)
訓練模型,饋入 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:陣列、陣列的
清單
(如果有多個輸入)或詞典
(以估計器層名稱作為鍵)。供應給訓練模型的目標(標籤)。通常設定為序列的下一元素,即 x[0] => y[0] = x[1]。 - n_epoch:
int
。執行輪次數。預設:無。 - validation_set:
tuple
。表示用於驗證的資料。tuple
包含資料和目標(提供與 X_inputs 和 Y_targets 相同的類型)。此外,它也接受float
(<1)對訓練資料進行資料分割。 - show_metric:
bool
。顯示或不顯示每個步驟的準確率。 - batch_size:
int
或 None。如果是int
,會用此值覆寫所有網路估計器的「批次大小」。 - shuffle:
bool
或 None。如果是bool
,會用此值覆寫所有網路估計器的「重新調整順序」。 - snapshot_epoch:
bool
。如果為真,會在每個輪次結束時擷取模型快照。(擷取模型快照會在驗證集中評估此模型,並在指定「檢查點路徑」時建立檢查點。) - snapshot_step:
int
或 None。如果是int
,會在每「snapshot_step」個步驟擷取模型快照。 - excl_trainops:
TrainOp
組成的清單
。要從訓練過程中排除的訓練操作清單(TrainOp 可透過tf.get_collection_ref(tf.GraphKeys.TRAIN_OPS)
擷取)。 - run_id:
str
。給予此執行階段一個名稱。(適用於 Tensorboard)。
generate (seq_length, temperature=0.5, seq_seed=None, display=False)
產生一個序列。溫度控制建立的序列的新穎性,接近 0 的溫度看起來會像用於訓練的樣本,而溫度越高,新穎性就越高。建議將序列種子設定為訓練資料集的一些隨機序列樣本來獲得最佳的結果。
參數
- seq_length:
int
。生成的序列長度。 - temperature:
float
。新穎性比率。 - seq_seed:
sequence
。用於產生新序列的種子序列。建議使用來自訓練資料的序列。 - display:
bool
。為 True 時,會在產生序列時加以列印。
傳回
產生的序列。
get_weights (weight_tensor)
取得變數權重。
範例
sgen = SequenceGenerator(...) w = sgen.get_weights(denselayer.W) -- 取得密集層權重
參數
- weight_tensor:
tf.Tensor
。變數。
傳回
np.array
。提供的變數權重。
load (model_file, **optargs)
還原模型權重。
參數
- model_file:
str
。模型路徑。 - optargs: 訓練器還原的額外選用引數(參閱 helpers/trainer.py)。這些選用引數可用於限制已還原變數的範圍,以及控制是否為已還原變數建立新會話。
save (model_file)
儲存模型權重。
參數
- model_file:
str
。模型路徑。
set_weights (tensor, weights)
為張量變數指定特定值。
參數
- tensor:
Tensor
。要指定值的張量變數。 - weights: 要指定的的值。