美文网首页
三维点云中tf.layers.conv2d()的用法

三维点云中tf.layers.conv2d()的用法

作者: 猴子喜 | 来源:发表于2020-03-24 00:16 被阅读0次

    tf.layers.conv2d()的用法

    conv2d = tf.layers.conv2d(input, output, kernel_size=kernel_size, strides=(1, 1), padding='VALID',
    activation=tf.nn.relu, reuse=reuse, name=name, use_bias=not with_bn)
    

    input = (32, 512, 4, 64) # B, P, Nibr, channel
    output = 128

    kernel_size = [1, 4]
    output= (32, 512, 1, 128)

    input是 4-D的Tensor

    实际意义中,512是present points, 4是 neighbor points

    但是为了 利用tensorflow封装好的网络,将点云拓展成了BHWC格式的图像可以把batch中的每个点云看成 512 x 4 的一张图片。

    为了保证present points数量不变,所有kernel size必须是 (1, x) 的形式,x是neighbor points的数目,保证每次卷积运算的对象都是一组完整的(present point, neighbor points)。

    对点云操作的时候,stride = (1, 1),因为要保证对每个present point和每个 neighbor point都操作到。表示每次都只能处理 1 pair 的点


    TensorFlow定义的二维卷积有三种,分别是tf.nn.conv2d、tf.layers.conv2d、tf.contrib.layers.conv2d,个人认为tf.layers.conv2d使用起来更为方便简单,所以就记录下tf.layers.conv2d的使用方法。

    tf.layers.conv2d(inputs, filters, kernel_size, strides, padding)
    

    常用的大概就这几个参数,为什么说tf.layers.conv2d使用方便,是因为不需要初始化权重(kernel参数+bias),只需要填写卷积核的数量和大小即可, bias选择也很方便。

    相关文章

      网友评论

          本文标题:三维点云中tf.layers.conv2d()的用法

          本文链接:https://www.haomeiwen.com/subject/xblnyhtx.html