提交 a0471383 authored 作者: Olivier Delalleau's avatar Olivier Delalleau

Merged

...@@ -163,7 +163,12 @@ class In(SymbolicInput): ...@@ -163,7 +163,12 @@ class In(SymbolicInput):
mutable=None, strict=False, autoname=True, mutable=None, strict=False, autoname=True,
implicit=None): implicit=None):
if implicit is None: if implicit is None:
implicit = isinstance(value, gof.Container) # TODO Having a default value being a Variable only makes sense
# if this is a SharedVariable. This should be changed once shared
# variables are part of Theano instead of living in a separate
# repository.
implicit = (isinstance(value, gof.Container) or
isinstance(value, gof.Variable))
super(In, self).__init__(variable, name, update, mutable, strict, super(In, self).__init__(variable, name, update, mutable, strict,
autoname, implicit = implicit) autoname, implicit = implicit)
self.value = value self.value = value
......
...@@ -725,8 +725,14 @@ class Canonizer(gof.LocalOptimizer): ...@@ -725,8 +725,14 @@ class Canonizer(gof.LocalOptimizer):
return getattr(self, 'name', 'Canonizer(%s, %s, %s)' % (self.main, self.inverse, self.reciprocal)) return getattr(self, 'name', 'Canonizer(%s, %s, %s)' % (self.main, self.inverse, self.reciprocal))
def mul_calculate(num, denum, aslist = False): def mul_calculate(num, denum, aslist=False):
v = reduce(N.multiply, num, 1.0) / reduce(N.multiply, denum, 1.0) if not num and not denum:
# Smallest 1 possible.
return [] if aslist else N.int8(1)
# Make sure we do not accidently upcast data types.
first = num[0] if num else denum[0]
one = N.asarray(first).dtype.type(1)
v = reduce(N.multiply, num, one) / reduce(N.multiply, denum, one)
if aslist: if aslist:
if N.all(v == 1): if N.all(v == 1):
return [] return []
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论