code: def test_build(self, filters, strides, padding, hidden_sizes):
      env = GymEnv(DummyDiscretePixelEnv())
      policy = CategoricalCNNPolicy(
          env_spec=env.spec,
          filters=filters,
          strides=strides,
          padding=padding,
          hidden_sizes=hidden_sizes,
      )
  
      obs = env.reset()[0]
  
      state_input = tf.compat.v1.placeholder(
          tf.float32, shape=(None, None) + policy.input_dim
      )
      dist_sym = policy.build(state_input, name="dist_sym").dist
      dist_sym2 = policy.build(state_input, name="dist_sym2").dist
      output1 = self.sess.run(
          [dist_sym.probs], feed_dict={state_input: [[obs]]}
      )
      output2 = self.sess.run(
          [dist_sym2.probs], feed_dict={state_input: [[obs]]}
      )
      assert np.array_equal(output1, output2)
  
file_path: garage/tests/garage/tf/policies/test_categorical_cnn_policy.py
imports: import pickle
  from unittest import mock
  import numpy
  import pytest
  import tensorflow
  from garage.envs import GymEnv
  from garage.tf.policies import CategoricalCNNPolicy
  from tests.fixtures import TfGraphTestCase
  from tests.fixtures.envs.dummy import DummyDictEnv, DummyDiscretePixelEnv
label_desc: Use image node_id 2 for calling the TestCategoricalCNNPolicyWithModel obj's underlying member method code with example usage: obj.test_build(filters, strides, padding, hidden_sizes) without return types