Tensor的合并与分割

先来看一下有哪些接口用来进行张量的合并与分割:

tf.concat用来进行张量的拼接,tf.stack用来进行张量的堆叠,tf.split用来进行张量的分割,tf.unstack是tf.split的一种,也用来进行张量分割

1.tf.concat

参数axis代表将要合并的维度

# 假设a代表四个班的成绩(每班35人,8个科目),b代表2个班的成绩
a = tf.ones([4,35,8])
b = tf.ones([2,35,8])
# 使用concat进行合并得到6个班的成绩
c = tf.concat([a,b],axis=0)
# (6,35,8)
print(c.shape)

2.tf.stack(用于创建一个新的维度)

# 假设a代表A学校的四个班的成绩(每班35人,8个科目),b代表B学校四个班的成绩
a = tf.ones([4,35,8])
b = tf.ones([4,35,8])
# 使用stack进行合并得到6个班的成绩
c = tf.stack([a,b],axis=0)
# (2,4,35,8)
print(c.shape)

3.tf.unstack(对某维度进行等分)

# 假设a代表A学校的四个班的成绩(每班35人,8个科目),b代表B学校四个班的成绩
a = tf.ones([4,35,8])
b = tf.ones([4,35,8])
# 使用stack进行合并得到6个班的成绩
c = tf.stack([a,b],axis=0)
# (2,4,35,8)
print(c.shape)
aa,bb=tf.unstack(c,axis=0)
# (4,35,8)
print(aa.shape,bb.shape)
res=tf.unstack(c,axis=3)
# (2,4,35)
print(res[0].shape,res[7].shape)

4.tf.split(按比例打散)

# 假设a代表A学校的四个班的成绩(每班35人,8个科目),b代表B学校四个班的成绩
a = tf.ones([4,35,8])
b = tf.ones([4,35,8])
# 使用stack进行合并得到6个班的成绩
c = tf.stack([a,b],axis=0)
# (2,4,35,8)
print(c.shape)
res = tf.split(c,axis=3,num_or_size_splits=2)
# 2,(2,4,35,4)
print(len(res),res[0].shape,res[1].shape)
res = tf.split(c,axis=3,num_or_size_splits=[2,2,4])
# 3 (2,4,35,2) (2,4,35,2) (2,4,35,4)
print(len(res),res[0].shape,res[1].shape,res[2].shape)

原文地址:https://www.cnblogs.com/zdm-code/p/12229527.html

时间: 2024-08-04 14:58:51

Tensor的合并与分割的相关文章

第五章 shell学习之文件的排序、合并和分割

sort命令 sort [选项] [输入文件] 选项: -c 测试文件是否已经排序,如果未被排序则输出第一个未被排序的记录 -k 指定排序的域 -m 合并两个已排序的文件,合并的文件也已经排序,如sort -m a1 a2,a1的记录被有序的插入a2 -n 根据数字的大小进行排序,一般放在域号后,如-k3n -o 将输出重定向到指定文件 -r 将排序结果逆向显示 -t 改变域分割符,如-t: -u 去除结果中的重复行 sort和awk联合 例: [[email protected] tmp]#

NumPy学习(索引和切片,合并,分割,copy与deep copy)

NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程序示例 import numpy as np #索引与切片 array=np.arange(3,15) print(array) print(array[3])#数组下标为3的元素 print('\n') print(array[1:3])#取从下标1到下标3,不包括下标3 print(array[

PHP大文件存储示例,各种文件分割和合并(二进制分割与合并)

最近要对视频进行上传,由于涉及到的视频非常的大,因此采用的是分片上传的格式,下面是一个简单的例子: split.php 1 <?php 2 $i = 0; //分割的块编号 3 $fp = fopen("abc.wmv","rb"); //要分割的文件 4 $file = fopen("split_hash.txt","a"); //记录分割的信息的文本文件 5 while(!feof($fp)) 6 { 7 $hand

JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流

一.File 1.1.File概述 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象路径名 有两个组件: 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Windows UNC 路径名. 零个或更多字符串名称 的序列. 字段摘要 static String pathSeparator 与系

numpy.array 合并和分割

# 导包 import numpy as np numpy.array 的合并 .concatenate() 一维数组 x = np.array([1, 2, 3]) # array([1, 2, 3]) y = np.array([3, 2, 1]) # array([3, 2, 1]) np.concatenate([x, y]) # array([1, 2, 3, 3, 2, 1]) z = np.array([666, 666, 666]) # array([666, 666, 666]

合并(分割)流

unit uStream; interface uses System.SysUtils, System.Classes; type TStreamSize = packed record size: int64; end; TStreamNum = packed record num: Integer; end; TStreamArray = array of TStream; type TynStream = class private { Private declarations } pu

pytorch数学运算与统计属性入门(非常易懂)

pytorch数学运算与统计属性入门1.Broadcasting (维度)自动扩展,具有以下两个重要特征:(1)expand (2)without copying data重点的核心实现功能是:(1)在前面增加缺失的维度(2)将其中新增加的维度的size扩展到需要相互运算的tensor维度的same size 图12.broadcasting自动扩展=unsqueeze(增加维度)+expand(维度扩展) 图23.tensor的合并与分割:(1)合并API1)Cat:对数据进行维度上的合并,不

PDF文件怎么合并分割

在处理一些文档之类的资料时常常会遇到要将一些文档整理到一起,合成一个文件以便于管理或是发送,又或者是将一个大的文档中的部分页面拆分出来单独使用操作.若处理的是office文档倒还简单,但如果是PDF文件我们又该怎么进行合并拆分操作呢? PDF合并—— 合并分割PDF都可以用PDF转换工具来操作,首先是合并几个PDF文件.打开工具后在其他操作中选择“PDF合并”选项. 接着添加文件,将需要进行合并的PDF文件按顺序添加到列表中,可以按照顺序一个一个将文档拖到软件列表中.? 选择文件保存位置,然后点

PDF格式文档怎样合并分割

工作的时候天天都要处理各种文档,时间一长就累积了不少的文档需要处理,有时候需要对文档进行合并,有时候又需要对文档进行分割,普通的office文档大家都知道该怎么操作,而像pdf这类的文档在操作上就和office文档不同了.步骤—————————— 合并PDF文件是将多个pdf格式的文件按顺序合成一个pdf文件,首先打开工具,选择PDF合并选项. 把需要合并的文件添加到工具中,文件需要按照顺序进行添加,添加后的文件前面的编号就是文件合并的顺序. 添加完文件,选择好文件输出目录,然后点开始转换就可以