class_docstr: 3D convolutional Residue Block.
  
  Maintains same resolution.
class_docstr_tok: ["3D","convolutional","Residue","Block",".","Maintains","same","resolution","."]
docstr: Initialization.
  
  Args:
    neck_channels: int, number of channels in bottleneck layer.
    out_channels: int, number of output channels.
docstr_tok: ["Initialization",".","Args",":","neck_channels",":","int",",","number","of","channels","in","bottleneck","layer",".","out_channels",":","int",",","number","of","output","channels","."]
code: def __init__(self, neck_channels, out_channels):
      """Initialization.
  
      Args:
        neck_channels: int, number of channels in bottleneck layer.
        out_channels: int, number of output channels.
      """
      super(ResBlock3D, self).__init__()
      self.neck_channels = neck_channels
      self.out_channels = out_channels
      self.conv1 = layers.Conv3D(
          neck_channels, kernel_size=1, strides=1
      )
      self.conv2 = layers.Conv3D(
          neck_channels, kernel_size=3, strides=1, padding="same"
      )
      self.conv3 = layers.Conv3D(out_channels, kernel_size=1, strides=1)
      self.bn1 = layers.BatchNormalization(axis=-1)
      self.bn2 = layers.BatchNormalization(axis=-1)
      self.bn3 = layers.BatchNormalization(axis=-1)
  
      self.shortcut = layers.Conv3D(
          out_channels, kernel_size=1, strides=1
      )
  
file_path: graphics/tensorflow_graphics/projects/local_implicit_grid/core/model_g2v.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import tensorflow.compat.v1
label_desc: Use image node_id 1 to create a new ResBlock3D object from inherited base classes: layers with example: obj = ResBlock3D(neck_channels, out_channels)