使用张量流中的另一个索引列表访问张量的元素

0.5a

我需要使用我拥有的另一个索引列表访问张量的元素,但目前使用简单的语法似乎不可能。我不确定它是否是一个错误,所以我把它贴在这里希望能修复我的语法。我的代码是:

import tensorflow as tf
import numpy as np

sess = tf.Session()
input = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
idx_list = np.array([0,2])
output = input[:, idx_list]

print(sess.run(output))

但我收到错误:

ValueError:形状必须具有相同的等级,但是 0 和 1 来自将形状 0 与其他形状合并。对于具有输入形状的“strided_slice/stack_1”(操作:“Pack”):[], [2]。

我安装的 tensorflow 版本是 tensorflow-1.1.0-cp35(pip 安装)。

更新:

我通过 tf.fn_map 执行此操作,但我真的怀疑这是进行索引的正确方法:

output = tf.transpose(tf.map_fn(lambda x: input[:,x], idx_list),perm=[1,0])

更新:

在最新的评论中有一个很好的片段注册一个特定的问题,这可能会有所帮助。同时这个操作并不像 numpy 那样简单......

米里亚姆·法伯

您可以使用tf.gather和 执行tf.transpose以下操作:

import tensorflow as tf
import numpy as np

sess = tf.Session()
input = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
idx_list = np.array([0,2])
output = tf.transpose(tf.gather(tf.transpose(input),idx_list))
output.eval(session=sess)

这打印

array([[1, 3],
       [4, 6],
       [7, 9]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用另一个数组的元素作为索引来切片张量流中的张量?

在张量流中查找值张量到另一个张量的索引

TensorFlow:使用张量索引另一个张量

用另一个张量索引张量

Keras张量-使用来自另一个张量的索引获取值

计算张量中每个元素相对于另一个张量的最小距离

如何将张量连接到 pytorch 中的另一个张量列表?

将索引选定的张量添加到另一个在pytorch中具有重叠索引的张量

取一个在另一个张量内的张量元素

在Tensorflow 2.0中用另一个张量索引张量的第k个维度

使用张量流使用另一个变量初始化变量

以另一个张量为种子在张量流中生成随机序列

根据来自另一个张量的索引创建新张量并使用它的值进行分配

如何在张量流图中使用另一个库?

用另一个多维张量索引多维火炬张量

PyTorch - 另一个张量中相应值的索引

从另一个张量创建特定张量

基于另一个张量求和 Torch 张量

将张量附加到另一个张量的每个元素

使用张量的值作为另一个的形状?

在张量流中索引一维张量

如何将张量插入到 pytorch 中的另一个张量中

numpy:使用一个矩阵作为另一个矩阵的索引来创建张量吗?

从Tensorflow中的另一个张量中选择随机张量

创建一个张量,其中另一个张量在 Pytorch 中具有非零元素

访问另一个类中列表的元素

使用整数张量在张量流中索引张量

使用索引在另一个活动中创建的访问数组列表

如何根据另一个列表中另一个元素的索引从列表中写出元素?