Example #1
0
 def load_cudanet(self,output_shapes):
     #1. data layer
     self.add_layers(self.dataset,provides=['data', 'label'])
     #2. jeffnet layer
     cuda_layers = pickle.load(open(self.jf_opt.net_file))
     exclude_list = ['probs']
     for cuda_layer in cuda_layers:
         if cuda_layer['name'] not in exclude_list:
             decaf_layer = translator.translate_layer(cuda_layer, output_shapes)
             if not decaf_layer:
                 continue
             needs = []
             for idx in cuda_layer['inputs']:
                 if cuda_layers[idx]['type'] == DATA_TYPENAME:
                     needs.append(cuda_layers[idx]['name'])
                 else:
                     needs.append(cuda_layers[idx]['name'] + OUTPUT_AFFIX)
             provide = cuda_layer['name'] + OUTPUT_AFFIX
             self.add_layers(decaf_layer, needs=needs, provides=provide)
     #3. loss layer
     #loss_layer = core_layers.SquaredLossLayer(name='loss')        
     loss_layer = dw_LossLayer(name='loss')        
     self.add_layer(loss_layer,needs=['fc8_cudanet_out', 'label'])
     self.finish()
     self.layers['loss'].set_label(self.layers['input']._sources[1])
Example #2
0
def dw_cudacnn(cuda_layers, output_shapes):
    decaf_net = dw_Net()
    #decaf_net = base.Net()
    exclude_list = []
    db = 1
    if db:
        #1. data layer
        decaf_net.add_layers(dw_data(),provides=['data', 'label'])
        #2. jeffnet layer
        exclude_list = ['probs']
    for cuda_layer in cuda_layers:
        if cuda_layer['name'] not in exclude_list:
            decaf_layer = translator.translate_layer(cuda_layer, output_shapes)
            if not decaf_layer:
                continue
            needs = []
            for idx in cuda_layer['inputs']:
                if cuda_layers[idx]['type'] == DATA_TYPENAME:
                    needs.append(cuda_layers[idx]['name'])
                else:
                    needs.append(cuda_layers[idx]['name'] + OUTPUT_AFFIX)
            provide = cuda_layer['name'] + OUTPUT_AFFIX
            decaf_net.add_layers(decaf_layer, needs=needs, provides=provide)
    if db:
        #3. loss layer
        #loss_layer = core_layers.SquaredLossLayer(name='loss')        
        loss_layer = dw_LossLayer(name='loss')        
        decaf_net.add_layer(loss_layer,needs=['fc8_cudanet_out', 'label'])
    
    decaf_net.finish()
    return decaf_net