提交 48f84b7f authored 作者: Matthew Rocklin's avatar Matthew Rocklin

bad_var now fails on single None

上级 2692a34a
import theano import theano
from theano.gof.utils import give_variables_names, unique from theano.gof.utils import give_variables_names, unique
def test_variables_with_names(): def test_give_variables_names():
x = theano.tensor.matrix('x') x = theano.tensor.matrix('x')
y = x + 1 y = x + 1
z = theano.tensor.dot(x, y) z = theano.tensor.dot(x, y)
...@@ -9,3 +9,12 @@ def test_variables_with_names(): ...@@ -9,3 +9,12 @@ def test_variables_with_names():
give_variables_names(variables) give_variables_names(variables)
assert all(var.name for var in variables) assert all(var.name for var in variables)
assert unique([var.name for var in variables]) assert unique([var.name for var in variables])
def test_give_variables_names_small():
x = theano.tensor.matrix('x')
y = theano.tensor.dot(x, x)
fgraph = theano.FunctionGraph((x,), (y,))
give_variables_names(fgraph.variables)
assert all(var.name for var in fgraph.variables)
assert unique([var.name for var in fgraph.variables])
...@@ -344,7 +344,7 @@ def give_variables_names(variables): ...@@ -344,7 +344,7 @@ def give_variables_names(variables):
""" Gives unique names to an iterable of variables. Modifies input.""" """ Gives unique names to an iterable of variables. Modifies input."""
names = map(lambda var: var.name, variables) names = map(lambda var: var.name, variables)
h = hist(names) h = hist(names)
bad_var = lambda var: h[var.name] > 1 bad_var = lambda var: not var.name or h[var.name] > 1
for i, var in enumerate(filter(bad_var, variables)): for i, var in enumerate(filter(bad_var, variables)):
var.name = (var.name or "") + "_%d"%i var.name = (var.name or "") + "_%d"%i
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论