通过重复列来扩展 Tensorflow 中二维张量的宽度
Posted
技术标签:
【中文标题】通过重复列来扩展 Tensorflow 中二维张量的宽度【英文标题】:Expanding width of a 2D tensor in Tensorflow, by repeating its columns 【发布时间】:2017-06-02 17:14:28 【问题描述】:我有一个二维张量,它必须在宽度(列号)方向上扩展。在下面的示例中,我想通过重复其列使 B 与 A 一样宽。
这可以通过以下方式在 numpy 中完成:
A = np.array([[1,2,3],[4,5,6],[6,7,8]])
B = np.array([[19,15],[18,14],[17,13]])
ncl = A.shape[1]
B = B[:,np.mod(np.arange(ncl),B.shape[1])]
print(B)
产量:
[[19 15 19]
[18 14 18]
[17 13 17]]
如何在 Tensorflow 中对两个常数张量 A 和 B 执行此操作?
【问题讨论】:
关于如何做到这一点的任何想法? 【参考方案1】:A = tf.constant([[1,2,3,4,4,5,6,7],[4,5,6,6,4,5,6,7],[6,7,8,9,4,5,6,7]])
B = tf.constant([[19,15],
[18,14],
[17,13]])
diff = A.get_shape()[1] - B.get_shape()[1]
Bt = tf.transpose(B)
for idx in range(diff):
col = tf.gather_nd(Bt, [[idx]])
Bt = tf.concat(0, [Bt, col])
result = tf.transpose(Bt)
with tf.Session() as sess:
res = sess.run(result)
print(res)
不是有史以来最漂亮的代码,但它确实有效。
输出:
[[19 15 19 15 19 15 19 15]
[18 14 18 14 18 14 18 14]
[17 13 17 13 17 13 17 13]]
【讨论】:
以上是关于通过重复列来扩展 Tensorflow 中二维张量的宽度的主要内容,如果未能解决你的问题,请参考以下文章