且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Keras自定义数据生成器提供多输入和多输出的尺寸错误(功能性api模型)

更新时间:2023-12-02 15:18:40

为解决此错误:

ValueError: Input 0 of layer lstm is incompatible with the layer: expected ndim=3, found ndim=4. Full shape received: [None, None, None, 88]

TrainGenerator应该以以下方式更改. 当前代码:

TrainGenerator should be changed in the following way. Current code:

input1_X = np.array(df3['input1_X'].to_list()).reshape(dlen,pad_len,1)
input2_X = np.array(df3['input2_X'].to_list()).reshape(dlen,pad_len,1)
input3_X = np.array(df3['input3_X'].to_list()).reshape(dlen,pad_len,1)

应更改为:

input1_X = np.array(df3['input1_X'].to_list()).reshape(dlen,pad_len)
input2_X = np.array(df3['input2_X'].to_list()).reshape(dlen,pad_len)
input3_X = np.array(df3['input3_X'].to_list()).reshape(dlen,pad_len)

原因是3个输入中的每一个都期望一个2维数组,但是生成器提供3维数组.预期的形状是(batch_size,10).

The reason is that each of the 3 Inputs expects a 2-dimensional array, but the generator provides a 3-dimensional one. The expected shape is (batch_size, 10).