我正在研究具有常规矩阵格式的风力涡轮机数据集:[ row:datetime , column:features]
但我想用卷积来捕捉每个特征的进展,就像在 LSTM 中完成的那样。因此,我生成了一个具有以下维度的新数据集:
[datetime, 15 timesteps,128 features] :每个原始日期时间行现在有 15 个寄存器(t-0,t-1,...,t-14)用于每个特征。
我的计划是使用大小为 1x5 的内核和 5 的步长分别对每个特征(通道)的时间步长维度进行卷积。从 128 个特征中获取每个 DateTime(batch)、长度为 5 的 3 个过滤器,输出形状为(无,3,128)。
然后我将最大池化应用于前一个第二维 (3) 结果,以获得“最重要的复杂时间步长”,期望输出大小:(None,1,128)
最后我连接了一个用于二元分类的密集层。
目前的网络架构在 keras 中实现如下:
model.add( Conv1D(padding = 'valid',filters = nfeatures,strides = 5,kernel_size = 5,
activation = 'relu',input_shape = (timesteps,nfeatures)) )
model.add( MaxPooling1D() )
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)
问题是当我检查第一层 (conv1d) 的权重时,权重具有以下维度:[5,128,128] 和偏差 [128]。
预期的权重格式是:[5,1,128] 为什么是 5x128x128?,我只需要每个功能/通道的 5 个权重(内核大小)。
谢谢!
convolution deep-learning conv-neural-network keras tensorflow