(
    point_cloud, is_training, num_output_points, bottleneck_size, bn_decay=None
)
return out_point_cloud
Classification PointNet, input is BxNx3, output Bx40
Classification PointNet, input is BxNx3, output Bx40
Classification PointNet input is BxNx3 output Bx40
def get_model(
    point_cloud, is_training, num_output_points, bottleneck_size, bn_decay=None
):
    """ Classification PointNet, input is BxNx3, output Bx40 """
    batch_size = point_cloud.get_shape()[0].value
    num_point = point_cloud.get_shape()[1].value
    input_image = tf.expand_dims(point_cloud, -1)

    # Point functions (MLP implemented as conv2d)
    net = tf_util.conv2d(
        input_image,
        64,
        [1, 3],
        padding="VALID",
        stride=[1, 1],
        bn=True,
        is_training=is_training,
        scope="conv1",
        bn_decay=bn_decay,
    )
    net = tf_util.conv2d(
        net,
        64,
        [1, 1],
        padding="VALID",
        stride=[1, 1],
        bn=True,
        is_training=is_training,
        scope="conv2",
        bn_decay=bn_decay,
    )
    net = tf_util.conv2d(
        net,
        64,
        [1, 1],
        padding="VALID",
        stride=[1, 1],
        bn=True,
        is_training=is_training,
        scope="conv3",
        bn_decay=bn_decay,
    )
    net = tf_util.conv2d(
        net,
        128,
        [1, 1],
        padding="VALID",
        stride=[1, 1],
        bn=True,
        is_training=is_training,
        scope="conv4",
        bn_decay=bn_decay,
    )
    net = tf_util.conv2d(
        net,
        bottleneck_size,
        [1, 1],
        padding="VALID",
        stride=[1, 1],
        bn=True,
        is_training=is_training,
        scope="conv5",
        bn_decay=bn_decay,
    )

    net = tf_util.max_pool2d(net, [num_point, 1], padding="VALID", scope="maxpool")

    net = tf.reshape(net, [batch_size, -1])

    net = tf_util.fully_connected(
        net, 256, bn=True, is_training=is_training, scope="fc11b", bn_decay=bn_decay
    )
    net = tf_util.fully_connected(
        net, 256, bn=True, is_training=is_training, scope="fc12b", bn_decay=bn_decay
    )
    net = tf_util.fully_connected(
        net, 256, bn=True, is_training=is_training, scope="fc13b", bn_decay=bn_decay
    )
    net = tf_util.fully_connected(
        net,
        3 * num_output_points,
        bn=True,
        is_training=is_training,
        scope="fc14b",
        bn_decay=bn_decay,
        activation_fn=None,
    )

    out_point_cloud = tf.reshape(net, [batch_size, -1, 3])

    return out_point_cloud
def get_model ( point_cloud , is_training , num_output_points , bottleneck_size , bn_decay = None ) : batch_size = point_cloud . get_shape ( ) [ 0 ] . value num_point = point_cloud . get_shape ( ) [ 1 ] . value input_image = tf . expand_dims ( point_cloud , - 1 ) # Point functions (MLP implemented as conv2d) net = tf_util . conv2d ( input_image , 64 , [ 1 , 3 ] , padding = "VALID" , stride = [ 1 , 1 ] , bn = True , is_training = is_training , scope = "conv1" , bn_decay = bn_decay , ) net = tf_util . conv2d ( net , 64 , [ 1 , 1 ] , padding = "VALID" , stride = [ 1 , 1 ] , bn = True , is_training = is_training , scope = "conv2" , bn_decay = bn_decay , ) net = tf_util . conv2d ( net , 64 , [ 1 , 1 ] , padding = "VALID" , stride = [ 1 , 1 ] , bn = True , is_training = is_training , scope = "conv3" , bn_decay = bn_decay , ) net = tf_util . conv2d ( net , 128 , [ 1 , 1 ] , padding = "VALID" , stride = [ 1 , 1 ] , bn = True , is_training = is_training , scope = "conv4" , bn_decay = bn_decay , ) net = tf_util . conv2d ( net , bottleneck_size , [ 1 , 1 ] , padding = "VALID" , stride = [ 1 , 1 ] , bn = True , is_training = is_training , scope = "conv5" , bn_decay = bn_decay , ) net = tf_util . max_pool2d ( net , [ num_point , 1 ] , padding = "VALID" , scope = "maxpool" ) net = tf . reshape ( net , [ batch_size , - 1 ] ) net = tf_util . fully_connected ( net , 256 , bn = True , is_training = is_training , scope = "fc11b" , bn_decay = bn_decay ) net = tf_util . fully_connected ( net , 256 , bn = True , is_training = is_training , scope = "fc12b" , bn_decay = bn_decay ) net = tf_util . fully_connected ( net , 256 , bn = True , is_training = is_training , scope = "fc13b" , bn_decay = bn_decay ) net = tf_util . fully_connected ( net , 3 * num_output_points , bn = True , is_training = is_training , scope = "fc14b" , bn_decay = bn_decay , activation_fn = None , ) out_point_cloud = tf . reshape ( net , [ batch_size , - 1 , 3 ] ) return out_point_cloud