美文网首页
[转载] tf.tile() 用法举例(TensorFlow)

[转载] tf.tile() 用法举例(TensorFlow)

作者: 是我真的是我 | 来源:发表于2020-11-27 21:39 被阅读0次

    tile 的含义:

    n. 瓦 / 瓷砖 / 软木片 / 亚麻油地毡片

    v. 用瓦盖 / 贴砖于 / 铺以瓦 / 铺以瓷砖

    函数定义:

    def tile(input, multiples, name=None):
    

    函数功能:

    Constructs a tensor by tiling a given tensor.

    即:通过“平铺”一个给定的 tensor 来构造一个新的 tensor。用人话讲就是:把输入的 tensor,在指定的维度上复制N遍(就像铺瓷砖一样),来创建出一个新的 tensor。
    3个参数:
    input:输入的tensor
    multiples:在指定的维度上复制原tensor的次数
    name:operation的名字

    下面举例:

    import tensorflow as tf
    
    with tf.Session() as sess:
        a = tf.constant([[15, 16], [17, 18]])
        b = tf.tile(a, [1, 3])
        c = tf.tile(a, [3, 2])
        print('------------------------------------')
        print(sess.run(a))
        print('------------------------------------')
        print(sess.run(b))
        print('------------------------------------')
        print(sess.run(c))
    

    输出:

    [[15 16]
    [17 18]]


    [[15 16 15 16 15 16]
    [17 18 17 18 17 18]]


    [[15 16 15 16]
    [17 18 17 18]
    [15 16 15 16]
    [17 18 17 18]
    [15 16 15 16]
    [17 18 17 18]]

    解释一下:
    输入的 a 是一个 2x2 的矩阵,tf.tile(a, [1, 3]) 里的 [1, 3] 表示在第一个维度上把输入的tensor重复1遍,在第二个维度上把输入的tensor重复3遍。在本例中,第一个维度就是行,第二个维度就是列,因此 b 就变成了 2x6 的矩阵。

    注意:tf.tile() 里的第2个参数,例如 [1, 3],里面有两个元素,它必须与输入的 tensor 的维度一样(2维),如果输入的 tensor 是3维的,那么 tf.tile() 的第2个参数里也必须有3个元素,例如 [2, 3, 5],否则会报类似于下面的错:

    ValueError: Shape must be rank 3 but is rank 1 for 'Tile_1' (op: 'Tile') with input shapes


    ➤➤ 版权声明 ➤➤
    转载需注明出处:codelast.com

    相关文章

      网友评论

          本文标题:[转载] tf.tile() 用法举例(TensorFlow)

          本文链接:https://www.haomeiwen.com/subject/voefwktx.html