如何校准我的分类神经网络的输入形状



我收到这个错误:

ValueError:检查输入时出错:期望dense_27_iput具有形状(20,(,但得到的数组具有形状(3495,(

这是我的代码:

import pandas as pd
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Input, Dense
from keras.layers import Flatten
from sklearn.preprocessing import StandardScaler
import numpy as np

df = pd.read_csv('../input/nasa-asteroids-classification/nasa.csv')
df = pd.get_dummies(df)
X = df.loc[:, df.columns != 'Harzardous']
y = df.loc[:, 'Hazardous']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

scaler = StandardScaler().fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
model = Sequential()
model.add(Dense(64, input_dim=(20), activation = 'relu'))
model.add(Dense(32, activation = 'relu'))
model.add(Dense(16, activation = 'relu'))
model.add(Dense(8, activation = 'relu'))
model.add(Dense(1, activation = 'sigmoid'))
compilation = model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=100, batch_size=32)

scores = model.evaluate(X_train, y_train, verbose=False)
print("Training Accuracy: %.2f%%n" % (scores[1]*100))
scores = model.evaluate(X_test, y_test, verbose=False)
print("Testing Accuracy: %.2f%%n" % (scores[1]*100))

我该怎么解决这个问题?

数据集在应用get_dummies之后有20列,在应用之前有20行。

链接到数据集:https://www.kaggle.com/shrutimehta/nasa-asteroids-classification

您的输入维度不正确。打印X_train、y_train的形状。它们应该具有形状(X, 20)(X,1),其中X是常数。

最新更新