Beispiel #1
0
 def print_inst(self):
     print 'net parameters: \ntype: mlp'
     print 'scales:',
     self.config.input_dim.print_info()
     print '-->',
     self.config.output_dim.print_info()
     print '\nw:',
     self.config.weight_dim.print_info()
     print '\nb:',
     self.config.bias_dim.print_info()
     print '\n'
     InstTemplate.printInstInfo(self)
Beispiel #2
0
 def __init__(self, layer):
     InstTemplate.__init__(self)
     self.config = layer
     self.out_inst_num = InstTemplate.mod(self, layer.output_dim.channel_, self.Tn)
     self.in_inst_num = InstTemplate.mod(self, layer.input_dim.channel_, self.sram_size)
     self.inst_number = self.out_inst_num * self.in_inst_num
     self.input_size_list = InstTemplate.token_size(self, layer.input_dim.channel_ * 2, self.sram_size * 2)
     self.output_size_list = InstTemplate.token_size(self, layer.output_dim.channel_ * 2, self.Tn * 2)
     self.weight_size_list = []
     for y in xrange(self.in_inst_num):
         for x in xrange(self.out_inst_num):
             self.weight_size_list.append(self.input_size_list[y] * self.output_size_list[x] / 2)
     self.bias_size_list = self.output_size_list
     # address
     self.weight_addr_list = self.compute_addrs(layer.w_addr_base, self.weight_size_list)
     self.bias_addr_list = self.compute_addrs(layer.b_addr_base, self.bias_size_list)
     self.input_addr_list = self.compute_addrs(layer.input_addr_base, self.input_size_list)
     self.output_addr_list = self.compute_addrs(layer.output_addr_base, self.output_size_list)
     self.output_sram_addr_list = self.compute_addrs(0, self.output_size_list)