如何使用TFSlim库训练模型?

时间:2019-04-18 06:36:09

标签: python tensorflow machine-learning deep-learning computer-vision

我正在阅读对象检测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的源代码。

1 个答案:

答案 0 :(得分:0)

train函数不会返回值,因为它会修改模型的实际参数。该函数通过运行train_tensor来完成该操作,即:“一个Tensor在执行时将应用梯度并返回损耗值。”如function documentation中所述。

张量文档讨论了当您告诉优化器优化某些成本函数时会得到什么。在以下示例中为opt_op

opt = GradientDescentOptimizer(learning_rate=0.1)
opt_op = opt.minimize(cost)

optimizer documentation中查找更多信息。