1D CNN(Keras)的输入形状

2024-09-25 04:33:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Keras构建一个CNN,第一层是以下Conv1D:

cnn.add(Conv1D(
    filters=512,
    kernel_size=3,
    strides=2,
    activation=hyperparameters["activation_fn"],
    kernel_regularizer=getattr(regularizers, hyperparameters["regularization"])(hyperparameters["regularization_rate"]),
    input_shape=(1000, 1),
))

我正在接受以下功能的培训:

^{pr2}$

其中train_df是一个由两列组成的pandas数据帧,其中,对于每一行,label是int(0或1),而payload是一系列用零填充/截断为1000的浮点数。 列df内的培训示例总数为15641。在

模型可以编译,但在培训期间,我得到了以下错误:

ValueError: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 1 array(s), but instead got the following list of 15641 arrays: [array([[0.09019608],
   [0.01176471],
   [0.01176471],
   [0.        ],
   [0.30196078],
   [0.        ],
   [0.        ],
   [0.        ],
   [0.        ],
   [0....

我查看了this post并尝试将我的输入更改为1000个浮点长列表的ndarray,但最后出现了另一个错误:

ValueError: Error when checking input: expected conv1d_1_input to have 3 dimensions, but got array with shape (15641, 1000)

有什么想法吗?在


Tags: thetodfinputsizemodel错误array
1条回答
网友
1楼 · 发布于 2024-09-25 04:33:34

所以我把输入形状设为(1000,1)

我还将feed to fit()的输入转换为n个ndarray的单个ndarray(每个ndarray是1000个浮点的向量,n是样本/向量的总计数),并在预处理期间,在阅读了关于输入的this解释和输入形状之后,将这些ndarray中的每一个都重塑为(1,1000,1)

我输入数据的最终形状是(15641,1000,1)

**所有这些也应适用于验证数据(如有规定)**

编辑:我没有说,但这解决了我的问题

相关问题 更多 >