提交 0603014d authored 作者: Frederic Bastien's avatar Frederic Bastien

cast the axes to tuple if it is list in TensorDot and TensorDotGrad

上级 8d2f4abe
......@@ -3712,6 +3712,11 @@ pprint.assign(dot, printing.OperatorPrinter(printing.special['middle_dot'], -1,
#########################
class TensorDotGrad(Op):
def __init__(self, axes):
if isinstance(axes,list):
for i,a in enumerate(axes):
if isinstance(a,list):
axes[i]=tuple(a)
axes=tuple(axes)
self.axes = axes;
def __eq__(self, other):
......@@ -3759,6 +3764,11 @@ class TensorDot(Op):
"""
def __init__(self, axes):
if isinstance(axes,list):
for i,a in enumerate(axes):
if isinstance(a,list):
axes[i]=tuple(a)
axes=tuple(axes)
self.axes = axes;
def __eq__(self, other):
......
......@@ -2444,6 +2444,20 @@ class test_tensordot(unittest.TestCase):
f6(bval,aval)))
utt.verify_grad(TensorDot(axes), [bval,aval])
def test_list(self):
# test matrix-matrix
amat = dmatrix()
bmat = dmatrix()
axes = [[1,],[0,]]
c = tensordot(axes)(amat, bmat)
f3 = inplace_func([amat,bmat],c)
aval = numpy.random.rand(4,7);
bval = numpy.random.rand(7,9);
self.failUnless(numpy.all(numpy.tensordot(aval,bval,axes) == \
f3(aval,bval)))
utt.verify_grad(TensorDot(axes), [aval,bval])
def test_smallest_stack():
sx, sy = dscalar(), dscalar()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论