tf.stack解析

本文解析了TensorFlow中的stack函数,介绍了如何通过axis参数控制Tensor的维度扩展,以及axis_0和axis_1的不同效果。重点讲解了stack操作在列表Tensor堆叠中的应用和返回结果的shape变化。
摘要由CSDN通过智能技术生成
import tensorflow as tf

x = tf.constant([1, 4])
print(x.get_shape())  # (2,)
y = tf.constant([2, 5])
z = tf.constant([3, 6])


axis_0 = tf.stack([x, y, z])  # [[1, 4], [2, 5], [3, 6]] (Pack along first dim.)
print(axis_0.get_shape())  # (3, 2)

axis_1 = tf.stack([x, y, z], axis=1)  # [[1, 2, 3], [4, 5, 6]]
print(axis_1.get_shape())  # (2, 3)

tf.stack(values, axis=0, name="stack)

作用:将由秩为R的Tensor组成的列表堆叠成一个秩为R+1的Tensor
假如列表长度为N,也就是有N个秩为R且shape为(A, B,C)的Tensor,此时R其实是3,
如果axis=0,输出的Tensor的shape为(N, A, B, C);
如果axis=1,输出的Tensor的shape为(A,N,B,C)
在上述代码中 下x, y,z的秩为1,因此得到的axis_0和axis_1的秩为2,这里N=3,A=2,所以axis_0的shape为(3,2),axis_1的shape为(2, 3)

参数
values:有相同形状和类型的Tensor对象的一个列表
axis: 堆叠沿着的轴
name:该操作的名字(可选)
返回值: 一个跟valuse有相同类型的堆叠的Tensor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值