open3d.ml.tf.ops.sparse_conv_transpose

open3d.ml.tf.ops.sparse_conv_transpose(filters, out_importance, inp_features, inp_neighbors_index, inp_neighbors_importance_sum, inp_neighbors_row_splits, neighbors_index, neighbors_kernel_index, neighbors_importance, neighbors_row_splits, output_type=tf.float32, normalize=False, max_temp_mem_MB=64, name=None)

Sparse tranpose convolution of two pointclouds.

Parameters
  • filters

    A Tensor. Must be one of the following types: float32, float64, bfloat16.

    The filter parameters. The shape of the filter is [depth, height, width, in_ch, out_ch]. The dimensions ‘depth’, ‘height’, ‘width’ define the spatial resolution of the filter. The spatial size of the filter is defined by the parameter ‘extents’.

  • out_importance – A Tensor. Must have the same type as filters. An optional scalar importance for each output point. The output features of each point will be multiplied with the corresponding value. The shape is [num input points]. Use a zero length Tensor to disable.

  • inp_features – A Tensor. Must have the same type as filters. A 2D tensor which stores a feature vector for each input point.

  • inp_neighbors_index

    A Tensor. Must be one of the following types: int32, int64.

    The inp_neighbors_index stores a list of indices of neighbors for each input point as nested lists. The start and end of each list can be computed using ‘inp_neighbors_row_splits’.

  • inp_neighbors_importance_sum

    A Tensor. Must have the same type as filters.

    1D tensor of the same length as ‘inp_features’ or zero length if neighbors_importance is empty. This is the sum of the values in ‘neighbors_importance’ for each input point.

  • inp_neighbors_row_splits – A Tensor of type int64. The exclusive prefix sum of the neighbor count for the input points including the total neighbor count as the last element. The size of this array is the number of input points + 1.

  • neighbors_index

    A Tensor. Must have the same type as inp_neighbors_index.

    The neighbors_index stores a list of indices of neighbors for each output point as nested lists. The start and end of each list can be computed using ‘neighbors_row_splits’.

  • neighbors_kernel_index

    A Tensor. Must be one of the following types: uint8, int16.

    Defines which kernel element to use for each neighbor. This array has the same length as neighbors_index.

  • neighbors_importance – A Tensor. Must have the same type as filters. Tensor of the same shape as ‘neighbors_index’ with a scalar value that is used to scale the features of each neighbor.

  • neighbors_row_splits – A Tensor of type int64. The exclusive prefix sum of the neighbor count for the output points including the total neighbor count as the last element. The size of this array is the number of output points + 1.

  • output_type – An optional tf.DType from: tf.float32, tf.float64, tf.bfloat16. Defaults to tf.float32. The type for the output.

  • normalize – An optional bool. Defaults to False. If True the input feature values will be normalized using ‘inp_neighbors_importance_sum’.

  • max_temp_mem_MB – An optional int. Defaults to 64. Defines the maximum temporary memory in megabytes to be used for the GPU implementation. More memory means fewer kernel invocations. Note that the a minimum amount of temp memory will always be allocated even if this variable is set to 0.

  • name – A name for the operation (optional).

Returns

A Tensor of type output_type. A Tensor with the output feature vectors for each output point.