我是新來Keras框架和我想要實現的 Root Mean Squared Logarithmic Errorkeras自定義的損失函數
這裏的下列損失函數與tensorflow後端我的Keras代碼
def loss_function(y_true, y_pred):
ones = K.ones(shape=K.shape(y_pred).shape)
y_pred = tf.add(y_pred,ones)
y_true = tf.add(y_true,ones)
val = K.sqrt(K.mean(K.sum(K.log(y_pred)-K.log(y_true))))
return val
但我結束了收到以下錯誤:
ValueError: Error when checking input: expected dense_1_input to have shape (None, 16) but got array with shape (1312779, 11)
與VAL返回0。
什麼是網絡代碼(特別是輸入層)?你的數據的形狀是什麼?他們匹配嗎?每個數據點的屬性都很寬,而input_shape =(16,)而不是(11)? – maz
這個錯誤與你的損失函數無關。這是關於你的輸入數據(訓練數據)。你的輸入數據'(1312779,11)'的形狀不能進入你想要形狀像'(任何東西,16)'的模型。 –
謝謝@DanielMöller我進行了修改以匹配模型輸入中的數據維度。但是,在每個時代,我的損失爲0.0000e + 00。我的損失功能是否正確執行?如果不是我如何去執行? – prodo56