我是学生,正在学习深度神经网络。
我看到了一篇标题为
的论文“ 3D深度卷积:减少3D视觉任务中的模型参数 ”
我需要实现本文介绍的3D可分离卷积。
我希望你指出我的消息来源。
separable_conv3d.py
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
这是我引用的图片。
欢迎提出任何批评。这是真实的。
答案 0 :(得分:0)
我没有测试您的代码,但是据我了解,在for循环中选择功能时,您使用3维并将c置于3维,但据我所知3D卷积是4D,所以如果添加附加尺寸。 我将尽快测试和编辑您的代码。