改变theano张量向量中的值

时间:2017-02-16 16:58:20

标签: python tensorflow theano

我有一个像next_probs这样的theano张量向量[0.222, 0.34342, 0.41324, 0.1231, ...],它是以下函数的输出:

next_probs = tensor.nnet.softmax(logit)

logit是一个与next_probs具有相同尺寸的矢量。

如何在1向量中将一个特定值更改为0,将其他值更改为next_probs

1 个答案:

答案 0 :(得分:1)

您想要改变什么值?如果你只想要一个与next_probs具有相同尺寸的矢量,你可以使用zerosset_subtensor,如下所示

ret = T.zeros(next_probs.shape)
ret = T.set_subtensor(ret[index],1)

如果你想在分类模型中使用它,并且你需要next_probs中概率最高的类变为1而其他类变为0,这是我的另一个答案:

ret = T.zeros(next_probs.shape)
ret = T.set_subtensor(ret[T.argmax(next_probs)],1)

ret是一个向量,类中1表示概率最高,0表示其他