序列生成模型
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: 数组,
list
数组(如果有多个输入)或dict
(以估计器层名称作为键)。要馈送到训练模型的目标(标签)。通常设置为序列的下一个元素,即对于 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: 数组,
list
数组(如果有多个输入)或dict
(以输入层名称作为键)。要馈送到训练模型的数据。 - Y_targets: 数组,
list
数组(如果有多个输入)或dict
(以估计器层名称作为键)。要馈送到训练模型的目标(标签)。通常设置为序列的下一个元素,即对于 x[0] => y[0] = x[1]。 - n_epoch:
int
。要运行的时期数。默认值:None。 - validation_set:
tuple
。表示用于验证的数据。tuple
保存数据和目标(类型与 X_inputs 和 Y_targets 相同)。此外,它还接受float
(<1)以对训练数据执行数据拆分。 - show_metric:
bool
。是否在每个步骤显示准确率。 - batch_size:
int
或 None。如果为int
,则使用此值覆盖所有网络估计器的“batch_size”。 - shuffle:
bool
或 None。如果为bool
,则使用此值覆盖所有网络估计器的“shuffle”。 - snapshot_epoch:
bool
。如果为 True,则会在每个时期结束时对模型进行快照。(对模型进行快照将在验证集上评估此模型,并在指定了“checkpoint_path”的情况下创建检查点)。 - snapshot_step:
int
或 None。如果为int
,则每隔“snapshot_step”步对模型进行快照。 - excl_trainops:
list
的TrainOp
。要从训练过程中排除的训练操作列表(可以通过tf.get_collection_ref(tf.GraphKeys.TRAIN_OPS)
检索 TrainOps)。 - 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: trainer.restore 的可选额外参数(请参阅 helpers/trainer.py)这些可选参数可用于限制恢复变量的范围,以及控制是否为恢复的变量创建新会话。
save (model_file)
保存模型权重。
参数
- model_file:
str
。模型路径。
set_weights (tensor, weights)
为张量变量分配给定值。
参数
- tensor:
Tensor
。要分配值的张量变量。 - weights: 要分配的值。