Tensorflow(八) —— Tensor的合并与切割

1. 主要操作方式

  • 1、tf.concat # 常用
  • 2、tf.split # 常用
  • 3、tf.stack # 常用
  • 4、tf.unstack

2. concat操作

指定axis则沿该轴进行拼接

# ********************* concat
"""
指定axis则沿该轴进行拼接
"""
a = tf.random.normal([2,28,28,3])
b = tf.random.normal([3,28,28,3])
c = tf.concat([a,b],axis = 0)
print("c:",c.shape)

d = tf.random.uniform([4,14,28,3])
e = tf.random.uniform([4,14,28,3])
f = tf.concat([d,e],axis = 1)
print("f:",f.shape)

3. stack操作

  • create new dim
  • 在指定轴上创建新的一个维度来盛装数据
# ********************** stack
"""
create new dim
在指定轴上创建新的一个维度来盛装数据
"""
a = tf.ones([4,28,28,3])
b = tf.zeros_like(a)

c1 = tf.concat([a,b],axis = 0)
print("c1:",c1.shape)
c2 = tf.stack([a,b],axis = 0)
print("c2:",c2.shape)

c3 = tf.stack([a,b],axis = 3)
print("c3:",c3.shape)

c4 = tf.concat([a,b],axis = -1)
print("c4:",c4.shape)

4. concat 与 stack 的区别

  • 1、concat约束:除了需要拼接那个轴可以不一致,其它所有轴都需要相同。
  • 2、stack约束:所有轴都必须维持一致

5. unstack & stack 为可逆操作

# ********************** unstack & stack 可逆
a = tf.ones([4,28,28,3])
b = tf.zeros_like(a)

c = tf.stack([a,b],axis = 0)
print("c:",c.shape)

d = tf.unstack(c,axis = 0)
print("d:",d[0].shape,d[1].shape)

e = tf.unstack(c,axis = 3)
print("e:",len(e))
"""
得到28个形状相同的Tensor
"""
e[27].shape

6. split操作

  • unstack沿axis轴等分为axis轴shape的数量
  • split可以指定等分的数量
# ************************ split
"""
unstack沿axis轴等分为axis轴shape的数量
split可以指定等分的数量
"""
a = tf.zeros([4,28,28,3])
b = tf.unstack(a,axis = 1)
print("b:",len(b))

c = tf.split(a,axis = 1,num_or_size_splits = 7)
print("c:",len(c))
print("c:",c[6].shape)

d = tf.split(a,axis = 1,num_or_size_splits = [10,10,8])
print("d:",len(d))
print("d:",d[1].shape)

本文为参考龙龙老师的“深度学习与TensorFlow 2入门实战“课程书写的学习笔记

by CyrusMay 2022 04 16

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值