作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 2-D 张量在 Tensorflow 中索引 3-D 张量。例如,我有形状为 [2, 3, 4]
的 x
:
[[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]]
我想用形状 [2, 3]
的另一个张量 y
对其进行索引,其中 y
的每个元素索引最后一个元素x
的维度。例如,如果我们有 y
,例如:
[[0, 2, 3],
[1, 0, 2]]
输出的形状应为[2, 3]
:
[[0, 6, 11],
[13, 16, 22]]
最佳答案
使用tf.meshgrid
创建索引,然后使用tf.gather_nd
提取元素:
# create a list of indices for except the last axis
idx_except_last = tf.meshgrid(*[tf.range(s) for s in x.shape[:-1]], indexing='ij')
# concatenate with last axis indices
idx = tf.stack(idx_except_last + [y], axis=-1)
# gather elements based on the indices
tf.gather_nd(x, idx).eval()
# array([[ 0, 6, 11],
# [13, 16, 22]])
关于python - 如何在 Tensorflow 中用 2-D 张量索引 3-D 张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49226523/
我是一名优秀的程序员,十分优秀!