手动计算的损失在拟合后比最后一轮的损失高出一个数量级

我有以下神经网络

def customLoss(yTrue,yPred):    loss_value = np.divide(abs(yTrue - yPred) , yTrue)    loss_value = tf.reduce_mean(loss_value)    return loss_valuedef model(inp_size):   inp = Input(shape=(inp_size,))   x1 = Dense(100, activation='relu')((inp))   x1 = Dense(50, activation='relu')(x1)   x1 = Dense(20, activation='relu')(x1)   x1 = Dense(1, activation = 'linear')(x1)    x2 = Dense(100, activation='relu')(inp)    x2 = Dense(50, activation='relu')(x2)    x2 = Dense(20, activation='relu')(x2)    x2 = Dense(1, activation = 'linear')(x2)    x3 = Dense(100, activation='relu')(inp)    x3 = Dense(50, activation='relu')(x3)    x3 = Dense(20, activation='relu')(x3)    x3 = Dense(1, activation = 'linear')(x3)    x4 = Dense(100, activation='relu')(inp)    x4 = Dense(50, activation='relu')(x4)    x4 = Dense(20, activation='relu')(x4)    x4 = Dense(1, activation = 'linear')(x4)    x1 = Lambda(lambda x: x * baseline[0])(x1)    x2 = Lambda(lambda x: x * baseline[1])(x2)    x3 = Lambda(lambda x: x * baseline[2])(x3)    x4 = Lambda(lambda x: x * baseline[3])(x4)    out = Add()([x1, x2, x3, x4])    return Model(inputs = inp, outputs = out)y_train=y_train.astype('float32')y_test=y_test.astype('float32')NN_model = Sequential()NN_model = model(X_train.shape[1])NN_model.compile(loss=customLoss, optimizer= 'Adamax', metrics=    [customLoss])NN_model.fit(X_train, y_train, epochs=500,verbose = 1)train_predictions = NN_model.predict(X_train)predictions = NN_model.predict(X_test)MAE  = customLoss (y_test, predictions)

最后的输出是3663/3663 [==============================] – 0s 103us/step – loss: 0.0055 – customLoss: 0.0055

然而,当我打印 customLoss (y_train , train_predictions) 时

我得到 0.06469738

我读到过,训练期间的损失是整个轮次的平均值,但最终结果肯定不应该更差,更不用说相差一个数量级了?我对keras还比较新手,任何建议都欢迎,谢谢!


回答:

事实证明,训练预测的形状是(3000 , 1),而 y_train 是(3000, )train_predictions = NN_model.predict(X_train).flatten()

解决了这个问题

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注