[英]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.