in py/run_fpga_resnet.py [0:0]
def get_fpga_mods(model):
def append_mod(mods, m, name):
mods.append([name, m])
mods = []
for m, name in zip([model.conv1, model.maxpool],
['conv1', 'maxpool']):
append_mod(mods, m, name)
for layer, layer_name in zip([model.layer1, model.layer2, model.layer3, model.layer4],
['layer1', 'layer2', 'layer3', 'layer4']):
for idx, seq in enumerate(layer):
for m, name in zip([seq.conv1, seq.conv2],
['conv1', 'conv2']):
append_mod(mods, m,
'{}.{}.{}'.format(layer_name, idx, name))
if (hasattr(seq, 'conv3')):
append_mod(mods, seq.conv3,
'{}.{}.{}'.format(layer_name, idx, 'conv3'))
if (seq.downsample):
append_mod(mods, seq.downsample,
'{}.{}.{}.0'.format(layer_name, idx, 'downsample'))
append_mod(mods, seq.add,
'{}.{}.{}'.format(layer_name, idx, 'add'))
for m, name in zip([model.avgpool, model.fc], ['avgpool', 'fc']):
append_mod(mods, m, name)
return mods