![](/img/trans.png)
[英]How do I know the total number of steps while training using Tensorflow Object Detection API?
[英]How to reduce the number of training steps in Tensorflow's Object Detection API?
我不认为你可以减少训练步骤的数量,但你可以在任何检查点( ckpt
)停止,然后将其转换为.pb
文件
从 TensorFlow 模型 git 存储库中,您可以使用export_inference_graph.py
和以下代码
python tensorflow_models/object_detection/export_inference_graph.py \
--input_type image_tensor \
--pipeline_config_path architecture_used_while_training.config \
--trained path_to_saved_ckpt/model.ckpt-NUMBER \
--output_directory model/
其中NUMBER
是指您最近保存的检查点文件编号,但是如果您在 tensorboard 中发现它更好,您可以使用较旧的检查点文件
1)恐怕没有有效的方法来“减少”训练步骤。 使用更大的批量可能会导致“更快”的训练(例如,在较少的步骤中达到高精度),但每个步骤都需要更长的时间来计算,因为您在 CPU 上运行。 使用输入图像分辨率可能会加快速度,但代价是精度较低。 您真的应该考虑迁移到配备 GPU 的机器上。
2) .pb
文件(及其相应的文本版本.pbtxt
)默认仅包含图形的定义。 如果你冻结你的图表,你会采取一个检查点,获取图表中定义的所有变量,将它们转换为常量,并将存储在检查点中的值分配给它们。 您通常这样做是为了将经过训练的模型发送给使用它的任何人,但这在训练阶段是无用的。
我强烈建议找到一种方法来加快每个训练步骤的运行时间,而不是减少训练步骤的数量。 最好的方法是使用 GPU。 如果你不能这样做,你可以考虑降低图像分辨率或使用更轻的网络。
要转换为冻结推理图(.pb 文件),请参阅此处的文档: https : //github.com/tensorflow/models/blob/master/research/object_detection/g3doc/exporting_models.md
是的,.config 文件中有一个参数,您可以在其中尽可能减少步骤数。 num_steps:在 .config 文件中,它实际上是训练中的时期数。
但请记住,不建议减少太多。因为如果减少太多,您的损失函数不会减少太多,这会给您带来糟糕的输出。
所以继续观察损失函数,一旦它低于 1 ,那么你就可以开始单独测试你的模型,你的训练就会发生。
1. 是的,有一种方法可以改变训练步骤的数量:
试试这个,
python model_main_tf2.py --pipeline_config_path="config_path_here" --num_train_steps=5000 --model_dir="model_dir_here" --alsologtostderr
这里我将训练步数设置为 5000
2. 是的,有一种方法可以将检查点转换为 .pb:
试试这个,
python exporter_main_v2.py --trained_checkpoint_dir="checkpoint_dir_here" --pipeline_config_path="config_path_here" --output_directory "output_dir_here"
这将创建一个目录,用于保存检查点和 .pb 文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.