Kerasでカスタム損失関数を作成しようとしています。私はKerasでカスタム損失関数を作成する
に出力の大きさを、この損失関数を作りたい
は80バッチサイズは、だから私は下のこの損失関数を構築する5000
です。しかし、これは機能しません。
def normalize_activation(y_true, y_pred):
nb_divide = K.reshape(K.sqrt(K.sum(K.square(y_pred), axis=1)),(5000, 1))
nb_divide=numpy.tile(nb_divide,80)
predicted=numpy.divide(y_pred,nb_divide)
return K.sum(K.square(y_true-predicted))
ValueError:シーケンスで配列要素を設定します。
このエラーが発生します。私はy_true、y_predの形は(5000,80)だと思います。
どこで修正すればよいですか?
'losses.mean_squared_error(y_true、K.l2_normalize(y_pred、axis = -1))'を使用するのと同じです。 –
また、モデルの末尾に 'lambda(λx:K.l2_normalize(x、axis = -1))'レイヤーを追加し、 'loss = 'mse''を使うこともできます。 –
@ゆうヤンありがとうございました!ラムダを使うとき、最後のリンクの重みは1でなければなりません。私はそれを作ることができません。私はあなたの最初のソリューションを使用しています。ありがとうございました。しかし私は軸= -1の意味を疑問に思う。私は軸= 0、軸= 1を知っています。 –