深度神经网络模型

tflearn.models.dnn.DNN (network, clip_gradients=5.0, tensorboard_verbose=0, tensorboard_dir='/tmp/tflearn_logs/', checkpoint_path=None, best_checkpoint_path=None, max_checkpoints=None, session=None, best_val_accuracy=0.0)

待办事项:完善描述

参数

  • network: Tensor。要使用的神经网络。
  • 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。
  • best_checkpoint_path: str。当验证率达到当前训练阶段的最高点并且高于 best_val_accuracy 时存储模型的路径。默认值:None。
  • max_checkpoints: int 或 None。最大检查点数。如果为 None,则没有限制。默认值:None。
  • session: Session。用于运行操作的会话。如果为 None,则会创建一个新会话。注意:提供会话时,必须已经初始化变量,否则会引发错误。
  • best_val_accuracy: float。在将模型权重保存到 best_checkpoint_path 之前需要达到的最小验证准确率。这允许用户跳过早期保存,并在继续训练重新加载的模型时设置最小保存点。默认值:0.0。

属性

  • 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, 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: 数组,list 数组(如果有多个输入)或 dict(以输入层名称作为键)。要馈送到训练模型的数据。
  • Y_targets: 数组,list 数组(如果有多个输入)或 dict(以估计器层名称作为键)。要馈送到训练模型的目标(标签)。
  • n_epoch: int。要运行的时期数。默认值:None。
  • validation_set: tuple。表示用于验证的数据。tuple 保存数据和目标(提供与 X_inputs 和 Y_targets 相同的类型)。此外,它还接受 float(<1)以对训练数据执行数据拆分。
  • show_metric: bool。是否在每个步骤显示准确率。
  • batch_size: int 或 None。如果为 int,则使用此值覆盖所有网络估计器的“batch_size”。如果为 int 并且 validation_batch_size 为 None,则还将覆盖 validation_batch_size
  • validation_batch_size: int 或 None。如果为 int,则使用此值覆盖所有网络估计器的“validation_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 很有用)。
  • callbacks: Callbacklist。要在训练生命周期中使用的自定义回调

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: 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: 要分配的值。