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

flake8 fixes

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