CNNのfitで以下のエラーが発生します。
発生している問題・エラーメッセージ
ValueError: Dimensions must be equal, but are 244 and 256 for '{{node mean_absolute_error/sub}} = Sub[T=DT_FLOAT](sequential_27/conv2d_83/Sigmoid, IteratorGetNext:1)' with input shapes: [2,244,244,1], [2,256,256,1].
概要
私がCNNで行っているのは低解像度の画像を高解像度の画像に鮮明化、というものです。
入力で低解像度画像4枚とその4枚の高解像度画像(オリジナル画像)をCNNに供給し学習させ、出力として低解像度だった画像を鮮明化した画像を得るというものです。
そして、どれだけ鮮明化できたかの指標として、mse、平均二乗誤差を損失としています。
入力は4枚,256×256画素,grayscaleの画像です。
x_trainは訓練画像、y_trainは訓練画像に対する正解画像です。
出力は画像です。
該当のソースコード
x_train = blur_imgarray print(x_train.shape) y_train = org_imgarray print(y_train.shape) (4, 256, 256, 1) (4, 256, 256, 1)
Python
1model = models.Sequential() 2 3model.add(layers.Conv2D(4, (5, 5), activation='relu', input_shape=(256, 256, 1))) 4model.add(layers.Conv2D(4, (1, 1), activation='relu')) 5model.add(layers.Conv2D(1, (9, 9), activation='sigmoid')) 6 7model.summary() 8 9model.compile(loss='mean_absolute_error', optimizer=optimizers.SGD(lr=0.1), metrics=['mse']) #RMSprop(lr=0.001) 10 11history = model.fit(x_train, y_train, epochs=epochs, batch_size=batch_size) 12 13Model: "sequential_27" 14_________________________________________________________________ 15Layer (type) Output Shape Param # 16================================================================= 17conv2d_81 (Conv2D) (None, 252, 252, 4) 104 18_________________________________________________________________ 19conv2d_82 (Conv2D) (None, 252, 252, 4) 20 20_________________________________________________________________ 21conv2d_83 (Conv2D) (None, 244, 244, 1) 325 22================================================================= 23Total params: 449 24Trainable params: 449 25Non-trainable params: 0 26_________________________________________________________________
試したこと
エラーの原因がCNNの入力が[256,256,1]であるが、出力では[244,244,1]になっているためエラーが発生していると私は考えています。
しかし、このエラーの改善の方法が現状わかっておりません。
わかる方、いらっしゃいましたら宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー