code: def init_depconv2d(self, layer):
      if layer.model.config.is_resource_strategy(layer):
          layer.set_attr("strategy", "resource")
          n_in, n_out = self.get_layer_mult_size(layer)
          self.set_closest_reuse_factor(layer, n_in, n_out)
      else:
          layer.set_attr("strategy", "latency")
  
      layer.set_attr(
          "n_partitions", 1
      )  # TODO Once we have SeparableConv implementation for io_parallel this should be set properly
      layer.set_attr(
          "implementation",
          layer.model.config.get_conv_implementation(layer).lower(),
      )
  
imports: import os
  import sys
  import numpy
  from hls4ml.backends import FPGABackend
  from hls4ml.backends.fpga.fpga_types import APTypeConverter, HLSTypeConverter, VivadoArrayVariableConverter
  from hls4ml.model.attributes import ChoiceAttribute, ConfigurableAttribute, TypeAttribute
  from hls4ml.model.flow import register_flow
  from hls4ml.model.layers import GRU, LSTM, Conv1D, Conv2D, Dense, DepthwiseConv2D, Embedding, GarNet, GarNetStack, GlobalPooling1D, GlobalPooling2D, Layer, Pooling1D, Pooling2D, SeparableConv1D, SeparableConv2D, SimpleRNN, Softmax
  from hls4ml.model.optimizer import get_backend_passes, layer_optimizer
  from hls4ml.model.types import FixedPrecisionType, IntegerPrecisionType, NamedType, PackedType
  from hls4ml.report import parse_vivado_report
  from hls4ml.utils.fixed_point_utils import ceil_log2
label_desc: Use image node_id 15 for calling the VivadoBackend obj's underlying member method code with example usage: obj.init_depconv2d(layer) without return types