提交 c6afafdd authored 作者: Amjad Almahairi's avatar Amjad Almahairi

flake8 fixes

上级 396e2f1e
...@@ -1596,12 +1596,12 @@ def local_useless_elemwise(node): ...@@ -1596,12 +1596,12 @@ def local_useless_elemwise(node):
elif node.op.scalar_op == theano.scalar.add and len(node.inputs) == 1: elif node.op.scalar_op == theano.scalar.add and len(node.inputs) == 1:
# No need to copy over any stack trace # No need to copy over any stack trace
return [node.inputs[0]] return [node.inputs[0]]
elif node.op.scalar_op == theano.scalar.identity and \ elif (node.op.scalar_op == theano.scalar.identity and
len(node.inputs) == 1: len(node.inputs) == 1):
return [node.inputs[0]] return [node.inputs[0]]
elif isinstance(node.op.scalar_op, scalar.AND) and \ elif (isinstance(node.op.scalar_op, scalar.AND) and
len(node.inputs) == 2: len(node.inputs) == 2):
if isinstance(node.inputs[0], T.TensorConstant): if isinstance(node.inputs[0], T.TensorConstant):
const_val = T.extract_constant(node.inputs[0]) const_val = T.extract_constant(node.inputs[0])
...@@ -1617,8 +1617,8 @@ def local_useless_elemwise(node): ...@@ -1617,8 +1617,8 @@ def local_useless_elemwise(node):
elif const_val == 0: elif const_val == 0:
return zeros_like(node, 0) return zeros_like(node, 0)
elif isinstance(node.op.scalar_op, scalar.OR) and \ elif (isinstance(node.op.scalar_op, scalar.OR) and
len(node.inputs) == 2: len(node.inputs) == 2):
if isinstance(node.inputs[0], T.TensorConstant): if isinstance(node.inputs[0], T.TensorConstant):
const_val = T.extract_constant(node.inputs[0]) const_val = T.extract_constant(node.inputs[0])
...@@ -1634,8 +1634,8 @@ def local_useless_elemwise(node): ...@@ -1634,8 +1634,8 @@ def local_useless_elemwise(node):
if const_val == 1: if const_val == 1:
return ones_like(node, 0) return ones_like(node, 0)
elif isinstance(node.op.scalar_op, scalar.XOR) and \ elif (isinstance(node.op.scalar_op, scalar.XOR) and
len(node.inputs) == 2: len(node.inputs) == 2):
if node.inputs[0] is node.inputs[1]: if node.inputs[0] is node.inputs[1]:
return zeros_like(node, 0) return zeros_like(node, 0)
...@@ -2817,10 +2817,11 @@ def local_inplace_setsubtensor(node): ...@@ -2817,10 +2817,11 @@ def local_inplace_setsubtensor(node):
""" """
if isinstance(node.op, IncSubtensor) and not node.op.inplace: if isinstance(node.op, IncSubtensor) and not node.op.inplace:
dta = node.op.destroyhandler_tolerate_aliased
new_op = node.op.__class__( new_op = node.op.__class__(
node.op.idx_list, inplace=True, node.op.idx_list, inplace=True,
set_instead_of_inc=node.op.set_instead_of_inc, set_instead_of_inc=node.op.set_instead_of_inc,
destroyhandler_tolerate_aliased=node.op.destroyhandler_tolerate_aliased) destroyhandler_tolerate_aliased=dta)
new_node = new_op(*node.inputs) new_node = new_op(*node.inputs)
return [new_node] return [new_node]
return False return False
...@@ -3297,14 +3298,14 @@ def local_useless_switch(node): ...@@ -3297,14 +3298,14 @@ def local_useless_switch(node):
left = node.inputs[1] left = node.inputs[1]
right = node.inputs[2] right = node.inputs[2]
cond_var = node.inputs[0] cond_var = node.inputs[0]
if (cond_var.owner and if cond_var.owner and \
isinstance(cond_var.owner.op, T.Elemwise) and isinstance(cond_var.owner.op, T.Elemwise) and \
isinstance(cond_var.owner.op.scalar_op, scalar.LE) and isinstance(cond_var.owner.op.scalar_op, scalar.LE) and \
cond_var.owner.inputs[0].owner and cond_var.owner.inputs[0].owner and \
isinstance(cond_var.owner.inputs[0].owner.op, Shape_i) and isinstance(cond_var.owner.inputs[0].owner.op, Shape_i) and \
T.extract_constant(cond_var.owner.inputs[1]) == 0 and T.extract_constant(cond_var.owner.inputs[1]) == 0 and \
T.extract_constant(left) == 0 and T.extract_constant(left) == 0 and \
right is cond_var.owner.inputs[0]): right is cond_var.owner.inputs[0]:
assert right.type == node.outputs[0].type assert right.type == node.outputs[0].type
return [right] return [right]
return False return False
...@@ -4217,7 +4218,6 @@ def local_useless_elemwise_comparison(node): ...@@ -4217,7 +4218,6 @@ def local_useless_elemwise_comparison(node):
:note: These cases appear in the graph generated by scan. :note: These cases appear in the graph generated by scan.
These optimizations will not reduce computation, These optimizations will not reduce computation,
but will make the graph easier to read. but will make the graph easier to read.
# Comparing to itself is constant # Comparing to itself is constant
Elemwise[{LT,GT}](X, X) -> Elemwise[zeros](X) Elemwise[{LT,GT}](X, X) -> Elemwise[zeros](X)
Elemwise[{LE,GE}](X, X) -> Elemwise[ones](X) Elemwise[{LE,GE}](X, X) -> Elemwise[ones](X)
...@@ -4241,72 +4241,72 @@ def local_useless_elemwise_comparison(node): ...@@ -4241,72 +4241,72 @@ def local_useless_elemwise_comparison(node):
if node.op.scalar_op.nin != 2: if node.op.scalar_op.nin != 2:
return return
# Elemwise[{LT,GT}](X, X) -> Elemwise[zeros](X) # Elemwise[{LT,GT}](X, X) -> Elemwise[zeros](X)
if (isinstance(node.op.scalar_op, (scalar.LT, scalar.GT)) and if isinstance(node.op.scalar_op, (scalar.LT, scalar.GT)) and \
node.inputs[0] is node.inputs[1]): node.inputs[0] is node.inputs[1]:
return [T.zeros_like(node.outputs[0], dtype=node.outputs[0].type.dtype)] return [T.zeros_like(node.outputs[0], dtype=node.outputs[0].type.dtype)]
# Elemwise[{LE,GE}](X, X) -> Elemwise[ones](X) # Elemwise[{LE,GE}](X, X) -> Elemwise[ones](X)
if (isinstance(node.op.scalar_op, (scalar.LE, scalar.GE)) and if isinstance(node.op.scalar_op, (scalar.LE, scalar.GE)) and \
node.inputs[0] is node.inputs[1]): node.inputs[0] is node.inputs[1]:
return [T.ones_like(node.inputs[0], dtype=node.outputs[0].type.dtype)] return [T.ones_like(node.inputs[0], dtype=node.outputs[0].type.dtype)]
# Elemwise[{minimum,maximum}](X, X) -> X # Elemwise[{minimum,maximum}](X, X) -> X
if (isinstance(node.op.scalar_op, (scalar.Minimum, scalar.Maximum)) and if isinstance(node.op.scalar_op, (scalar.Minimum, scalar.Maximum)) and \
node.inputs[0] is node.inputs[1]): node.inputs[0] is node.inputs[1]:
return [node.inputs[0]] return [node.inputs[0]]
# Elemwise[LT](X.shape[i], 0) -> Elemwise[zeros](X) # Elemwise[LT](X.shape[i], 0) -> Elemwise[zeros](X)
if (isinstance(node.op.scalar_op, scalar.LT) and if isinstance(node.op.scalar_op, scalar.LT) and \
node.inputs[0].owner and node.inputs[0].owner and \
isinstance(node.inputs[0].owner.op, Shape_i) and isinstance(node.inputs[0].owner.op, Shape_i) and \
T.extract_constant(node.inputs[1]) == 0): T.extract_constant(node.inputs[1]) == 0:
return [T.zeros_like(node.outputs[0])] return [T.zeros_like(node.outputs[0])]
# Elemwise[GE](X.shape[i], 0) -> Elemwise[ones](X) # Elemwise[GE](X.shape[i], 0) -> Elemwise[ones](X)
if (isinstance(node.op.scalar_op, scalar.GE) and if isinstance(node.op.scalar_op, scalar.GE) and \
node.inputs[0].owner and node.inputs[0].owner and \
isinstance(node.inputs[0].owner.op, Shape_i) and isinstance(node.inputs[0].owner.op, Shape_i) and \
T.extract_constant(node.inputs[1]) == 0): T.extract_constant(node.inputs[1]) == 0:
return [T.ones_like(node.outputs[0])] return [T.ones_like(node.outputs[0])]
# Elemwise[maximum](X.shape[i], 0) -> X.shape[i] # Elemwise[maximum](X.shape[i], 0) -> X.shape[i]
if (isinstance(node.op.scalar_op, scalar.Maximum) and if isinstance(node.op.scalar_op, scalar.Maximum) and \
node.inputs[0].owner and node.inputs[0].owner and \
isinstance(node.inputs[0].owner.op, Shape_i) and isinstance(node.inputs[0].owner.op, Shape_i) and \
T.extract_constant(node.inputs[1]) == 0): T.extract_constant(node.inputs[1]) == 0:
return [node.inputs[0]] return [node.inputs[0]]
# Elemwise[maximum](0, X.shape[i]) -> X.shape[i] # Elemwise[maximum](0, X.shape[i]) -> X.shape[i]
if (isinstance(node.op.scalar_op, scalar.Maximum) and if isinstance(node.op.scalar_op, scalar.Maximum) and \
T.extract_constant(node.inputs[0]) == 0 and T.extract_constant(node.inputs[0]) == 0 and \
node.inputs[1].owner and node.inputs[1].owner and \
isinstance(node.inputs[1].owner.op, Shape_i)): isinstance(node.inputs[1].owner.op, Shape_i):
return [node.inputs[1]] return [node.inputs[1]]
# Elemwise[minimum](X.shape[i], 0) -> 0 # Elemwise[minimum](X.shape[i], 0) -> 0
if (isinstance(node.op.scalar_op, scalar.Minimum) and if isinstance(node.op.scalar_op, scalar.Minimum) and \
node.inputs[0].owner and node.inputs[0].owner and \
isinstance(node.inputs[0].owner.op, Shape_i) and isinstance(node.inputs[0].owner.op, Shape_i) and \
T.extract_constant(node.inputs[1]) == 0): T.extract_constant(node.inputs[1]) == 0:
return [T.zeros_like(node.outputs[0])] return [T.zeros_like(node.outputs[0])]
# Elemwise[minimum](0, X.shape[i]) -> 0 # Elemwise[minimum](0, X.shape[i]) -> 0
if (isinstance(node.op.scalar_op, scalar.Minimum) and if isinstance(node.op.scalar_op, scalar.Minimum) and \
T.extract_constant(node.inputs[0]) == 0 and T.extract_constant(node.inputs[0]) == 0 and \
node.inputs[1].owner and node.inputs[1].owner and \
isinstance(node.inputs[1].owner.op, Shape_i)): isinstance(node.inputs[1].owner.op, Shape_i):
return [T.zeros_like(node.outputs[0])] return [T.zeros_like(node.outputs[0])]
# Elemwise[LT](sum([anything that is shapes]), 0) -> Elemwise[zeros](X) # Elemwise[LT](sum([anything that is shapes]), 0) -> Elemwise[zeros](X)
if (isinstance(node.op.scalar_op, scalar.LT) and if isinstance(node.op.scalar_op, scalar.LT) and \
node.inputs[0].owner and node.inputs[0].owner and \
isinstance(node.inputs[0].owner.op, Elemwise) and isinstance(node.inputs[0].owner.op, Elemwise) and \
isinstance(node.inputs[0].owner.op, scalar.Add) and isinstance(node.inputs[0].owner.op, scalar.Add) and \
all([isinstance(var.owner and var.owner.op, Shape_i) all([isinstance(var.owner and var.owner.op, Shape_i)
for var in node.inputs[0].owner.inputs]) and for var in node.inputs[0].owner.inputs]) and \
T.extract_constant(node.inputs[1]) == 0): T.extract_constant(node.inputs[1]) == 0:
return [T.zeros_like(node.inputs[0], dtype=node.outputs[0].dtype)] return [T.zeros_like(node.inputs[0], dtype=node.outputs[0].dtype)]
# Elemwise[GE](sum([anything that is shapes]), 0) -> Elemwise[ones](X) # Elemwise[GE](sum([anything that is shapes]), 0) -> Elemwise[ones](X)
if (isinstance(node.op.scalar_op, scalar.GE) and if isinstance(node.op.scalar_op, scalar.GE) and \
node.inputs[0].owner and node.inputs[0].owner and \
isinstance(node.inputs[0].owner.op, Elemwise) and isinstance(node.inputs[0].owner.op, Elemwise) and \
isinstance(node.inputs[0].owner.op, scalar.Add) and isinstance(node.inputs[0].owner.op, scalar.Add) and \
all([isinstance(var.owner and var.owner.op, Shape_i) all([isinstance(var.owner and var.owner.op, Shape_i)
for var in node.inputs[0].owner.inputs]) and for var in node.inputs[0].owner.inputs]) and \
T.extract_constant(node.inputs[1]) == 0): T.extract_constant(node.inputs[1]) == 0:
return [T.ones_like(node.inputs[0], dtype=node.outputs[0].dtype)] return [T.ones_like(node.inputs[0], dtype=node.outputs[0].dtype)]
return return
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论