code: def transform(self, model, node):
      dim = node.__class__.__name__[-2:]  # '1D' or '2D'
      pw_node = model.make_node(
          "PointwiseConv" + dim,
          node.name,
          copy(node.attributes),
          node.inputs.copy(),
          outputs=node.outputs.copy(),
      )
      if (
          len(node.weights["weight"].data.shape) == 2
      ):  # This can happen if we assign weights of Dense layer to 1x1 Conv2D
          expand_axis = tuple(range(int(dim[0])))
          pw_node.weights["weight"].data = np.expand_dims(
              node.weights["weight"].data, axis=expand_axis
          )
      pw_node.weights["bias"].data = node.weights["bias"].data
      model.replace_node(node, pw_node)
  
      return True
  
imports: from copy import copy
  import numpy
  from hls4ml.backends.fpga.fpga_layers import PointwiseConv1D, PointwiseConv2D
  from hls4ml.backends.quartus.passes.convolution_templates import Conv1DConfigTemplate, Conv1DFunctionTemplate, Conv2DConfigTemplate, Conv2DFunctionTemplate, conv1d_config_template, conv2d_config_template, conv_mult_config_template
  from hls4ml.model.layers import register_layer
  from hls4ml.model.optimizer import OptimizerPass
label_desc: Use image node_id 2 for calling the OptimizePointwiseConv obj's underlying member method code with example usage: obj.transform(model, node) and returns: True