[英]Same label multiple times in one image - Tensorflow
我正在嘗試創建一個 tf model,它可以檢測任何圖像中的任何筆跡。 為了做到這一點,我只用一個 label: edit 在所有火車圖片中制作了標簽。 這意味着,一張圖像可以多次使用此標簽。
經過數小時的使用 cpu 訓練后,我沒有得到預期的結果。 model 看不到我訓練前給的任何積木。
我正在使用以下 model:
http://download.tensorflow.org/models/object_detection/tf2/20200711/efficientdet_d6_coco17_tpu-32.tar.gz
問題是我多次用一個 label 標記一張圖像嗎?
可能是使用 cpu 而不是 gpu 的問題? 我目前有一個 4GB 的 gpu,但似乎不夠用。 我用 2000 步訓練了 model,learning_rate 是 0.006。 我應該訓練它不止於此嗎?
有什么建議么?
提前謝謝你。
以下是經過訓練的 model 的 tensorboard 的屏幕截圖:
GPU 唯一的優勢就是訓練速度更快。 它不應該對預期結果有任何影響。 只是需要更長的時間。 但是,對於某些型號,差異可能很大。 監控你的訓練可能會給你更多的洞察力。
沒有得到預期的結果是什么意思? 它與您的預期有何不同?
我建議您使用某種監控,例如 Tensorboard 來監控訓練和驗證數據集的損失和指標(如果您還沒有這樣做的話)。 這將為您提供有關實時培訓的寶貴信息。
當你的model好像學不到什么東西的時候,你就要開始調試了。 您可以按照以下步驟來確保這些都不是您的問題: https://blog.slavv.com/37-reasons-why-your-neural.network-is-not-working-4020854bd607
我特別喜歡在單個批次上過擬合 model。 這個測試告訴我我的算法管道是否正確,包括預處理、model 和評估。 結果應該是對單個訓練批次的評估應該給你一個很好的分數,而對於數據的 rest,分數會很差,因為 model 將在單個批次上過度擬合。
有時,問題可能定義錯誤。 你能澄清一下你的標簽是什么嗎? 我不完全明白。 如果它是一個常見問題,那么你可以搜索 inte.net 以查看通常如何定義的靈感。
一般來說,你希望你所有的損失函數都下降到 go。 在您的情況下,他們 go 在前幾百步中上升,這不一定表示有問題,因為有時在訓練穩定之前需要很短的時間。 N.盡管如此,三角形表明損失是 NaN。 這意味着有問題。 我可以推薦使用tf.keras.callbacks.TerminateOnNaN
回調來立即檢測損失中的 NaN,這將立即終止您的訓練。
從損失函數本身,很難判斷模型的性能如何。 在每個機器學習任務中,您都必須能夠理解 model 的性能。指標正是用於此目的。 在這種情況下(對象檢測),我建議使用IoU來確定預測框與目標框的重疊程度,並使用precision
和recall
來評估預測框是否包含手寫文本的二元分類性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.