我有一个像next_probs
这样的theano张量向量[0.222, 0.34342, 0.41324, 0.1231, ...]
,它是以下函数的输出:
next_probs = tensor.nnet.softmax(logit)
logit
是一个与next_probs
具有相同尺寸的矢量。
如何在1
向量中将一个特定值更改为0
,将其他值更改为next_probs
?
答案 0 :(得分:1)
您想要改变什么值?如果你只想要一个与next_probs
具有相同尺寸的矢量,你可以使用zeros
和set_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表示其他