Я просто создаю нейронную сеть для данных вина, просматривая видео с YouTube, и я получил ошибку в model.fit
Я новичок в машинном обучении, поэтому я не знаю никаких решений, поэтому я ничего не пробовал.
from sklearn.model_selection import train_test_split
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout
import pandas as pd
import numpy as np
from google.colab import files
np.random.seed(3)
# Number of Wine Classes
classifications = 3
#load dataset
uploaded = files.upload()
for fn in uploaded.keys():
print('User uploaded file "{name}" with length {length} bytes'.format(
name=fn, length=len(uploaded[fn])))
import io
dataset = pd.read_csv(io.StringIO(uploaded['wine.csv'].decode('utf-8')))
X = dataset[['Wine','Alcohol','Malic.acid','Ash','Acl','Mg','Phenols','Flavanoids','Nonflavanoid.phenols','Proanth','Color.int','Hue','OD','Proline']]
y = dataset[['Wine']]
# convert output values to one-hot
x_train = keras.utils.to_categorical(y_train-1, classifications)
x_test = keras.utils.to_categorical(y_test-1, classifications)
# creating model
model = Sequential()
model.add(Dense(10, input_dim=13, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(6, activation='relu'))
model.add(Dense(6, activation='relu'))
model.add(Dense(4, activation='relu'))
model.add(Dense(2, activation='relu'))
model.add(Dense(classifications, activation='softmax'))
# compile
model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=['accuracy'])
# fit model
model.fit(x_train, y_train, batch_size=15, epochs=2500, validation_data=(x_test, y_test))
Ошибка
ValueError: Ошибка при проверке ввода: ожидалось, что dens_1_input будет иметь форму (13,), но получил массив с формой (3,)