提交 bf1caa23 authored 作者: Frederic's avatar Frederic

Fix a test error related to the constant cache.

theano-nose theano/tensor/tests/test_blas.py:t_gemm.test0a
上级 715b5f82
...@@ -896,9 +896,22 @@ class Gemm(GemmRelated): ...@@ -896,9 +896,22 @@ class Gemm(GemmRelated):
"Wrong number of inputs for %s (expected 5, got %s)" % "Wrong number of inputs for %s (expected 5, got %s)" %
(self, len(inputs))) (self, len(inputs)))
z, a, x, y, b = inputs z, a, x, y, b = inputs
# For the consistency check we don't want z to be a cached constant.
if getattr(z, 'cached', False):
z = copy.copy(z)
zr, xr, yr = [set(view_roots(i)) for i in z, x, y] zr, xr, yr = [set(view_roots(i)) for i in z, x, y]
# TODO: justify / delete # We want the gemm to be inplace. When this op is inplace, it
# declare to be inplace only on z. So to make it safe, we
# raise an error if z can be a view on x or y.
# I don't know if Theano currently can support that case. As
# this case don't happen in our code, I won't spent time
# investigating this. So the assert is for safety. I also
# think there is another mechanism that would prevent this,
# but I don't what to modify old code and have chance to break
# something.
if zr.intersection(xr): if zr.intersection(xr):
raise InconsistencyError(Gemm.E_z_uniq, (z, x)) raise InconsistencyError(Gemm.E_z_uniq, (z, x))
if zr.intersection(yr): if zr.intersection(yr):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论