日々精進

新しく学んだことを書き留めていきます

kerasで保存したモデルを読み込んでpredictすると「Reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero」エラーが発生する

原因はmulti_gpu_modelを使った場合、multi_gpu_modelでwrapする前のモデルのsaveで保存しないといけないが、 wrap後のモデルのsaveを使っていたため。

↓はダメな例

parallel_model = multi_gpu_model(model)
...
parallel_model .save("path/to/save")

↓はOK

parallel_model = multi_gpu_model(model)
model.compile(...)
...
model.save("path/to/save")

parallel_model を使う場合でもmodel.compileは呼ばないといけない(model.saveはparallel_model.compileで登録した情報は保存してくれないため。)

参考:

keras.io