單機多GPU訓練報錯


問題一

  在keras中使用多個GPU訓練模型時,出現錯誤 AttributeError: '_TfDeviceCaptureOp' object has no attribute '_set_device_from_string' , 根據錯誤提示是'_TfDeviceCaptureOp'對象沒有屬性'_set_device_from_string'

解決措施:經過思考,我覺得我的tensorflow版本可能有問題,所以將tensorflow從1.14.0版本降到1.12.0版本,此問題得到解決。但是又出現了問題二。

問題二

  Can't concatenate scalars (use tf.stack instead) for 'yolo_loss_1/concat' (op: 'ConcatV2') with input shapes: [], [], [] 。報錯信息提示兩個對象不能拼合。

解決措施:第一次看見一臉懵逼,后來看代碼發現是調用 model = multi_gpu_model(model, gpus=2) 出錯,這里的model對象是有問題的,它應該是網絡架構,不應該包含其他,而我在調用時寫在了模型文件加載之后,所以我調整了代碼將這段代碼改為:model_body = multi_gpu_model(model_body, gpus=2) ,這里傳入的model_body是keras的 Model 對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM