Python 检查输入时出错:预期输入_18有3个维度,但得到了形状为(7210)的数组
我的原始数据集的形状是(210,8),我试图给出7个独立变量作为 输入我的神经网络以查看它们属于哪个类。 类/类别是目标变量 我已经分离了自变量,并将它们作为数组存储在“df_test”中Python 检查输入时出错:预期输入_18有3个维度,但得到了形状为(7210)的数组,python,tensorflow,keras,neural-network,Python,Tensorflow,Keras,Neural Network,我的原始数据集的形状是(210,8),我试图给出7个独立变量作为 输入我的神经网络以查看它们属于哪个类。 类/类别是目标变量 我已经分离了自变量,并将它们作为数组存储在“df_test”中 df = pd.read_csv('https://raw.githubusercontent.com/siiddd/WheatSeeds/master/Wheat.csv') features = ['Area', 'Perimeter', 'Compactness', 'Length of Kernel
df = pd.read_csv('https://raw.githubusercontent.com/siiddd/WheatSeeds/master/Wheat.csv')
features = ['Area', 'Perimeter', 'Compactness', 'Length of Kernel','Width of Kernel', 'Asymmetric Coeff.', 'Length of Kernel Groove']
dftoArray = df[features].to_numpy()
df_test = dftoArray.reshape(7,210)
model = keras.Sequential()
model.add(keras.Input(shape = (7, )))
model.add(keras.layers.Dense(500, activation = 'relu'))
model.add(keras.layers.Dense(1, activation = 'sigmoid'))
model.compile(optimizer = 'adam', loss = 'sparse_categorical_crossentropy', metrics = ['accuracy'])
model.fit(df_test, df['Class'], epochs = 10, validation_split = 0.10)
这给了我一个错误:
检查输入时出错:预期输入_18有3个维度,但
已获得形状为(7210)的数组
我认为您在重塑
数据帧时犯了一个错误。正如您所说,数据由210个样本组成,每个样本具有8个特征,即数据的形状必须是(210,8)
。现在,在从df
中选择所需的列之后,您需要将数据重塑为(210,7)
,而不是(7210)
。做这个改变,
df_test = dftoArray.reshape( 210 , 1 )
形状(210,7)
和(7210)
有很大的区别。形状(7210)
指的是由7个样本组成的数据集,每个样本具有210个特征。事实并非如此