主要记录concat,stack,unstack和split相关操作的作用
import tensorflow as tf import numpy as np tf.__version__ #concat对某个维度进行连接 #假设下面的tensor0和tensor1分别表示4个班级35名同学的8门成绩和两个班级35个同学8门成绩 tensor0 = tf.ones([4,35,8]) tensor1 = tf.ones([2,35,8]) #用concat将第0个维度(班级,axis=0)连接起来,结果是一个[6,35,8]的tensor #表示6个班级35名同学8门成绩的数据 tensor = tf.concat([tensor0, tensor1], axis=0) print("=========>tf.concat([tensor0, tensor1], axis=0).shape:", tensor.shape) #在同学维度进行合并,第1个维度,axis=1 #假设下面的tensor0和tensor1分别表示4个班级32名同学的8门成绩和4个班级3个同学8门成绩 tensor0 = tf.ones([4,32,8]) tensor1 = tf.ones([4,3,8]) #concat合并第一个维度,可以理解为,tensor0先收集到了32名同学的8门成绩 #然后补考的3名同学成绩放到了tensor1上,通过concat进行汇总 tensor = tf.concat([tensor0, tensor1], axis=1) print("=========>tf.concat([tensor0, tensor1], axis=1).shape:", tensor.shape) #concat对于维度有要求,对于不是指定axis的维度要相等才能concat #一个[4,35,8]的tensor和一个[3,15,8]的tensor无法进行concat #concat对某个维度进行连接 #假设下面的tensor0和tensor1分别表示4个班级35名同学的8门成绩和两个班级35个同学8门成绩 tensor0 = tf.ones([4,35,8]) tensor1 = tf.ones([2,35,8]) #用concat将第0个维度(班级,axis=0)连接起来,结果是一个[6,35,8]的tensor #表示6个班级35名同学8门成绩的数据 tensor = tf.concat([tensor0, tensor1], axis=0) print("=========>tf.concat([tensor0, tensor1], axis=0).shape:", tensor.shape) #在同学维度进行合并,第1个维度,axis=1 #假设下面的tensor0和tensor1分别表示4个班级32名同学的8门成绩和4个班级3个同学8门成绩 tensor0 = tf.ones([4,32,8]) tensor1 = tf.ones([4,3,8]) #concat合并第一个维度,可以理解为,tensor0先收集到了32名同学的8门成绩 #然后补考的3名同学成绩放到了tensor1上,通过concat进行汇总 tensor = tf.concat([tensor0, tensor1], axis=1) print("=========>tf.concat([tensor0, tensor1], axis=1).shape:", tensor.shape) #concat对于维度有要求,对于不是指定axis的维度要相等才能concat #一个[4,35,8]的tensor和一个[3,15,8]的tensor无法进行concat #unstack和stack操作相反,会对指定维度进行拆分 tensor = tf.ones([3,4,35,8]) #拆分出3个[4,35,8]的tensor splited = tf.unstack(tensor, axis=0) print("==========>tf.unstack(tensor, axis=0).shape:", splited[0].shape, splited[1].shape, splited[2].shape) #拆分出8个[3,4,35]的tensor splited = tf.unstack(tensor, axis=3) print("==========>tf.unstack(tensor, axis=3).shape:", splited[0].shape, splited[1].shape, splited[2].shape, splited[3].shape, splited[4].shape, splited[5].shape, splited[5].shape, splited[6].shape, splited[7].shape) #拆分出4个[3,35,8]的tensor splited = tf.unstack(tensor, axis=1) print("==========>tf.unstack(tensor, axis=1).shape:", splited[0].shape, splited[1].shape, splited[2].shape, splited[3].shape) #unstack会固定打散指定维度为1 #split则可以指定这个维度划分的比例,通过num_or_size_splits指定 #看个例子就明白了 tensor = tf.ones([2,4,35,8]) #第3个维度划分为2个4维的两个tensor([2,4,35,4]) --- 8 / 2(num_of_size_splits) = 4 splited = tf.split(tensor, axis=3, num_or_size_splits=2) print("==========>split(tensor, axis=3, num_or_size_splits=2).shape:", splited[0].shape, splited[1].shape) #将第3个维度按照2,2,4的比例划分,得到3个tensor splited = tf.split(tensor, axis=3, num_or_size_splits=[2,2,4]) print("==========>split(tensor, axis=3, num_or_size_splits=2).shape:", splited[0].shape, splited[1].shape, splited[2].shape)
运行结果:
猜你喜欢
- 11天前(上海文旅产业发展高峰论坛)《上海打造文旅元宇宙新赛道行动方案》发布
- 11天前(夏日旅行海报)夏日旅行|精简行囊 向快乐进发
- 11天前(河南省文旅大会精神)2025河南省文化旅游发展大会新闻发布会在郑州召开
- 11天前(新西兰“空降”上海:新西兰旅游局邀请你来“玩真的”!)新西兰“空降”上海:新西兰旅游局邀请你来“玩真的”!
- 11天前(“清透会呼吸”轻松拿捏春日出游氛围感)“清透会呼吸”轻松拿捏春日出游氛围感
- 11天前(星级饭店的发展困境)星级饭店转型之路:从市场逻辑到行业实践的深度探索
- 11天前(世茂海峡大厦多高)巴西地产高管齐聚厦门世茂海峡大厦 共探超高层建筑锻造经验
- 11天前(大黄山景区高质量发展联盟成立多少年)大黄山景区高质量发展联盟成立
- 11天前(新西兰旅游局×时差岛:黄觉的“长白云之乡”奇遇)新西兰旅游局×时差岛:黄觉的“长白云之乡”奇遇
- 11天前(内蒙古冬季旅游攻略)内蒙古冬日奇遇:携程租车带你策马踏雪
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章