TensorFlow 对象检测 API 没有 train.py 文件

Posted

技术标签:

【中文标题】TensorFlow 对象检测 API 没有 train.py 文件【英文标题】:Tensorflow Object Detection API no train.py file 【发布时间】:2018-12-26 13:08:09 【问题描述】:

我已根据提供的文档正确安装了 Tensorflow 对象检测 API。但是,当我需要训练我的网络时,research/object_detection 目录中没有 train.py 文件。 有什么办法可以解决这个问题吗?

链接:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md

【问题讨论】:

你可以用这个fix显示损失。 【参考方案1】:

为了澄清一下,正如 Derek Chow 所提到的,训练和评估 python 脚本似乎最近(大约 6 天前)移到了“遗留”目录中。 假设您想继续使用旧方式..

如果一个人是通过调用来开始训练的:

python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config

一个人会知道通过调用开始训练:

python legacy/train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config

【讨论】:

谢谢。关键是我运行了 model_main 新脚本,但它似乎没有在控制台上显示损失。使用之前的脚本 (train.py) 我可以在控制台上清楚地看到类似的内容: step n -- loss: 2.5312 step n+1 --loss: 2.5310【参考方案2】:

你应该参考Running locally 教程页面上的部分。

这是示例配置:

#From the tensorflow/models/research/ directory
PIPELINE_CONFIG_PATH=path to pipeline config file
MODEL_DIR=path to model directory
NUM_TRAIN_STEPS=50000
NUM_EVAL_STEPS=2000
python object_detection/model_main.py \
    --pipeline_config_path=$PIPELINE_CONFIG_PATH \
    --model_dir=$MODEL_DIR \
    --num_train_steps=$NUM_TRAIN_STEPS \
    --num_eval_steps=$NUM_EVAL_STEPS \
    --alsologtostderr 

并运行张量板:

tensorboard --logdir=$MODEL_DIR

【讨论】:

你是说model_main.py 既训练又评估?如果我因为需要监督学习阶段而想单独运行它们怎么办?【参考方案3】:

在最新的合并中,train 和 eval 移动到了 legacy 目录。如果您使用教程,则可以转到以前的版本。

【讨论】:

【参考方案4】:

您可以使用 legacy 训练和评估脚本,但我们建议使用 model_main。

【讨论】:

新的model_main脚本在控制台不显示loss正常吗?还是 mt tf 配置有问题? 您应该会看到由 model_main 生成的事件文件。在 tensorboard 中可视化这些以查看训练损失。 这是真的 Derek,但不是在每一步都生成 tf 事件。它们每 50-70 步记录一次。这就是为什么在控制台上打印损失值很有用。 你好 Derek,当使用 model_main.py 时,我们可以在哪里修改以在控制台上显示损失值?谢谢你,贾科莫,问这个问题。 我也有同样的关于损失的问题,仍在等待任何人的回答。

以上是关于TensorFlow 对象检测 API 没有 train.py 文件的主要内容,如果未能解决你的问题,请参考以下文章

没有这样的选项:安装 tensorflow 对象检测 api 时的 --use-feature

我应该包含 Tensorflow 对象检测 API 的负面示例吗?

TensorFlow 对象检测 API 中的超参数优化

TensorFlow 对象检测 API - 对象检测 api 中的损失意味着啥?

具有奇怪检测结果的 TensorFlow 对象检测 api

Tensorflow 对象检测 API 中的过拟合