KerasマルチGPUトレーニングモデルの重みファイルが使用される単一のCPUやGPUのマシンを発行することはできません

自然:一貫性のない命名kerasの結果

原理:出力ブランチの複数で構成され、トレーニングのKerasバージョンは、それは一般的に、コンパイル時に名前を付けることにより、レイヤーを見つけるために、各ネットワークのデフォルト名を与え、より多くの損失です。

エラーポイント:keras.utils.training_utils.multi_gpu_model()を使用した後、名前が変更されました。予測場合したがって、層のパスを見つけることができませんkeras

2つのGPUの使用に起因し、したがって単一の0報告された2つの重み情報を、期待します

 

ソリューション:

私たちは、GPUを保存するために単一のインターフェイスを使用して、マルチGPUのトレーニングインタフェースを使用します

デフget_model(input_shape): 
リターンモデル
モデル= get_model(input_shape)#此时为单GPU搭建的モデル

keras.utilsからはmulti_gpu_modelインポート
#4 GPU上で`model`をレプリケート。
#これはあなたのマシンが4利用可能なGPUを持っていることを前提としています。
paralleled_model = multi_gpu_model(モデルのGPU = 4)#1将搭建的モデル复制到4个GPUの中の
列車のため#
paralleled_model.compile(損失= 'categorical_crossentropy'、
                       オプティマイザは= 'アダム)
model.save_weights( "single_gpu_model.h5")
電車用#フィットデータ

 

マルチGPUの原理tensorflow:

データは、各GPUをマッピングし、損失勾配を算出し、TF及び勾配は、CPUを低減する全ての損失の損失を求めて最適化された勾配と平均勾配CPUでありするTF

本質:マルチGPUアクセラレーションの原理は、各GPU 64を実行するために、バッチの並列処理能力を増加させるためにGPU 4 256ランバッチであります

 

おすすめ

転載: blog.csdn.net/weixin_38740463/article/details/91491307