我是学生,正在研究深度神经网络。
我看到一篇标题为:
“3D Depthwise Convolution:减少3D视觉任务中的模型参数”
我需要实现本文介绍的3D可分离卷积。
我想让你指出我的消息来源。
separable_con V3的.朋友
def separable_conv3d(input, output_dim, depth_filter_channel=1, strides=1, padding='SAME', name=None):
input_tensor_channel = input.get_shape().as_list()[-1]
kernel1 = tf.Variable(tf.truncated_normal(shape=[batch_frame, 3, 3, input_tensor_channel, depth_filter_channel], stddev=0.1))
feature_list = []
for c in range(0, len(input_tensor_channel)):
feature1 = conv3d(input.shape[:, :, c], weight=kernel1, strides=strides, padding=padding, name=name)
feature_list.append(feature1)
total_feature = tf.concat(feature_list, axis=-1)
total_tensor_channel = total_feature.get_shape().as_list()[-1]
kernel3 = tf.Variable(tf.truncated_normal(shape=[1, 1, 1, total_tensor_channel, output_dim]))
pw1 = conv3d(input=total_feature, weight=kernel3, strides=strides, padding=padding, name=name)
return pw1
这是我引用的图像。
任何批评都是受欢迎的。这是真的。
我没有测试你的代码,但正如我在for循环中选择功能时所理解的那样,你使用3个维度并将c放入第3维,但据我所知,3D卷积是4D所以如果添加额外的维度则是正确的。我将很快测试和编辑你的代码。