深度神经网络模型
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:
list
的TrainOp
。要从训练过程中排除的训练操作列表(可以通过tf.get_collection_ref(tf.GraphKeys.TRAIN_OPS)
检索 TrainOps)。 - run_id:
str
。为此运行指定名称。(对 TensorBoard 很有用)。 - callbacks:
Callback
或list
。要在训练生命周期中使用的自定义回调
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: 要分配的值。