我目前正在努力学习theano。
有没有办法从NxN张量中删除/添加行/列?文档中突出显示的subtensor功能仅修改元素,而不是删除它们。
答案 0 :(得分:3)
Sutensor允许参加张量。它是set_subtensor和inc_subtensor,允许修改它们的一部分。
Theano支持Python和NumPy索引和高级索引。你可以在很多方面做你想做的事。这是一个简单的:
import theano, numpy
T = theano.tensor.matrix()
f = theano.function([T], T[[1, 2, 4]])
f(numpy.arange(25).reshape(5, 5))
所以大多数情况下,您只需传递一个列表,其中包含您要保留的行索引。对于colums,只需使用:
import theano, numpy
T = theano.tensor.matrix()
f = theano.function([T], T[:, [1, 2, 4]])
f(numpy.arange(25).reshape(5, 5))
要添加行,我们支持与numpy相同的界面,因此大多数情况下,您可以通过连接所需的部分来构建新的张量:
import theano, numpy
T = theano.tensor.matrix()
o = theano.tensor.concatenate([T[2], T[4], [100, 101, 102, 103, 104]])
f = theano.function([T], o)
f(numpy.arange(25).reshape(5, 5))