code: def __setattr__(self, name, value):
      if self.within_init_scope and isinstance(value, Link):
          new_name = rename(name)
  
          if new_name == "extractor/conv1_1":
              # BGR -> RGB
              value.W.array[:, ::-1] = value.W.array
              print("{:s} -> {:s} (BGR -> RGB)".format(name, new_name))
          elif new_name.startswith("multibox/loc/"):
              # xy -> yx
              for data in (value.W.array, value.b.array):
                  data = data.reshape((-1, 4) + data.shape[1:])
                  data[:, [1, 0, 3, 2]] = data.copy()
              print("{:s} -> {:s} (xy -> yx)".format(name, new_name))
          else:
              print("{:s} -> {:s}".format(name, new_name))
      else:
          new_name = name
  
      super(SSDCaffeFunction, self).__setattr__(new_name, value)
  
file_path: chainercv/examples/ssd/caffe2npz.py
imports: import argparse
  import numpy
  import re
  from chainer import Link
  import chainer.links.caffe.caffe_function
  from chainer import serializers
  from chainercv.links.model.ssd import Normalize
label_desc: Use image node_id 2 for calling the SSDCaffeFunction obj's underlying member method code with example usage: obj.__setattr__(name, value) without return types