f0bd648c0b537d881cd5d81681fc2351aae01813
[platform/upstream/caffeonacl.git] / src / caffe / pyutil / translator / translator_neuron.py
1 """Translates the neuron layers."""
2 from caffe.pyutil.translator import registerer
3 from caffe.proto import caffe_pb2
4 import logging
5
6
7 def translator_neuron(cuda_layer):
8     """Translates the neuron layers.
9     Note: not all neuron layers are supported. We only implemented those that
10     are needed for imagenet.
11     """
12     output_layer = caffe_pb2.LayerParameter()
13     output_layer.name = cuda_layer['name']
14     neurontype = cuda_layer['neuron']['type']
15     if neurontype == 'relu':
16         output_layer.type = 'relu'
17     elif neurontype == 'dropout':
18         output_layer.type = 'dropout'
19         output_layer.dropout_ratio = cuda_layer['neuron']['params']['d']
20     else:
21         raise NotImplementedError('Neuron type %s not implemented yet.'
22                                   % neurontype)
23     return [output_layer]
24
25 registerer.register_translator('neuron', translator_neuron)