IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习(12)TensorFlow高阶操作一: 合并与分割 -> 正文阅读

[人工智能]深度学习(12)TensorFlow高阶操作一: 合并与分割

深度学习(12)TensorFlow高阶操作一: 合并与分割


Merge and split

  • tf.concat(拼接)
  • tf.split(分割)
  • tf.stack(堆叠)
  • tf.unstack(分割,为split中的一种)

1. concat

  • Statistics about scores
    • [ c l a s s 1 ? 4 , s t u d e n t s , s c o r e s ] [class1-4,students,scores] [class1?4,students,scores]
    • [ c l a s s 5 ? 6 , s t u d e n t s , s c o r e s ] [class5-6,students,scores] [class5?6,students,scores]
      在这里插入图片描述

(1) c = tf.concat([a, b], axis=0)1: 将a和b合并为c,合并第1个维度(axis=0),c.shape=[6, 35, 8];
(2) tf. concat([a, b], axis=1): 合并a和b的第2个维度(axis=1),其shape=[4, 35, 8];

  • Along distinct dim/axis
    • Dim = d
  • axis = 0;
    在这里插入图片描述

shape=[12, 4];

  • axis=0:
    在这里插入图片描述

shape=[4, 7];
注: 合并操作不会增加维度,合并之前是2维的Tensor,那么合并之后还是2维的Tensor。如果想要创造新的维度,我们就需要stack操作了;

2. stack: create new dim

  • Statistics about scores
    • School1: [ c l a s s e s , s t u d e n t s , s c o r e s ] [classes,students,scores] [classes,students,scores]
    • School2: [ c l a s s e s , s t u d e n t s , s c o r e s ] [classes,students,scores] [classes,students,scores]
      → \to
    • [ s c h o o l s , c l a s s e s , s t u d e n t s , s c o r e s ] [schools,classes,students,scores] [schools,classes,students,scores]
      在这里插入图片描述

(1) tf.concat([a, b], axis=-1): 合并a和b的倒数第1个维度(axis=-1),其shape=[4, 35, 16];
(2) tf.stack([a, b], axis=0): 在第1个维度(axis=0)处创造一个新的维度,创建后其shape=[2, 4, 35, 8];
(3) tf.stack([a, b], axis=3): 在第4个维度(axis=3)处创造一个新的维度,创建后其shape=[4, 35, 8, 2];

3. Dim mismatch

在这里插入图片描述

  • concat要求除了合并的那个维度外,其它维度的数值必须相等;
  • stack要求所有维度的数值必须相等;

4. unstuck

在这里插入图片描述

(1) c = tf.stack([a, b]): 将a和b通过stack()函数合并为c,合并完c.shape=[2, 4, 35, 8];
(2) aa, bb = unstack(c, axis=0): 将c从第1个维度(axis=0)处拆解为aa和bb,拆解完aa.shape=[4, 35, 8]; bb.shape=[4, 35 ,8];
(3) res = tf.unstack(c, axis=3): 将c从第4个维度(axis=3)处拆解,第4个维度消失,拆解后共有8个res,每个res.shape=[2, 4, 35],所以res[0].shape=[2, 4, 35]; res[7].shape=[2, 4, 35];

  • 如果我们不希望将c拆解为这么多个res,比如只拆解为2个res,那么我们就需要使用一个临摹性更强的API——split。

5. split

  • VS unstack
    在这里插入图片描述

(1) res = tf.split(c, axis=3, num_or_size_splits=2): 将c从第4个维度(axis=3)处均分为2个res,每个res.shape=[2, 4, 35, 4];
(2) res = tf.split(c, axis=3, num_or_size_splits=[2, 2, 4]): 将c从第4个维度(axis=3)处均分为3个res,将8按照[2, 2, 4]分为3份,其中res[0].shape=[2, 4, 35, 2]; res[1].shape=[2, 4, 35, 2]; res[2].shape=[2, 4, 35, 4]

参考文献:
[1] 龙良曲:《深度学习与TensorFlow2入门实战》

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:36:04  更:2021-08-12 16:36:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:27:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码