Diff of /darkflow/dark/darkop.py [000000] .. [d34869]

Switch to side-by-side view

--- a
+++ b/darkflow/dark/darkop.py
@@ -0,0 +1,69 @@
+from .layer import Layer
+from .convolution import *
+from .connected import *
+
+
+class avgpool_layer(Layer):
+    pass
+
+
+class crop_layer(Layer):
+    pass
+
+
+class maxpool_layer(Layer):
+    def setup(self, ksize, stride, pad):
+        self.stride = stride
+        self.ksize = ksize
+        self.pad = pad
+
+
+class softmax_layer(Layer):
+    def setup(self, groups):
+        self.groups = groups
+
+
+class dropout_layer(Layer):
+    def setup(self, p):
+        self.h['pdrop'] = dict({
+            'feed': p,  # for training
+            'dfault': 1.0,  # for testing
+            'shape': ()
+        })
+
+
+class route_layer(Layer):
+    def setup(self, routes):
+        self.routes = routes
+
+
+class reorg_layer(Layer):
+    def setup(self, stride):
+        self.stride = stride
+
+
+"""
+Darkop Factory
+"""
+
+darkops = {
+    'dropout': dropout_layer,
+    'connected': connected_layer,
+    'maxpool': maxpool_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
+}
+
+
+def create_darkop(ltype, num, *args):
+    op_class = darkops.get(ltype, Layer)
+    return op_class(ltype, num, *args)