tf.expand_dims()和tf.tile()

tf.expand_dims()和tf.tile()

tf.expand_dims() 修改形状,数据不变
tf.tile()

import tensorflow as tf
x1 = tf.constant(value=[1, 2, 3], dtype=tf.float32)

x2 = tf.constant(value=[
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
    [10, 11, 12]
], dtype=tf.float32)

# 修改形状,数据不变
y1 = tf.expand_dims(x1, axis=0)
y21 = tf.expand_dims(x2, axis=0)
y22 = tf.expand_dims(x2, axis=1)
y23 = tf.expand_dims(x2, axis=2)
with tf.Session() as sess:
    print(sess.run(x1))
    print(sess.run(y1))
    print(sess.run(x2))
    print(sess.run(y21))
    print(sess.run(y22))
    print(sess.run(y23))
'''
[1. 2. 3.]
[[1. 2. 3.]]
[[ 1.  2.  3.]
 [ 4.  5.  6.]
 [ 7.  8.  9.]
 [10. 11. 12.]]
[[[ 1.  2.  3.]
  [ 4.  5.  6.]
  [ 7.  8.  9.]
  [10. 11. 12.]]]
[[[ 1.  2.  3.]]

 [[ 4.  5.  6.]]

 [[ 7.  8.  9.]]

 [[10. 11. 12.]]]
[[[ 1.]
  [ 2.]
  [ 3.]]

 [[ 4.]
  [ 5.]
  [ 6.]]

 [[ 7.]
  [ 8.]
  [ 9.]]

 [[10.]
  [11.]
  [12.]]]
'''


x3 = tf.constant(value=[
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
    [10, 11, 12]
], dtype=tf.float32)

# 数据重复
y31 = tf.expand_dims(x3, axis=1)
y32 = tf.tile(y31, [1, 2, 1])  # 基于第二维重复
y33 = tf.tile(y31, [1, 1, 2])  # 基于第三维重复
# y21 = tf.expand_dims(x2, axis=0)
# y22 = tf.expand_dims(x2, axis=1)
# y23 = tf.expand_dims(x2, axis=2)
with tf.Session() as sess:
    print(sess.run(x3))
    print(sess.run(y31))
    print(sess.run(y32))
    print(sess.run(y33))
'''
[[ 1.  2.  3.]
 [ 4.  5.  6.]
 [ 7.  8.  9.]
 [10. 11. 12.]]
[[[ 1.  2.  3.]]

 [[ 4.  5.  6.]]

 [[ 7.  8.  9.]]

 [[10. 11. 12.]]]
[[[ 1.  2.  3.]
  [ 1.  2.  3.]]

 [[ 4.  5.  6.]
  [ 4.  5.  6.]]

 [[ 7.  8.  9.]
  [ 7.  8.  9.]]

 [[10. 11. 12.]
  [10. 11. 12.]]]
[[[ 1.  2.  3.  1.  2.  3.]]

 [[ 4.  5.  6.  4.  5.  6.]]

 [[ 7.  8.  9.  7.  8.  9.]]

 [[10. 11. 12. 10. 11. 12.]]]

'''


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值