tf.瓷砖以十为单位

2024-04-24 22:30:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下张量a,我想用tf.瓷砖用两种不同的方法得到不同的结果。在

a.eval() = array([[ 1],
       [ 2],
       [ 3],
       [10],
       [20],
       [30]], dtype=int32)

我知道我可以:

^{pr2}$

为了得到:

a_rep.eval() = array([[ 1],
       [ 1],
       [ 2],
       [ 2],
       [ 3],
       [ 3],
       [10],
       [10],
       [20],
       [20],
       [30],
       [30]], dtype=int32)

我该如何使用tf.瓷砖得到以下结果?我基本上希望张量的块具有特定的大小来重复,而不仅仅是一个值。在

a_rep.eval() = array([[ 1],
       [ 2],
       [ 3],
       [ 1],
       [ 2],
       [3],
       [10],
       [20],
       [30],
       [10],
       [20],
       [30]], dtype=int32)

提前非常感谢!在


Tags: 方法tfevalarray瓷砖dtyperepint32
1条回答
网友
1楼 · 发布于 2024-04-24 22:30:08

类似的技巧是,平铺第二个维度,但将“组”堆叠在新的第三个维度上:

import tensorflow as tf

with tf.Session() as sess:
    a = tf.constant([[ 1], [ 2], [ 3], [10], [20], [30]], dtype=tf.int32)
    group_size = 3
    repeats = 2
    result = tf.reshape(tf.tile(tf.reshape(a, (-1, 1, group_size)), (1, repeats, 1)),
                        (-1, 1))
    print(sess.run(result))

输出:

^{pr2}$

这假设数组中的元素数可以被大小组整除。如果你想支持最后一个“部分组”,也许你可以用完整的组来完成上面的操作,独立地平铺最后一个位并连接。在

相关问题 更多 >