MCPcopy Index your code
hub / github.com/tensorpack/tensorpack / name_conversion

Function name_conversion

examples/ResNet/load-resnet.py:101–138  ·  view source on GitHub ↗

Convert a caffe parameter name to a tensorflow parameter name as defined in the above model

(caffe_layer_name)

Source from the content-addressed store, hash-verified

99
100
101def name_conversion(caffe_layer_name):
102 """ Convert a caffe parameter name to a tensorflow parameter name as
103 defined in the above model """
104 # beginning & end mapping
105 NAME_MAP = {'bn_conv1/beta': 'conv0/bn/beta',
106 'bn_conv1/gamma': 'conv0/bn/gamma',
107 'bn_conv1/mean/EMA': 'conv0/bn/mean/EMA',
108 'bn_conv1/variance/EMA': 'conv0/bn/variance/EMA',
109 'conv1/W': 'conv0/W', 'conv1/b': 'conv0/b',
110 'fc1000/W': 'linear/W', 'fc1000/b': 'linear/b'}
111 if caffe_layer_name in NAME_MAP:
112 return NAME_MAP[caffe_layer_name]
113
114 s = re.search('([a-z]+)([0-9]+)([a-z]+)_', caffe_layer_name)
115 if s is None:
116 s = re.search('([a-z]+)([0-9]+)([a-z]+)([0-9]+)_', caffe_layer_name)
117 layer_block_part1 = s.group(3)
118 layer_block_part2 = s.group(4)
119 assert layer_block_part1 in ['a', 'b']
120 layer_block = 0 if layer_block_part1 == 'a' else int(layer_block_part2)
121 else:
122 layer_block = ord(s.group(3)) - ord('a')
123 layer_type = s.group(1)
124 layer_group = s.group(2)
125
126 layer_branch = int(re.search('_branch([0-9])', caffe_layer_name).group(1))
127 assert layer_branch in [1, 2]
128 if layer_branch == 2:
129 layer_id = re.search('_branch[0-9]([a-z])/', caffe_layer_name).group(1)
130 layer_id = ord(layer_id) - ord('a') + 1
131
132 TYPE_DICT = {'res': 'conv{}', 'bn': 'conv{}/bn'}
133 layer_type = TYPE_DICT[layer_type].format(layer_id if layer_branch == 2 else 'shortcut')
134
135 tf_name = caffe_layer_name[caffe_layer_name.index('/'):]
136 tf_name = 'group{}/block{}/{}'.format(
137 int(layer_group) - 2, layer_block, layer_type) + tf_name
138 return tf_name
139
140
141def convert_param_name(param):

Callers 1

convert_param_nameFunction · 0.85

Calls 2

groupMethod · 0.80
formatMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…