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