Skip to content
Snippets Groups Projects
Commit 4240a8fe authored by Yuanjing Shi's avatar Yuanjing Shi
Browse files

separate operators and ir, create new abstraction for element wise ops

parent abdee6ee
No related branches found
No related tags found
No related merge requests found
......@@ -120,64 +120,21 @@ class DFGNode:
self.outputs = []
self.name = layer.name
self.op_type = layer.op_type
class AddNode(DFGNode):
pass
class MatMul(DFGNode):
'''
Element wise operatos that is for activation function
e.g. HardSigmoid, LeakyRelu, PRelu, Pow, Reciprocal,
Relu, Selu, Sigmoid, Softplus, Sqrt, ThresholdedRelu,
Abs, Ceil, Elu, Floor, Neg
'''
class ActivationNode(DFGNode):
pass
class SoftMax(DFGNode):
'''
ELement wise operators that is not for activation function.
In other words, they are logical comparison operators
e.g. And, Equal, Greater, GreaterOrEqual, Less, LessOrEqual,
Or, Xor
'''
class LogicalOpNode(DFGNode):
pass
class Conv2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.weights = layer.get_weights()[0]
print("\t", self.weights.shape)
self.use_bias = layer.use_bias
self.padding = layer.padding
self.strides = layer.strides
print("\t", self.strides)
print("\tPadding = ", self.padding)
class DepthwiseConv2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.weights = layer.get_weights()[0]
print("\t", self.weights.shape)
self.use_bias = layer.use_bias
self.padding = layer.padding
self.strides = layer.strides
print("\t", self.strides)
print("\tPadding = ", self.padding)
class DenseNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.weights = layer.get_weights()[0]
print("\t", self.weights.shape)
self.use_bias = layer.use_bias
class MaxPool2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.pool_size = layer.pool_size
self.strides = layer.strides
print("\t pool_size = ", self.pool_size)
print("\t strides = ", self.strides)
class AveragePooling2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.pool_size = layer.pool_size
self.strides = layer.strides
print("\t pool_size = ", self.pool_size)
print("\t strides = ", self.strides)
class ZeroPadding2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
print ("***ZeroPaddding \n");
self.padding = layer.padding
print ("padding = ", self.padding)
class BatchNormalizationNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.epsilon = layer.epsilon
self.beta = layer.beta
self.gamma = layer.gamma
self.moving_mean = layer.moving_mean
self.moving_variance = layer.moving_variance
\ No newline at end of file
\ No newline at end of file
from .ir import DFGNode, ActivationNode, LogicalOpNode
class AddNode(DFGNode):
pass
class MatMul(DFGNode):
pass
class SoftMax(DFGNode):
pass
class Conv2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.weights = layer.get_weights()[0]
print("\t", self.weights.shape)
self.use_bias = layer.use_bias
self.padding = layer.padding
self.strides = layer.strides
print("\t", self.strides)
print("\tPadding = ", self.padding)
class DepthwiseConv2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.weights = layer.get_weights()[0]
print("\t", self.weights.shape)
self.use_bias = layer.use_bias
self.padding = layer.padding
self.strides = layer.strides
print("\t", self.strides)
print("\tPadding = ", self.padding)
class DenseNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.weights = layer.get_weights()[0]
print("\t", self.weights.shape)
self.use_bias = layer.use_bias
class MaxPool2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.pool_size = layer.pool_size
self.strides = layer.strides
print("\t pool_size = ", self.pool_size)
print("\t strides = ", self.strides)
class AveragePooling2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.pool_size = layer.pool_size
self.strides = layer.strides
print("\t pool_size = ", self.pool_size)
print("\t strides = ", self.strides)
class ZeroPadding2DNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
print ("***ZeroPaddding \n");
self.padding = layer.padding
print ("padding = ", self.padding)
class BatchNormalizationNode(DFGNode):
def __init__(self, layer):
DFGNode.__init__(self, layer)
self.epsilon = layer.epsilon
self.beta = layer.beta
self.gamma = layer.gamma
self.moving_mean = layer.moving_mean
self.moving_variance = layer.moving_variance
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment