私はKeras 1.xから2.xにプロジェクトを移行しています。keras.backend.conv2dをKeras 1.xから2.xに移行する
コードでは、1.xで正常に動作していたkeras.backend.conv2d
操作が2.xでクラッシュするようになりました。
convs = K.conv2d(a, b, padding='valid', data_format='channels_first')
入力テンソルはa
形状とb
両方(1024, 4, 1, 1)
出力テンソル形状は1.xで(1024, 1024, 1, 1)
たあります私は次のエラーを取得してい2.xでは
:
ValueError: CorrMM: impossible output shape
bottom shape: 1024 x 4 x 1 x 1
weights shape: 1 x 1 x 1024 x 4
top shape: 1024 x 1 x -1022 x -2
Apply node that caused the error: CorrMM{valid, (1, 1), (1, 1), 1 False}(Print{message='a', attrs=('__str__',), global_fn=<function DEBUG_printTensorShape at 0x00000272EF1FAD08>}.0, Subtensor{::, ::, ::int64, ::int64}.0)
Toposort index: 30
Inputs types: [TensorType(float32, (False, False, True, True)), TensorType(float32, (True, True, False, False))]
Inputs shapes: [(1024, 4, 1, 1), (1, 1, 1024, 4)]
私はTheanoバックエンドを使用して、そしてK.set_image_data_format
とconv2d
でchannels_first
の両方を設定しています。
'K.permute_dimensions(x、(3,2,1,0))'がその仕事をしました。ありがとう! – Overdrivr