Я выложу весь сценарий:
import pandas as pd
import numpy as np
from keras.utils import np_utils
import keras
from keras.models import Sequential
from keras import layers
from keras.optimizers import SGD
from sklearn.model_selection import train_test_split
from sklearn import preprocessing
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
df = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data",header=0)
df.columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width',"Class"]
df, cl = (df.iloc[:,0:4],df['Class'])
df_scaler = preprocessing.MinMaxScaler(feature_range=(0,1))
df1 = df_scaler.fit_transform(df)
cl1 = LabelEncoder().fit_transform(cl)
x_train, y_train, x_test, y_test = train_test_split(df1,cl1,test_size = 0.3)
y_train = np_utils.to_categorical(y_train, 3)
y_test = np_utils.to_categorical(y_test,3)
model = Sequential()
model.add(layers.Dense(50,input_dim=x_train.shape[1],activation='relu'))
model.add(layers.Dense(40,activation='relu'))
model.add(layers.Dense(30,activation='relu'))
model.add(layers.Dense(25,activation='relu'))
model.add(layers.Dense(3,activation='softmax'))
model.compile(loss='categorical_crossentropy',optimizer = 'adam',metrics=['accuracy'])
history = model.fit(x_train, y_train,batch_size = 10, epochs = 50,verbose = 1,validation_split = 0.3)
И это ошибка, которую он мне дает:
ValueError Traceback (most recent call last)
<ipython-input-95-4c538cd97d59> in <module>()
1 history = model.fit(x_train, y_train,
2 batch_size = 10, epochs = 50,
----> 3 verbose = 1, validation_split = 0.3)
2 frames
/usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py in standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)
129 ': expected ' + names[i] + ' to have ' +
130 str(len(shape)) + ' dimensions, but got array '
--> 131 'with shape ' + str(data_shape))
132 if not check_batch_axis:
133 data_shape = data_shape[1:]
ValueError: Error when checking target: expected dense_91 to have 2 dimensions, but got array with shape (45, 4, 3, 2, 3, 4, 3)
Надеюсь, это поможет вам, я подписан на онлайн Конечно, и я не могу понять, почему у меня ошибка.
Спасибо