def name_conversion(caffe_layer_name):
    ' Convert a caffe parameter name to a tensorflow parameter name as\n        defined in the above model '
    NAME_MAP = {'bn_conv1/beta': 'conv0/bn/beta', 'bn_conv1/gamma': 'conv0/bn/gamma', 'bn_conv1/mean/EMA': 'conv0/bn/mean/EMA', 'bn_conv1/variance/EMA': 'conv0/bn/variance/EMA', 'conv1/W': 'conv0/W', 'conv1/b': 'conv0/b', 'fc1000/W': 'fc1000/W', 'fc1000/b': 'fc1000/b'}
    if (caffe_layer_name in NAME_MAP):
        return NAME_MAP[caffe_layer_name]
    s = re.search('([a-z]+)([0-9]+)([a-z]+)_', caffe_layer_name)
    if (s is None):
        s = re.search('([a-z]+)([0-9]+)([a-z]+)([0-9]+)_', caffe_layer_name)
        layer_block_part1 = s.group(3)
        layer_block_part2 = s.group(4)
        assert (layer_block_part1 in ['a', 'b'])
        layer_block = (0 if (layer_block_part1 == 'a') else int(layer_block_part2))
    else:
        layer_block = (ord(s.group(3)) - ord('a'))
    layer_type = s.group(1)
    layer_group = s.group(2)
    layer_branch = int(re.search('_branch([0-9])', caffe_layer_name).group(1))
    assert (layer_branch in [1, 2])
    if (layer_branch == 2):
        layer_id = re.search('_branch[0-9]([a-z])/', caffe_layer_name).group(1)
        layer_id = ((ord(layer_id) - ord('a')) + 1)
    TYPE_DICT = {'res': 'conv', 'bn': 'bn'}
    tf_name = caffe_layer_name[caffe_layer_name.index('/'):]
    layer_type = (TYPE_DICT[layer_type] + (str(layer_id) if (layer_branch == 2) else 'shortcut'))
    tf_name = ('group{}/block{}/{}'.format((int(layer_group) - 2), layer_block, layer_type) + tf_name)
    return tf_name
Convert a caffe parameter name to a tensorflow parameter name as
defined in the above model
def name_conversion(caffe_layer_name):
    ' Convert a caffe parameter name to a tensorflow parameter name as\n        defined in the above model '
    NAME_MAP = {'bn_conv1/beta': 'conv0/bn/beta', 'bn_conv1/gamma': 'conv0/bn/gamma', 'bn_conv1/mean/EMA': 'conv0/bn/mean/EMA', 'bn_conv1/variance/EMA': 'conv0/bn/variance/EMA', 'conv1/W': 'conv0/W', 'conv1/b': 'conv0/b', 'fc1000/W': 'fc1000/W', 'fc1000/b': 'fc1000/b'}
    if (caffe_layer_name in NAME_MAP):
        return NAME_MAP[caffe_layer_name]
    s = re.search('([a-z]+)([0-9]+)([a-z]+)_', caffe_layer_name)
    if (s is None):
        s = re.search('([a-z]+)([0-9]+)([a-z]+)([0-9]+)_', caffe_layer_name)
        layer_block_part1 = s.group(3)
        layer_block_part2 = s.group(4)
        assert (layer_block_part1 in ['a', 'b'])
        layer_block = (0 if (layer_block_part1 == 'a') else int(layer_block_part2))
    else:
        layer_block = (ord(s.group(3)) - ord('a'))
    layer_type = s.group(1)
    layer_group = s.group(2)
    layer_branch = int(re.search('_branch([0-9])', caffe_layer_name).group(1))
    assert (layer_branch in [1, 2])
    if (layer_branch == 2):
        layer_id = re.search('_branch[0-9]([a-z])/', caffe_layer_name).group(1)
        layer_id = ((ord(layer_id) - ord('a')) + 1)
    TYPE_DICT = {'res': 'conv', 'bn': 'bn'}
    tf_name = caffe_layer_name[caffe_layer_name.index('/'):]
    layer_type = (TYPE_DICT[layer_type] + (str(layer_id) if (layer_branch == 2) else 'shortcut'))
    tf_name = ('group{}/block{}/{}'.format((int(layer_group) - 2), layer_block, layer_type) + tf_name)
    return tf_name