open3d.ml.tf.ops.continuous_conv_transpose_backprop_filter

open3d.ml.tf.ops.continuous_conv_transpose_backprop_filter(filters, out_positions, out_importance, extents, offset, inp_positions, inp_features, inp_neighbors_importance_sum, inp_neighbors_row_splits, neighbors_index, neighbors_importance, neighbors_row_splits, out_features_gradient, output_type=tf.float32, align_corners=True, coordinate_mapping='ball_to_cube_radial', normalize=False, interpolation='linear', max_temp_mem_MB=64, debug=False, name=None)

Computes the backrop for the filter of the ContinuousConvTranspose

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_positions

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

    A 2D tensor with the 3D point positions of each output point. The coordinates for each point is a vector with format [x,y,z].

  • out_importance – A Tensor. Must have the same type as filters.

  • extents – A Tensor. Must have the same type as out_positions. The extent defines the spatial size of the filter for each input point. It is a 2D vector of the form [[x_size, y_size, z_size], ..]. For ‘ball to cube’ coordinate mappings the extent defines the bounding box of the ball. Broadcasting is supported for all axes. E.g. providing only the extent for a single point as well as only providing ‘x_size’ is valid.

  • offset – A Tensor. Must have the same type as out_positions. A 1D tensor which defines the offset in voxel units to shift the output points. Offsets will be ignored if align_corners is True.

  • inp_positions – A Tensor. Must have the same type as out_positions. A 2D tensor with the 3D point positions of each input point. The coordinates for each point is a vector with format [x,y,z].

  • 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_importance_sum – A Tensor. Must have the same type as filters.

  • inp_neighbors_row_splits – A Tensor of type int64. The number of neighbors for each input point as exclusive prefix sum.

  • neighbors_index

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

    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_importance – A Tensor. Must have the same type as filters.

  • neighbors_row_splits – A Tensor of type int64. The number of neighbors for each output point as exclusive prefix sum.

  • out_features_gradient – A Tensor. Must have the same type as filters. A Tensor with the gradient for the outputs of the DCConv in the forward pass.

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

  • align_corners – An optional bool. Defaults to True. If True the outer voxel centers of the filter grid are aligned with the boundady of the spatial shape.

  • coordinate_mapping

    An optional string from: “ball_to_cube_radial”, “ball_to_cube_volume_preserving”, “identity”. Defaults to “ball_to_cube_radial”.

    Defines how the relative positions of the neighbors are mapped before computing filter indices. For all mappings relative coordinates will be scaled with the inverse extent, i.e. the extent becomes a unit cube. After that one of the following mappings will be applied:

    ’ball_to_cube_radial’: maps a unit ball to a unit cube by radial stretching. ‘ball_to_cube_volume_preserving’: maps a unit ball to a unit cube preserving the volume. ‘identity’: the identity mapping.

    Use ‘ball_to_cube_radial’ for a spherical or ellipsoidal filter window and ‘identity’ for a rectangular filter window.

  • normalize – An optional bool. Defaults to False. If True the input feature values will be normalized by the number of neighbors.

  • interpolation

    An optional string from: “linear”, “linear_border”, “nearest_neighbor”. Defaults to “linear”.

    If interpolation is ‘linear’ then each filter value lookup is a trilinear interpolation. If interpolation is ‘nearest_neighbor’ only the spatially closest value is considered. This makes the filter and therefore the convolution discontinuous.

  • 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.

  • debug – An optional bool. Defaults to False. If True then some additional checks will be enabled.

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

Returns

A Tensor of type output_type. The gradients for the filter