【发布时间】:2023-03-16 18:58:02
【问题描述】:
我正在实现一个 3D 卷积神经网络,我有两个问题。
问题 1
每个输入都是一个大小为 (201,10,4) 的 3D 矩阵。我希望我的过滤器在它们完全连接的意义上跨越第二维和第三维。第三维度是特征维度。所以我不想查看第二和第三维度的本地社区。所以我的过滤器大小将是例如 (3,10,4) 的大小。所以过滤器大小等于第二维和第三维,但我们在第一维有权重共享。以下是我的卷积代码:
## 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 以便它只在第一个维度上进行权重共享。并且在剩下的第二维和第三维中保持完全连接?
问题二
对于每个矩阵,我都有一个形状为 (6,) 的输出,并且在每个索引处,我都有每个特征的频率。所以我希望我的模型能够预测每个特征的频率。我想我需要在这里使用 MSE。但是我的输出层应该是什么样子。应该是这样的:
model.add(Dense(1, activation='linear'))
opt = SGD(lr=0.01, momentum=0.9)
model.compile(loss='mean_squared_error', optimizer=opt)
或者这个:
model.add(Dense(6, activation='linear'))
opt = SGD(lr=0.01, momentum=0.9)
model.compile(loss='mean_squared_error', optimizer=opt)
我们将不胜感激。
【问题讨论】:
标签: python-3.x keras deep-learning