假设在TensorFlow中定义了以下3个张量(形状相同)。
A = [[1,2,3],[4,5,6],[7,8,9]]
B = [[10,11,12],[13,14,15],[16,17,18]]
C = [[19,20,21],[22,23,24],[25,26,27]]
目的是创建一个张量D,其形式如下
D = [[1,2,3],[10,11,12],[19,20,21],[4,5,6],[13,14,15],[22,23,24],[7,8,9],[16,17,18],[25,26,27]]
这样做的快速和有效的方法是什么?
在这个操作中,反向传播将如何发生?
我有一个形状为[batch_size, D]的2D张量A,以及一个形状为[batch_size]的1D张量B。B的每个元素都是A的一个列索引,对于A的每一行,例如。B[i] in [0,D)。 在tensorflow中获取值A[B]的最佳方法是什么 例如: A = tf.constant([[0,1,2],
[3,4,5]])
B = tf.constant([2,1]) 使用所需的输出: some_slice_func(A, B) -> [2,4] 还有另一个限制。实际上,batch_size实际上就是None。 提前感谢!
假设有一个列表,其中包含需要通过查找表访问的不可连接对象。所以列表索引将是一个张量对象,但这是不可能的。
tf_look_up = tf.constant(np.array([3, 2, 1, 0, 4]))
index = tf.constant(2)
list = [0,1,2,3,4]
target = list[tf_look_up[index]]
这将显示以下错误消息。
TypeError: list indices must be integers or slices, not Tensor
这是一种使用张量索引列表的方法/解决方法吗?
我正在和tensorflow一起研究一个算法。以下是想要的代码的NumPy版本: x = [1,2,3,4,5,6,7,8,9,10]
sets = {1,5,7}
y = [0,0,0,0,0,0,0,0,0,0]
for i in range(10):
if i in sets:
y[i] = x[i] 它会得到结果: y = [0,2,0,0,0,6,0,8,0,0] 如何在tensorflow中实现此功能?有没有办法使用相同的逻辑在tensorflow中实现这一点,而不是在计算后将NumPy数组转换为张量,而是使用张量执行所有操作(例如,使用张量来索引张量,
我已经学会了如何在一维上分割张量。
我已经学习了如何切片一个2D张量,给出一个特定值的一维张量。
两者都使用tf.gather(),但我很确定我需要tf.gather_nd(),尽管我使用它显然是错误的。
在numpy中,我有一个5x52D数组,我可以使用带有行和列索引的np.ix_()对2x2数组进行切片(对于行和列,我总是需要相同的索引,从而得到一个平方矩阵):
import numpy as np
a = np.array([[1,2,3,4,5],[2,1,6,7,8],[3,6,1,9,10],[4,7,9,1,11],[5,8,10,11,1]])
a
阵列([ 1,2,3,4