这个问题是在使用model.fit_generator
时候出现的,其实用fit
的话,不注意也会出这个问题。
问题本质就是fit
进来的数据没有整合成一个数组,分开成多个数组了,像下面代码中的情况,不断给x添加新的数值,直到达到batch size后输出,但这样会有一个问题,输出的x
和y
含有很多独立的数组,这样就会报题目所示的错误。
x.append(X)
y.append(label)
cnt += 1
if cnt == batch_size :
yield (x, y)
x=[]
y=[]
解决方法:很简单,输出前再用np.array()
整理一遍,这样就没问题了。
具体差别就是yield
函数里面的不同。
x.append(X)
y.append(label)
cnt += 1
if cnt == batch_size :
yield (np.array(x),np.array(y))
x=[]
y=[]