Skip to content Skip to sidebar Skip to footer

Calculating Mean Square Error Return Y_true And Y_pred Have Different Number Of Output (1!=10)

I am really new with deep learning. I want to do a task which asks: Evaluate the model on the test data and compute the mean squared error between the predicted concrete strength a

Solution 1:

Your y_test data shape is (N, 1) but because you put 10 neurons in output layer, your model makes 10 different predictions which is the error.

You need to change the number of neurons in the output layer to 1 or add a new output layer which has only 1 neuron.

The below code probably works for you.

import pandas as pd
from tensorflow.python.keras import Sequential
from tensorflow.python.keras.layers import Dense
from sklearn.model_selection import train_test_split

concrete_data = pd.read_csv('https://cocl.us/concrete_data')

n_cols = concrete_data.shape[1]
model = Sequential()
model.add(Dense(units=10, activation='relu', input_shape=(n_cols-1,)))           
model.add(Dense(units=1))
model.compile(loss='mean_squared_error',
          optimizer='adam')


y = concrete_data.Cement
x = concrete_data.drop('Cement', axis=1)
xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size = 0.3)

model.fit(xTrain, yTrain, epochs=50)

Solution 2:

Actually, what you are trying to check is the mean_squared_error of y_test and the predicted_y

You have to check what your model predict on x_test, which is the prediction :

predicted_y = model.predict(x_test)

Then you can calculate the error:

mean_squared_error(y_test, predicted_y)

Solution 3:

y_pred = model.predict(x_test).sum(axis=1)

Try this, it worked for me


Post a Comment for "Calculating Mean Square Error Return Y_true And Y_pred Have Different Number Of Output (1!=10)"