# noinspection PyUnresolvedReferences
from beagles.backend.darknet.layer import Layer
from beagles.backend.darknet.convolution import *
from beagles.backend.darknet.connected import *
from beagles.backend.darknet.rnn import *
[docs]class avgpool_layer(Layer):
[docs] def setup(self):
"""Not Implemented"""
pass
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
[docs]class crop_layer(Layer):
[docs] def setup(self):
"""Not Implemented"""
pass
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
# noinspection PyAttributeOutsideInit
[docs]class upsample_layer(Layer):
[docs] def setup(self, stride, h, w):
self.stride = stride
self.height = h
self.width = w
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
# noinspection PyAttributeOutsideInit
[docs]class shortcut_layer(Layer):
[docs] def setup(self, from_layer):
self.from_layer = from_layer
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
# noinspection PyAttributeOutsideInit
[docs]class maxpool_layer(Layer):
[docs] def setup(self, ksize, stride, pad):
self.stride = stride
self.ksize = ksize
self.pad = pad
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
# noinspection PyAttributeOutsideInit
[docs]class softmax_layer(Layer):
[docs] def setup(self, groups):
self.groups = groups
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
[docs]class dropout_layer(Layer):
[docs] def setup(self, p):
self.h['pdrop'] = dict({
'feed': p, # for training
'dfault': 1.0, # for testing
'shape': ()
})
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
# noinspection PyAttributeOutsideInit
[docs]class route_layer(Layer):
[docs] def setup(self, routes):
self.routes = routes
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
# noinspection PyAttributeOutsideInit
[docs]class reorg_layer(Layer):
[docs] def setup(self, stride):
self.stride = stride
[docs] def finalize(self, *args):
"""Not Implemented"""
pass
darkops = {
'dropout': dropout_layer,
'connected': connected_layer,
'maxpool': maxpool_layer,
'shortcut': shortcut_layer,
'upsample': upsample_layer,
'convolutional': convolutional_layer,
'avgpool': avgpool_layer,
'softmax': softmax_layer,
'crop': crop_layer,
'local': local_layer,
'select': select_layer,
'route': route_layer,
'reorg': reorg_layer,
'conv-select': conv_select_layer,
'conv-extract': conv_extract_layer,
'extract': extract_layer,
'lstm': lstm_layer,
'rnn': rnn_layer,
'gru': gru_layer
}
[docs]def create_darkop(ltype: str, num: int, *args):
op_class = darkops.get(ltype, Layer)
return op_class(ltype, num, *args)