如何解决检查输入时出错:预期input_18具有3个维度,但数组的形状为7,210
我的原始数据集的形状为(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','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)
这给了我错误:
检查输入时出错:预期input_18具有3个尺寸,但是 得到了形状为(7,210)的数组
解决方法
我认为您在重塑DataFrame
时犯了一个错误。如您所说,数据由210个样本组成,每个样本都具有8个特征,即数据的形状必须为( 210,8 )
。现在,从df
中选择所需的列后,您需要将数据重塑为( 210,7 )
,而不是( 7,210 )
。进行更改,
df_test = dftoArray.reshape( 210,1 )
形状( 210,7 )
和( 7,210 )
有很大的不同。形状( 7,210 )
表示由7个样本组成的数据集,每个样本具有210个特征。事实并非如此。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。