转载需注明出处:https://www.codelast.com/

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))

文章来源:https://www.codelast.com/
输出:

[[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 是一个 2x3 的矩阵,tf.tile(a, [1, 3]) 里的 [1, 3] 表示在第一个维度上把输入的tensor重复1遍,在第二个维度上把输入的tensor重复3遍。在本例中,第一个维度就是行,第二个维度就是列,因此 b 就变成了 2x6 的矩阵。
文章来源:https://www.codelast.com/
注意: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
[原创] tf.tile() 用法举例(TensorFlow)
Tagged on:

发表评论

电子邮件地址不会被公开。 必填项已用*标注