code: def fprop(self, x, **kwargs):
      del kwargs
      my_conv = functools.partial(
          tf.layers.conv2d,
          activation=tf.nn.relu,
          kernel_initializer=initializers.HeReLuNormalInitializer,
      )
      with tf.variable_scope(self.scope, reuse=tf.AUTO_REUSE):
          conv1 = my_conv(
              x, self.nb_filters, 8, strides=2, padding="same"
          )
          conv2 = my_conv(
              conv1, 2 * self.nb_filters, 6, strides=2, padding="valid"
          )
          conv3 = my_conv(
              conv2,
              2 * self.nb_filters,
              5,
              strides=1,
              padding="valid",
          )
          logits = tf.layers.dense(
              tf.layers.flatten(conv3),
              self.nb_classes,
              kernel_initializer=initializers.HeReLuNormalInitializer,
          )
          return {
              self.O_LOGITS: logits,
              self.O_PROBS: tf.nn.softmax(logits=logits),
              "conv1": conv1,
              "conv2": conv2,
              "conv3": conv3,
          }
  
file_path: cleverhans/cleverhans_v3.1.0/cleverhans/model_zoo/soft_nearest_neighbor_loss/SNNL_regularized_model.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import functools
  import tensorflow
  from cleverhans import initializers
  from cleverhans.model import Model
label_desc: Use image node_id 4 for calling the ModelBasicCNN obj's underlying member method code with example usage: obj.fprop(x) and returns: dict