keras輸入數據時報錯 Expected to see 1 array(s), but instead got the following list of 128 arrays

keras輸入數據時報錯 Expected to see 1 array(s), but instead got the following list of 128 arrays

這個問題是在使用model.fit_generator時候出現的,其實用fit的話,不注意也會出這個問題。

問題本質就是fit進來的數據沒有整合成一個數組,分開成多個數組了,像下面代碼中的情況,不斷給x添加新的數值,直到達到batch size後輸出,但這樣會有一個問題,輸出的xy含有很多獨立的數組,這樣就會報題目所示的錯誤。

        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=[]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章