code: def test_alpha_init(self, ParametricRectifierLayer, init_alpha):
      input_shape = (None, 3, 28, 28)
      # default: alphas only over 2nd axis
      layer = ParametricRectifierLayer(input_shape, alpha=init_alpha)
      alpha = layer.alpha
      assert layer.shared_axes == (0, 2, 3)
      assert alpha.get_value().shape == (3,)
      assert np.allclose(alpha.get_value(), init_alpha((3,)))
  
      # scalar alpha
      layer = ParametricRectifierLayer(
          input_shape, alpha=init_alpha, shared_axes="all"
      )
      alpha = layer.alpha
      assert layer.shared_axes == (0, 1, 2, 3)
      assert alpha.get_value().shape == ()
      assert np.allclose(alpha.get_value(), init_alpha((1,)))
  
      # alphas shared over the 1st axis
      layer = ParametricRectifierLayer(
          input_shape, alpha=init_alpha, shared_axes=0
      )
      alpha = layer.alpha
      assert layer.shared_axes == (0,)
      assert alpha.get_value().shape == (3, 28, 28)
      assert np.allclose(alpha.get_value(), init_alpha((3, 28, 28)))
  
      # alphas shared over the 1st and 4th axes
      layer = ParametricRectifierLayer(
          input_shape, alpha=init_alpha, shared_axes=(0, 3)
      )
      alpha = layer.alpha
      assert layer.shared_axes == (0, 3)
      assert alpha.get_value().shape == (3, 28)
      assert np.allclose(alpha.get_value(), init_alpha((3, 28)))
  
imports: from mock import Mock
  import numpy
  import pytest
  import theano
  from lasagne.layers import InputLayer, standardize, get_output, get_all_params
  from lasagne.utils import floatX
label_desc: Use image node_id 3 for calling the TestParametricRectifierLayer obj's underlying member method code with example usage: obj.test_alpha_init(ParametricRectifierLayer, init_alpha) without return types