def parse(self, name, mcp, prev_layers, model): dic = WeightLayerParser.parse(self, name, mcp, prev_layers, model) dic['usesActs'] = False dic['channels'] = mcp.safe_get_int(name, 'channels') dic['in_nodes'] = mcp.safe_get_int(name, 'in_nodes') dic['out_nodes'] = mcp.safe_get_int(name, 'out_nodes') pixels = dic['numInputs'][0] / (dic['in_nodes']*dic['channels']) dic['outputs'] = dic['out_nodes'] * dic['channels'] * pixels # assert dic['numInputs'] == [ dic['in_nodes'] * dic['channels'] ] # there is only one input. This input is of size in_nodes*channels self.verify_num_range(dic['outputs'], 'outputs', 1, None) self.make_weights(dic['initW'], [dic['in_nodes']], [dic['out_nodes']*dic['channels']], order='F') self.make_biases(1, dic['out_nodes']*dic['channels'], order='F') print "Initialized filter-fully-connected layer '%s', producing %d outputs in %d channels" % (name, dic['out_nodes'], dic['channels']) return dic
def parse(self, name, mcp, prev_layers, model): dic = WeightLayerParser.parse(self, name, mcp, prev_layers, model) dic['usesActs'] = False dic['channels'] = mcp.safe_get_int(name, 'channels') dic['in_nodes'] = mcp.safe_get_int(name, 'in_nodes') dic['out_nodes'] = mcp.safe_get_int(name, 'out_nodes') pixels = dic['numInputs'][0] / (dic['in_nodes'] * dic['channels']) dic['outputs'] = dic['out_nodes'] * dic['channels'] * pixels # assert dic['numInputs'] == [ dic['in_nodes'] * dic['channels'] ] # there is only one input. This input is of size in_nodes*channels self.verify_num_range(dic['outputs'], 'outputs', 1, None) self.make_weights(dic['initW'], [dic['in_nodes']], [dic['out_nodes'] * dic['channels']], order='F') self.make_biases(1, dic['out_nodes'] * dic['channels'], order='F') print "Initialized filter-fully-connected layer '%s', producing %d outputs in %d channels" % ( name, dic['out_nodes'], dic['channels']) return dic
def __init__(self): WeightLayerParser.__init__(self)