我正在阅读对象检测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的源代码。
答案 0 :(得分:0)
train
函数不会返回值,因为它会修改模型的实际参数。该函数通过运行train_tensor
来完成该操作,即:“一个Tensor
在执行时将应用梯度并返回损耗值。”如function documentation中所述。
张量文档讨论了当您告诉优化器优化某些成本函数时会得到什么。在以下示例中为opt_op
:
opt = GradientDescentOptimizer(learning_rate=0.1)
opt_op = opt.minimize(cost)
在optimizer documentation中查找更多信息。