0
チェックポイントを生成HDF5スニペット:Keras:チェックポイントの重みを負荷は複数のGPUで
checkpointer = ModelCheckpoint(filepath=os.path.join(savedir, "mid/weights.{epoch:02d}.hd5"), monitor='val_loss', verbose=1, save_best_only=False, save_weights_only=False)
hist = model.fit_generator(
gen.generate(batch_size = batch_size, nb_classes=nb_classes), samples_per_epoch=593920, nb_epoch=nb_epoch, verbose=1, callbacks=[checkpointer], validation_data = gen.vld_generate(VLD_PATH, batch_size = 64, nb_classes=nb_classes), nb_val_samples=10000
)
私はHDF5形式でmid
ファイルをダンプし、複数のGPUのホスト上で私のモデルを訓練しました。私はkeras.load_weights('mid')
でシングルGPUマシン上でそれらをロードすると、エラーが発生しました:
Using TensorFlow backend.
Traceback (most recent call last):
File "server.py", line 171, in <module>
model = load_model_and_weights('zhch.yml', '7_weights.52.hd5')
File "server.py", line 16, in load_model_and_weights
model.load_weights(os.path.join('model', weights_name))
File "/home/lz/code/ProjectGo/meta/project/libpolicy-server/.virtualenv/lib/python3.5/site-packages/keras/engine/topology.py", line 2701, in load_weights
self.load_weights_from_hdf5_group(f)
File "/home/lz/code/ProjectGo/meta/project/libpolicy-server/.virtualenv/lib/python3.5/site-packages/keras/engine/topology.py", line 2753, in load_weights_from_hdf5_group
str(len(flattened_layers)) + ' layers.')
ValueError: You are trying to load a weight file containing 1 layers into a model with 21 layers.
は、シングルGPUマシン上で複数のGPUによって生成されたチェックポイントの重みをロードする方法はありますか? Kerasの問題はこの問題を論じなかったので、どんな助けも認められるでしょう。
同じマルチGPUマシンでロードできますか?エラーメッセージには、レイヤの不一致がいくつかあると表示されます。モデルにはいくつのレイヤーがありますか? –
@ YaoZhang Weightsは、ソースマシン上の 'model.load_weights()'だけでロードできます。 'model.yml'とマルチGPUマシンの両方で21層。 – lz96