мой набор данных состоит из (12 входов, 13 выходов) 13 атрибутов, и я хочу рассчитать метрики для каждой строки набора данных, но показываю ошибку - PullRequest
0 голосов
/ 15 октября 2019

из numpy import loadtxt из keras.models import Sequential из keras.layers import Dense из matplotlib import pyplot

from sklearn.preprocessing import MinMaxScaler
# load the dataset
dataset = loadtxt('train.csv', delimiter=',')
scaler = MinMaxScaler(feature_range=(0, 1))
scaler.fit(dataset)
normalized = scaler.transform(dataset)

for row in normalized:

# split into input (X) and output (y) variables
    X = row[0:13]
    y = row[13] 
# define the keras model
    model = Sequential()
    model.add(Dense(12, input_dim=13, activation='relu'))
    model.add(Dense(16, activation='relu'))
    model.add(Dense(20, activation='relu'))
    model.add(Dense(16, activation='relu'))
    model.add(Dense(1, activation='relu'))
# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['mse', 'mae', 'mape'])

history =model.fit(X, y, epochs=20,batch_size=1 , verbose=2)

pyplot.plot(history.history['mse'])
pyplot.plot(history.history['mae'])
pyplot.plot(history.history['mape'])
pyplot.show() 

1 Ответ

0 голосов
/ 15 октября 2019

Согласно сообщению об ошибке, форма вашего ввода X в model.fit не в правильной форме. Модель ожидает, что входные данные будут массивом формы (13,) , но входные данные для модели будут (1,) фасонный массив. Выведите значения X и y и убедитесь, что они сохраняются в виде списка списков, как в X = [[1,2,3,4,...13]] and Y = [[0]], как это. В этом случае укажите X[0] and y[0] в методе model.fit.

...