提交 92021ca6 authored 作者: Frederic's avatar Frederic

new more complet fix. Now we check that we don't downcast at this place too.

All test was passing without this, so the no downcast is also checked elsewhere but it is safer to do it before the downcast then recover somewhere later.
上级 93f4f290
......@@ -1113,23 +1113,15 @@ def _gemm_from_factored_list(lst):
"""Returns None, or a list to replace node.outputs
"""
# Make every pair in list have matching dtypes
def is_pair(sM):
try:
s, M = sM
return True
except Exception:
return False
lst2 = []
# Remove the tuple that can't be casted correctly.
# This can happen when we try to cast a complex to a real
for sM in lst:
if is_pair(sM):
try:
lst2.append(T.cast(sM[0],sM[1].type.dtype), sM[1])
except TypeError:
pass
if len(sM) == 2:
sm0, sm1 = sM
sm0 = T.as_tensor_variable(sm0)
if theano.scalar.upcast(sm0.dtype, sm1.dtype) == sm1.dtype:
lst2.append((T.cast(sm0, sm1.dtype), sM[1]))
lst = lst2
# Try every pair in the sM_list, trying to turn it into a gemm operation
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论