docstr: Estimate filters for convolution layers
  
  Args:
      theta: angle of filter
      kernel_shape: size of each filter
  
  Returns:
      learned filter as [B, k, k, 1]
docstr_tok: ["Estimate","filters","for","convolution","layers","Args",":","theta",":","angle","of","filter","kernel_shape",":","size","of","each","filter","Returns",":","learned","filter","as","[","B",",","k",",","k",",","1","]"]
code: def _parameter_net(self, theta, kernel_shape=9):
      """Estimate filters for convolution layers
  
      Args:
          theta: angle of filter
          kernel_shape: size of each filter
  
      Returns:
          learned filter as [B, k, k, 1]
      """
      with argscope(FullyConnected, nl=tf.nn.leaky_relu):
          net = FullyConnected("fc1", theta, 64)
          net = FullyConnected("fc2", net, 128)
  
      pred_filter = FullyConnected(
          "fc3", net, kernel_shape**2, nl=tf.identity
      )
      pred_filter = tf.reshape(
          pred_filter,
          [BATCH, kernel_shape, kernel_shape, 1],
          name="pred_filter",
      )
      logger.info(
          "Parameter net output: {}".format(
              pred_filter.get_shape().as_list()
          )
      )
      return pred_filter
  
imports: import argparse
  import multiprocessing
  import numpy
  import cv2
  import tensorflow
  from scipy.signal import convolve2d
  from tensorpack import *
  from tensorpack.dataflow import dataset
  from tensorpack.utils import logger
  from tensorpack.utils.gpu import change_gpu
  from tensorpack.utils.argtools import shape2d, shape4d
  from tensorpack.utils.viz import *
label_desc: Use image node_id 2 for calling the Model obj's underlying member method code with example usage: obj._parameter_net(theta, kernel_shape) and returns: pred_filter