序列生成模型

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: listTrainOp。要从训练过程中排除的训练操作列表(可以通过 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: 要分配的值。