代码之家  ›  专栏  ›  技术社区  ›  Suraksha Ajith

如何减少Tensorflow对象检测API中的训练步骤数?

  •  1
  • Suraksha Ajith  · 技术社区  · 7 年前

    我正在关注 Dat Trans 使用TensorFlows对象检测器API训练我自己的对象检测器的示例。

    我成功地开始训练自定义对象。我正在使用CPU训练模型,但大约需要3个小时才能完成100个训练步骤。我想我必须在 .config .

    我试图转换 .ckpt .pb ,我提到 this 但我仍然无法转换

    1) 如何减少训练步骤的数量?
    2) 有办法转换吗 .ckpt公司 .铅 .

    5 回复  |  直到 7 年前
        1
  •  3
  •   Prakash    7 年前

    我认为你不能减少训练步骤的数量,但你可以在任何检查点停下( 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

        2
  •  2
  •   GPhilo satyendra    7 年前

    1) 恐怕没有有效的方法来“减少”训练步骤。使用更大的批量 也许 引导“更快”的训练(如,达到高精度 以更少的步骤 每一步都需要更长的时间 计算,因为你是在你的CPU上运行。 使用输入图像分辨率可能会加快速度,但代价是精度较低。 你真的应该考虑转移到一台有GPU的机器上。

    2) .pb 文件(及其相应的文本版本 .pbtxt )默认情况下,仅包含图形的定义。如果你 冻结 在你的图中,你需要一个检查点,获取图中定义的所有变量,将它们转换为常数,并为它们分配存储在检查点中的值。您通常这样做是为了发货 向任何使用它的人示范,但这在训练阶段是无用的。

        3
  •  0
  •   Jonathan Huang    7 年前

    我强烈建议找到一种方法来加快每个训练步骤的运行时间,而不是减少训练步骤的数量。最好的方法是使用GPU。如果你做不到这一点,你可以考虑降低图像分辨率或使用更轻的网络。

    要转换为冻结推理图(pb文件),请参阅此处的文档: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/exporting_models.md

        4
  •  0
  •   Imran Ahmad Ghazali    7 年前

    Ya中有一个参数。配置文件,您可以在其中根据需要减少步骤数。num_步骤:在中。配置文件,实际上是训练中的历次数。

    但请记住,不建议减少太多。因为如果你减少很多,你的损失函数将不会减少很多,这将给你带来糟糕的输出。

    所以继续看损失函数,一旦它低于1,那么你可以开始单独测试你的模型,你的训练就会开始。

        5
  •  0
  •   aalbagarcia    4 年前

    1.是的,有一种方法可以更改培训步骤的数量:

    试试这个,

    python model_main_tf2.py --pipeline_config_path="config_path_here" --num_train_steps=5000 --model_dir="model_dir_here" --alsologtostderr
    

    在这里,我将训练步骤的数量设置为5000

    是的,有一种方法可以将检查点转换为。pb:

    试试这个,

    python exporter_main_v2.py --trained_checkpoint_dir="checkpoint_dir_here" --pipeline_config_path="config_path_here" --output_directory "output_dir_here"
    

    这将创建一个目录,其中包含检查点和。pb文件将被保存。