【发布时间】:2020-09-04 10:32:40
【问题描述】:
我想将我的数组放在我训练有素的模型上,但我收到了这个错误
Error when checking input: expected dense_34_input to have shape (33,) but got array with shape (1,)
我重现此问题的代码是:
def start(self):
self.df = pd.read_csv('data_use.csv')
self.all_Algorithm = self.df
d = 0
self.ResultArray = self.all_Algorithm.loc[1+d:11+d]
self.reversed_df = self.ResultArray.iloc[::-1]
print(self.reversed_df)
model = load_model('trained_model.h5')
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
self.Array = pd.DataFrame()
for i in range(1,12):
print(i)
g = i * 3 - 2
self.Array.at[g,'RowForInput'] = self.reversed_df.loc[i,'weight']
self.Array.at[g+1,'RowForInput'] = self.reversed_df.loc[i,'Size']
self.Array.at[g+2,'RowForInput'] = self.reversed_df.loc[i,'Age']
print(self.Array.shape)
results = model.predict(self.Array)
print('test loss, test acc:', results)
有人可以帮忙吗?
编辑
根据 cmets,我更改了初始化数组的方式,但现在出现以下错误:
Error when checking input: expected dense_34_input to have shape (33,) but got array with shape (0,)
【问题讨论】:
-
您不提供回溯或以其他方式指出错误发生的位置,尽管一个很好的猜测是
model.predict(self.Array)。如果是这样,你看过self.Array吗?它是什么?看起来像一个数据框。您打印shape但不要告诉我们!该模型可以使用数据框输入吗?还是宁愿有一个 numpy 数组(或张量对象)? -
那段代码对我们几乎没用。我们无法重现您的问题。它基于几个我们无法加载的文件(即使您提供了链接,也可能不想加载)。
-
@hpaulj 基本上我面临的问题是我需要一个包含一行和 33 个列的数组。目前我有 33 行和 1 列。你知道如何反转它吗?
-
如果只是将 (1,33) 数组更改为 (33,1) 的问题,那么
transpose就可以解决问题。但这不是错误告诉我们的。 -
谢谢它解决了我的问题
标签: python pandas numpy tensorflow keras