Tensorflow常遇函数(一)

本文详细介绍了TensorFlow中tf.concat和tf.stack两个重要函数的使用方法。tf.concat函数用于在指定维度上合并多个张量,而tf.stack则将多个张量在新的维度上堆叠,增加了张量的阶数。通过实例展示了这两个函数如何在不同维度上操作,帮助理解其工作原理。

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

Tensorflow常遇函数(一)

1.tf.concat(values, axis,name=‘concat’)

tf.concat用于将多个张量在某维度合并起来,类似于numpy.concatenate。第一个参数为待合并的多个张量列表,第二个参数需指定哪个维度上做合并。待合并的张量shape需要完全相同,并且产生的张量的阶数不会发生变化。

import tensorflow as tf
a=tf.constant([[1,2,3],[4,5,6]])#shape=2*3
b=tf.constan([[7,8,9],[10,11,12]])#shape=2*3
c=tf.concat([a,b],axis=0)
d=tf.concat([a,b],axis=1)
print(c)
print(d)
#c=[[1, 2, 3],
#   [4, 5, 6],
#   [7, 8, 9],
#  [10,11,12]]
#d=[[1, 2, 3, 7, 8, 9],
#   [4, 5, 6,10,11,12]]

可以看出:
当axis=0时,是在矩阵的第1维上进行拼接
当axis=1时,是在矩阵的第2维上进行拼接也就是在[1,2,3]的内部后面拼接另一个矩阵的第1维数据[7,8,9]得到[1,2,3,7,8,9]。

2.tf.stack(values, axis=0, name=‘stack’)

将一个维度为R的张量数组转变成一个维度为R+1的张量。即会在新的张量阶上合并,张量的阶数也会增加。
参数values:一个具有相同形状与数据类型的张量数组。
参数axis:stack就是要将一组相同形状的张量提高一个维度,axis就是这些张量里,将axis指定的维度用所有这些张量数组代替。如axis=2,表示指定在矩阵第3个维度,原来的元素用整个张量数组里的元素代替,即(A,B,C)转变成(A,B,N,C)。

a=tf.constant([[1,2,3],[4,5,6],[3,2,1]])#shape=3*3
b=tf.constan([[7,8,9],[10,11,12][9,8,7]])#shape=3*3
print (np.stack([a,b],axis=0))
[[[1,2,3],
  [4,5,6],
  [3,2,1]]
  
  [[7,8,9],
  [10,11,12],
  [9, 8, 7]]]#shape=2*3*3
print (np.stack([a,b],axis=1))
[[[1,2,3],
  [7,8,9]],
  
  [[4,5,6],
  [10,11,12]],

  [[3,2,1],
  [9,8,7]]]#shape=3*3*2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值