我正在阅读Object Detection API源代码,我想知道如何使用TFSlim来训练模型?
更具体地说,当我们使用Tensorflow训练模型时,我们使用这样的东西:
parameters = model(X_train, Y_train, X_test, Y_test)
# Returns: parameters -- parameters learnt by the model.
# They can then be used to predict.
为了预测结果,我们使用类似的东西:
y_image_prediction = predict(my_image, parameters)
但在文件trainer.py中,我们没有上面的内容,我们只得到:
slim.learning.train(
train_tensor,
logdir=train_dir,
master=master,
is_chief=is_chief,
session_config=session_config,
startup_delay_steps=train_config.startup_delay_steps,
init_fn=init_fn,
summary_op=summary_op,
number_of_steps=(
train_config.num_steps if train_config.num_steps else None),
save_summaries_secs=120,
sync_optimizer=sync_optimizer,
saver=saver)
关于这个slim.learning.train
函数没有回报。所以我想知道slim.learning.train
函数的使用是什么,我们如何获得参数 - 可以用来预测结果?
HERE是trainer.py的源代码。
train
函数不返回值,因为它修改了模型的实际参数。该函数通过运行train_tensor
来执行此操作,该命令是:“执行时将执行渐变并返回损失值的Tensor
。”正如function documentation所写。
当你告诉优化器优化某些成本函数时,文档会讨论你得到的内容。在以下示例中是opt_op
:
opt = GradientDescentOptimizer(learning_rate=0.1)
opt_op = opt.minimize(cost)
在optimizer documentation中查找更多信息。