Tensorflow - tf.tile() 学习

 API:https://tensorflow.google.cn/api_docs/python/tf/tile?hl=zh-cn


tf.tile()用于张量扩展

tf.tile(
    input,
    multiples,
    name=None
)

输入是一个Tensor

multiples的维度与输入的维度相一致,并标明在哪一个维度上进行扩展,扩展的方法就是复制为相同的元素,下面的例子可以说明问题:

import tensorflow as tf

raw = tf.Variable(tf.random_normal(shape=(2 ,2, 2)))
multi1 = tf.tile(raw, multiples=[2, 1, 1])
multi2 = tf.tile(raw, multiples=[1, 2, 1])
multi3 = tf.tile(raw, multiples=[1, 1, 2])

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(raw.eval())
    print('-----------------------------')
    a = sess.run(multi1)
    b = sess.run(multi2)
    c = sess.run(multi3)
    print(a)
    print(a.shape)
    print('-----------------------------')
    print(b)
    print(b.shape)
    print('-----------------------------')
    print(c)
    print(c.shape)
    print('-----------------------------')
#原始
[[[ 0.6948325  -0.16302951]
  [-0.60185844  0.3866387 ]]

 [[-0.5528875  -0.06845065]
  [ 0.24240932  0.72961247]]]
-----------------------------
# multiples=[2, 1, 1]
[[[ 0.6948325  -0.16302951]
  [-0.60185844  0.3866387 ]]

 [[-0.5528875  -0.06845065]
  [ 0.24240932  0.72961247]]

 [[ 0.6948325  -0.16302951]
  [-0.60185844  0.3866387 ]]

 [[-0.5528875  -0.06845065]
  [ 0.24240932  0.72961247]]]
(4, 2, 2)
-----------------------------
# multiples=[1, 2, 1]
[[[ 0.6948325  -0.16302951]
  [-0.60185844  0.3866387 ]
  [ 0.6948325  -0.16302951]
  [-0.60185844  0.3866387 ]]

 [[-0.5528875  -0.06845065]
  [ 0.24240932  0.72961247]
  [-0.5528875  -0.06845065]
  [ 0.24240932  0.72961247]]]
(2, 4, 2)
-----------------------------
# multiples=[1, 1, 2]
[[[ 0.6948325  -0.16302951  0.6948325  -0.16302951]
  [-0.60185844  0.3866387  -0.60185844  0.3866387 ]]

 [[-0.5528875  -0.06845065 -0.5528875  -0.06845065]
  [ 0.24240932  0.72961247  0.24240932  0.72961247]]]
(2, 2, 4)
-----------------------------

猜你喜欢

转载自blog.csdn.net/maka_uir/article/details/83862796
今日推荐