実現したいこと
自作のloss関数を走らせたい。
(可能ならばgeneraterを使用しない手法が知りたいです。)
前提
現在医療系大学にて超解像を勉強中です。
今年度から本格的に取り組み始めた初学者です。
SSIM lossなどの自作loss関数などの作成はできましたが、
トレーニングの低画質画像をlossに含もうとするとエラーが出ます。
Python, TensorFlow, Kerasを使用。
発生している問題・エラーメッセージ
超解像の学習時に自作のloss関数でlow resolution画像を計算に含みたいができません。
本来def loss(y_true, y_pred):より高解像度画像と推論画像とでlossを計算しますが、
ここに低解像度画像を含みたいです。
tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name, tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [16,48,48,1] vs. [41,48,48,1] [[node loss/sub_1 (defined at \Users\PycharmProjects\DL\loss_function.py:105) ]] [Op:__inference_train_function_17330] Errors may have originated from an input operation. Input Source operations connected to node loss/sub_1: IteratorGetNext (defined at /Users/PycharmProjects/DL/RUN.py:153) Function call stack: train_function
該当のソースコード
Python
1# 前略 2 3def custom_loss(x_true): 4 def loss(y_true, y_pred): 5 return K.mean(K.square(y_pred - y_true) + K.square(y_true - x_true)) 6 return loss 7 8model.compile(optimizer=Adam(lr=lr, beta_1=0.9, beta_2=0.999, epsilon=1e-8), 9 metrics=[psnr], loss=[custom_loss(x_true=imagelow)]) 10 11training = model.fit(imagelow, imagehigh, epochs=ep, batch_size=bs, 12 validation_split=vs, shuffle=True, verbose=1) 13 14# 後略
試したこと
ネットでかなり調べたつもりですが、x_trueを使ってるサイトが見つかりません。
custom lossなどの作成についても調べましたが、(おそらく)batchサイズが異なることしかわかりませんでした。
補足情報(FW/ツールのバージョンなど)
Python, TensorFlow, Kerasを使用。
回答1件
あなたの回答
tips
プレビュー