Python 更改theano张量向量中的值

Python 更改theano张量向量中的值,python,tensorflow,theano,Python,Tensorflow,Theano,我有一个无张量向量下一个问题类似于[0.222,0.34342,0.41324,0.1231,…],它是以下函数的输出: next_probs = tensor.nnet.softmax(logit) logit是与next\u probs具有相同维度的向量 如何在next\u probsvector中将一个特定值更改为1,将其他值更改为0?如果您只想得到一个与next\u probs具有相同维度的向量,您可以使用zero和set\u subsensor如下所示 ret = T.zeros(n

我有一个无张量向量
下一个问题
类似于
[0.222,0.34342,0.41324,0.1231,…]
,它是以下函数的输出:

next_probs = tensor.nnet.softmax(logit)
logit
是与
next\u probs
具有相同维度的向量


如何在
next\u probs
vector中将一个特定值更改为
1
,将其他值更改为
0
?如果您只想得到一个与
next\u probs
具有相同维度的向量,您可以使用
zero
set\u subsensor
如下所示

ret = T.zeros(next_probs.shape)
ret = T.set_subtensor(ret[index],1)
如果你想在分类模型中使用这个,你需要在
next\u probs
中概率最高的类变为1,其他类变为0,这是我的另一个答案:

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

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

我得到了一个维度错误:索引器:导致错误的索引越界应用节点:incsubsensor{InplaceSet;int64}(Alloc.0,TensorConstant{1},Constant{9})拓扑排序索引:63个输入类型:[TensorType(float32,matrix),TensorType(int8,scalar),scalar(int64)]输入形状:[(126942),(),()]输入步幅:[(107768,4),(),(),()]输入值:[“未显示”,数组(1,dtype=int8),9]输出客户端:[[Softmax(IncSubSensor{InplaceSet;int64}.0)]]