BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #32026同步于 2018/10/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

【解决】TensorFlow中有没有对Tensor赋值的曲线救国方法?

Viredery
2018/10/23镜像同步31 回复
再次更新 tensorflow提供tf.scatter_update函数。。。。 更新 19楼,R0818的方法,解决了我的问题,感谢~ 如果用的eager,tensor可以直接转numpy,把索引值全放在一块,最后.numpy()就行,创建一个新的array,对应位赋值,tf.convert_to_tensor(array)就转成tensor 我想纯用tensorflow写,最后还是做了妥协,numpy转tensor哈哈哈哈。不过我这里不涉及反向传播。 torch的话的确可以不借助numpy实现哈哈哈 原文 TensorFlow中的Tensor不支持赋值操作 如果我想创建一个给定索引为1,其他位置为0的Tensor,有什么解决方法吗? 比如,我想创建一个长度为10的Tensor,索引0 5 8 9处的值为1, 那么结果是[1 0 0 0 0 1 0 0 1 1]
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
w86568376机器人#1 · 2018/10/23
tf.assign了解一下形状都可以改变
w86568376机器人#2 · 2018/10/23
话说tf.constant不行吗
Viredery机器人#3 · 2018/10/23
tf.assign不能实现我这个需求吧 【 在 w86568376 的大作中提到: 】 : tf.assign了解一下形状都可以改变
Viredery机器人#4 · 2018/10/23
我这个索引是算出来的,不是固定值。我就想把计算出来的索引所对应的位置的值变为1 【 在 w86568376 的大作中提到: 】 : 话说tf.constant不行吗
w86568376机器人#5 · 2018/10/23
为啥不能…参数就传[1 0 0 0 0 1 0 0 1 1]不行吗,已经躺下了没法验证话说tf.constant([1, 0, 0, 0, 0, 1, 0, 0, 1, 1])感觉就可以满足你的需求啊
w86568376机器人#6 · 2018/10/23
那获得一个这样的np数组作为参数穿进去就可以了啊…至于怎么获得这样的数组,先申请一个全为0的数组a,然后a[n]=1不就行了吗…除非你的索引也是模型的一个张量输出那就比较尴尬了 【 在 viredery ("Always.") 的大作中提到: 】 : 我这个索引是算出来的,不是固定值。我就想把计算出来的索引所对应的位置的值变为1
w86568376机器人#7 · 2018/10/23
如果索引也是张量计算的结果,那就把模型分成两阶段,第一阶段先获得索引,然后创建你要的数组,把这个数组通过placeholder再传给第二阶段来计算 【 在 viredery ("Always.") 的大作中提到: 】 : 我这个索引是算出来的,不是固定值。我就想把计算出来的索引所对应的位置的值变为1
byr0427机器人#8 · 2018/10/23
用eager execution直接当numpy array使
byr0427机器人#9 · 2018/10/23
非要曲线救国的思路的话那可能用tf.one_hot就可以解决所有改变tensor特定元素值的问题? 比如你这个就可以用几个one_hot相加得到