keras輸入數據時報錯 Expected to see 1 array(s), but instead got the following list of 128 arrays
這個問題是在使用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=[]