python - 在 R 中对一维数据运行 CNN 时出错

标签 python r tensorflow keras conv-neural-network

我正在尝试使用 keras 包在 R 中运行一维 CNN。我正在尝试创建具有以下规范的一维卷积神经网络(CNN)架构

enter image description here

library(keras)
library(deepviz)

#create a neural network with a convolutional layer and train the model
model <- keras_model_sequential() %>%
  layer_conv_1d(filters=32, kernel_size=4, activation="relu", input_shape=c(100, 10)) %>%
  layer_max_pooling_1d(pool_size=2) %>%
  layer_conv_1d(filters=64, kernel_size=4, activation="relu") %>%
  layer_max_pooling_1d(pool_size=5) %>%
  layer_conv_1d(filters=128, kernel_size=4, activation="relu") %>%
  layer_max_pooling_1d(pool_size=5) %>%
  layer_conv_1d(filters=256, kernel_size=4, activation="relu") %>%
  layer_max_pooling_1d(pool_size=5) %>%
  layer_dropout(rate=0.4) %>%
  layer_flatten() %>%
  layer_dense(units=100, activation="relu") %>%
  layer_dropout(rate=0.2) %>%
  layer_dense(units=1, activation="linear")

但它给了我以下错误

Error in py_call_impl(callable, dots$args, dots$keywords) : ValueError: Negative dimension size caused by subtracting 4 from 1 for 'conv1d_20/conv1d' (op: 'Conv2D') with input shapes: [?,1,1,128], [1,4,128,256].

如何解决这个错误?

另一个问题,如何优化filterskernel_sizepool_sizerateunits ? 在我的问题中 input_shape=c(100, 10) 是一个任意值。如何决定输入大小?

最佳答案

您的最大池化层太多,最大池化层会根据其参数减少输入向量的维度。

尝试减少 pool_size 参数,或者删除最后 2 个最大池化层。对于所有层,您可以尝试使用 pool_size=2 的值。

关于参数你应该了解一下它们的含义: 在这里您可以找到卷积层和最大池化层参数(如过滤器、内核大小和池大小)的说明: Convolutional layer

dropout层是一种正则化,它最大化层权重的有效性,每个时期它都会将权重的不同百分比(“速率”参数的大小)归零。比率越大,过度拟合的情况就越少,但训练时间就越长。在这里了解它: Dropout layer

单位是全连接层的大小。 Fully Connected layer

当记录数不算在内时,输入形状是数据的维度。在 1d 向量中,当 N 是向量长度且 C 是您拥有的 channel 数时,它是 (N,C),如果您有 1 个 channel ,则它是 (N,1)。 在二维向量中它是(高度,宽度, channel )。

关于python - 在 R 中对一维数据运行 CNN 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64311427/

相关文章:

python - 使用 Python Statsmodels 进行向量自回归

python - TensorFlow - 如果存在则恢复

python - 安装 Jupyter 时出错 : Command errored out with exit status 1: python setup. py Egg_info 检查日志以获取完整的命令输出

r - optim 中的目标函数评估长度为 2 而不是 1

R:如何根据其他多个列查找一列中的不同值

dataframe - 神经网络摘要到数据框

python - python中的子类方法重写

r - Plotly 颜色因子数据停止工作 - 错误包比例

powershell - 如何在 Windows 10 上使用 Powershell 将 Google Colab 与本地 TensorFlow Jupyter 服务器结合使用?

python - 同时使用图像和数字输入的神经网络