首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三维卷积神经网络的滤波尺寸和输出层

三维卷积神经网络的滤波尺寸和输出层
EN

Stack Overflow用户
提问于 2020-11-18 10:17:53
回答 1查看 836关注 0票数 0

我正在实现一个三维卷积神经网络,我有两个问题。

问题1

每个输入都是一个大小的3D矩阵(201,10,4)。我希望我的过滤器跨越第二和第三维度,在某种意义上,它们是完全相连的。第三维度是特征维度。所以我不想去看第二和第三维度的地方社区。因此,我的过滤器大小将是大小,例如(3,10,4)。因此,滤波器的大小等于第二和第三维,但在第一维中有重量分配。以下是我的移交代码:

代码语言:javascript
复制
## input layer
input_layer = Input((201, 10, 4))

## convolutional layers
conv_layer1 = Conv3D(filters=8, kernel_size=(3, 10, 4), activation='relu')(input_layer)
conv_layer2 = Conv3D(filters=16, kernel_size=(3, 10, 4), activation='relu')(conv_layer1)

所以,我应该在这里使用stride,这样它才能在第一个维度中实现重量的共享。在剩余的第二和第三维度中保持完全连接?

问题2

对于每个矩阵,我有一个形状输出(6 ),在每个索引上,我有每个特征的频率。所以我想让我的模型预测每个特征的频率。我想我需要用MSE。但是我的输出层应该是什么样的呢。如果是这样:

代码语言:javascript
复制
model.add(Dense(1, activation='linear'))
opt = SGD(lr=0.01, momentum=0.9)
model.compile(loss='mean_squared_error', optimizer=opt)

或者这个:

代码语言:javascript
复制
model.add(Dense(6, activation='linear'))
opt = SGD(lr=0.01, momentum=0.9)
model.compile(loss='mean_squared_error', optimizer=opt)

我们会很欣赏你的见解。

EN

回答 1

Stack Overflow用户

发布于 2020-11-18 10:42:16

据我所知,Conv3D需要5维输入(None,D1,D2,D3,D4)。

您的过滤器将只在D1,D2,D3中移动,而不是在D4中,至于D4,它将是所有过滤器的总和。假设D4、D2、D3是相同的,相同的过滤器总是与所有元素相乘。

答案1:步幅在你的Con3D是不需要的,因为你的第二和第三维度是相同的过滤器大小,但不要忘记填充=‘相同’,否则你的第二和第三维度将减少(过滤器-1)。

这意味着只有第一层Con3D层有(201,10,4)维,第二Conv3D层将有(199,1,1)维,这对第二Conv3D层来说不是最优的。

答案2:最后一层的神经元应该等于输出的数量,你的输出是(6 ),所以密集层应该是Dense(6)

注意事项无需添加线性激活

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64891081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档