我是新来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