提交 38756031 authored 作者: Sina Honari's avatar Sina Honari

putting advance_indexing as part of the TestAdvancedSubtensor class

上级 80b579b8
...@@ -1265,6 +1265,27 @@ class TestAdvancedSubtensor(unittest.TestCase): ...@@ -1265,6 +1265,27 @@ class TestAdvancedSubtensor(unittest.TestCase):
[5, 6, 7], [5, 6, 7],
[.5, .3 + 2.1, .15 + 2.1]]), aval [.5, .3 + 2.1, .15 + 2.1]]), aval
def test_advanced_indexing(self):
# tests advanced indexing in Theano for 2D and 3D tensors
rng = numpy.random.RandomState(utt.seed_rng())
a = rng.uniform(size=(3,3))
b = theano.shared(a)
i = tensor.iscalar()
j = tensor.iscalar()
z = b[[i, j], :]
f1 = theano.function([i,j],z)
cmd = f1(0,1) == a[[0,1],:]
self.assertTrue(numpy.all(cmp))
aa = rng.uniform(size=(4,2,3))
bb = theano.shared(aa)
k = tensor.iscalar()
z = bb[[i, j, k],:, i:k]
f2 = theano.function([i,j,k],z)
cmd = f2(0,1,2) == aa[[0,1,2],:, 0:2]
self.assertTrue(numpy.all(cmp))
class TestInferShape(utt.InferShapeTester): class TestInferShape(utt.InferShapeTester):
def test_infer_shape(self): def test_infer_shape(self):
...@@ -1429,24 +1450,3 @@ class TestInferShape(utt.InferShapeTester): ...@@ -1429,24 +1450,3 @@ class TestInferShape(utt.InferShapeTester):
self._compile_and_check([admat, advec], self._compile_and_check([admat, advec],
[set_subtensor(admat[aivec_val, bivec_val], advec)], [set_subtensor(admat[aivec_val, bivec_val], advec)],
[admat_val, advec_val], AdvancedIncSubtensor) [admat_val, advec_val], AdvancedIncSubtensor)
def test_advanced_indexing():
# tests advanced indexing in Theano for 2D and 3D tensors
rng = numpy.random.RandomState(utt.seed_rng())
a = rng.uniform(size=(3,3))
b = theano.shared(a)
i = T.iscalar()
j = T.iscalar()
z = b[[i, j], :]
f1 = theano.function([i,j],z)
cmd = f1(0,1) == a[[0,1],:]
numpy.all(cmp)
aa = rng.uniform(size=(4,2,3))
bb = theano.shared(aa)
k = T.iscalar()
z = bb[[i, j, k],:, i:k]
f2 = theano.function([i,j,k],z)
cmd = f2(0,1,2) == aa[[0,1,2],:, 0:2]
numpy.all(cmp)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论