python - 张量变换
问题描述
我正在尝试使用tf.gather_nd(params, indices, name=None)
从特征图张量中检索元素
无论如何要将这个张量[[0,2,2]]
转换[[0,0],[1,2],[2,2]]
为我需要它作为函数中的索引
我只有[[0,2,2]]
应该是这个结构
indices = [[0,0],[1,2],[2,2]]
params = [['3', '1','2','-1'], ['0.3', '1.4','5','0'],['5', '6','7','8']]
t=tf.gather_nd(params, indices, name=None)
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print(sess.run(t)) # outputs 3 5 7
解决方案
假设您尝试将张量t0 = [[x0, x1, x2, ... xn]]
转换为张量[[0, x0], [1, x1], [2, x2], ..., [n, xn]]
,您可以将其与范围张量连接起来,如下所示:
t0 = ...
N = tf.shape(t0)[1] # number of indices
t0 = tf.concat([tf.range(N), t0], 0) # [[0, 1, 2], [0, 2, 2]]
indices = tf.transpose(t0) # [[0, 0], [1, 2], [2, 2]]
这应该给你你想要的索引。
推荐阅读
- r - 使用动画以编程方式控制 R-Shiny 滑块上的播放/暂停
- verilog - 你能在同一个模块中同时写行为和结构的verilog吗?
- python - 如何更改数据框中的值用整数替换浮点数
- node.js - Nodejs:我没有在.on('data'上获得请求的数据
- c# - c#将国家缩写返回到国家名称
- mysql - 如何将两个 MySQL 查询的结果合二为一?
- node.js - Nginx HTTPS 失败,但 node.js https 工作
- javascript - 关于参数列表的 Uncaught SyntaxError 的 js 错误
- java - Java中从Caterpillar到Butterfly的模型
- android - 通过发送一些数据获取 Jsonarray 作为 android volley 的响应