ValueError: Shape must be rank 0 but is rank 5 for 'cond/Switch' (op: 'Switch') with input shapes: [?,24,24,24,?], [?,24,24,24,?].
from keras import backend as K
import numpy as np
def smooth_L1_loss(y_true, y_pred):
THRESHOLD = K.variable(1.0)
mae = K.abs(y_true-y_pred)
flag = K.greater(mae, THRESHOLD)
loss = K.mean(K.switch(flag, (mae - 0.5), K.pow(mae, 2)), axis=-1)
return loss
ありがとうございます。しかし、私はまだエラーが発生しています:** ValueError:形状はランク0でなければなりませんが、[cond/Switch '(op:' Switch ')の入力シェイプでランク5になります:[?、24,24,24、 ?、24,24,24、?] ** –
@yuanzhouこれは、ネットワークの出力またはターゲットの形状が間違っているか互換性がないことを意味します。 –
申し訳ありませんが、出力とターゲットの形状に問題はないと思います。他の損失関数を使用するとうまくいきます。このエラーは、カスタマイズされたsmoothL1のみを使用して発生しました。 –