提交 91aa8472 authored 作者: James Bergstra's avatar James Bergstra

minor rewriting of tensor.Default Op

上级 d44c7f33
...@@ -1833,14 +1833,16 @@ class Default(gof.Op): ...@@ -1833,14 +1833,16 @@ class Default(gof.Op):
view_map = {0: [0]} view_map = {0: [0]}
def make_node(self, x, default): def make_node(self, x, default):
x, default = as_tensor_variable(x), as_tensor_variable(default) x, default = as_tensor_variable(x), as_tensor_variable(default)
assert x.type == default.type if x.type != default.type:
raise TypeError('Both default() arguments must have same type', x, default)
return gof.Apply(self, [x, default], [default.type()]) return gof.Apply(self, [x, default], [default.type()])
def perform(self, node, (x, default), (out, )): def perform(self, node, (x, default), (out, )):
if x is None: if x is None:
# why copy? Theano can't yet understand out[0] being a view of either x or y,
# so we can be a view of x, but only a copy of y.
out[0] = default.copy() out[0] = default.copy()
else: else:
out[0] = x out[0] = x
#backport out[0] = default.copy() if x is None else x
default = Default() default = Default()
setdefault = default # legacy setdefault = default # legacy
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论