Tensorflow常遇函数(二)

本文介绍了Tensorflow中的tf.transpose()函数,用于交换张量的维度,以及NumPy中的np.hstack()和np.vstack()函数,分别用于水平和垂直堆叠数组。理解这些函数对于深度学习和数据处理至关重要。示例展示了不同维度张量的转置和堆叠操作,强调了数组形状一致性的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tensorflow常见函数

1.tf.transpose()

tf.transpose(input, perm=[dimension_1, dimenaion_2,…,dimension_n]):
dimension_n 是整数,每个数对应相应的维度,用0,1,2来表示。这个函数主要适用于交换输入张量的不同维度用的。
如果input是二维,就相当是转置。
如果input是三维,perm = [2,1,0],就把输入张量的第三维度和第一维度交换。

a=tf.constant([[1,2,3],[4,5,6]])#shape=2*3
b=tf.constant([[[1,2,3],[4,5,6]],[[7,8,9,][10,11,12]]])#shape=2*2*3
print (tf.transpose(a,[1,0]).eval())   # 2*3-->3*2
  [[1 4]
   [2 5]
   [3 6]]
print (tf.transpose(b,[2,0,1]).eval()) # 2*2*3-->3*2*2,先找出(1,4,7,10)然后组成2*2的形状
  [[[ 1  4]
  [ 7 10]]
 
  [[ 2  5]
   [ 8 11]]
 
  [[ 3  6]
   [ 9 12]]]
print(tf.transpose(a, perm=[0, 2, 1]))#shape=2*3*2
[[[1  4]
  [2  5]
  [3  6]]
 
  [[7 10]
  [8 11]
  [9 12]]
2.np.hstack(tup)
按水平方向(列顺序)堆叠数组构成一个新的数组 堆叠的数组需要具有相同的维度

参数:
tup:ndarrays数组序列,除了一维数组的堆叠可以是不同长度外,其它数组堆叠时,除了第二个轴的长度可以不同外,其它轴的长度必须相同。
原因在于一维数组进行堆叠是按照第一个轴进行堆叠的,其他数组堆叠都是按照第二个轴堆叠的。

a = np.array((1,2,3))
b = np.array((2,3,4))
np.hstack((a,b))
输出:
array([1, 2, 3, 2, 3, 4])

a = np.array([[1],[2],[3]])
b = np.array([[2],[3],[4]])
np.hstack((a,b))
输出:
array([[1, 2],
       [2, 3],
       [3, 4]])

以下代码会报错:

print np.hstack(([[1,2,3],[2,3,4]],[[1,2]]))

第一个数组是2行3列,而第二个数组是1行2列
所以报错

3.np.vstack(tup)
按垂直方向(行顺序)堆叠数组构成一个新的数组 堆叠的数组需要具有相同的维度 参数: tup:ndarrays数组序列,如果是一维数组进行堆叠,则数组长度必须相同;除此之外,其它数组堆叠时,除数组第一个轴的长度可以不同,其它轴长度必须一样。
a = np.array([1, 2, 3])
b = np.array([2, 3, 4])
np.vstack((a,b))
输出:
array([[1, 2, 3],
       [2, 3, 4]])
       
a = np.array([[1], [2], [3]])
b = np.array([[2], [3], [4]])
np.vstack((a,b))
输出:
array([[1],
       [2],
       [3],
       [2],
       [3],
       [4]])

以下代码会出错:

print np.vstack(([[1,2,3],[3,4,3]],[[4,5]]))

除了第一维可以不一样,其他维必须相同,上述代码第二维不一样,所以报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值