TensorFlow2高阶操作

文章目录

  • TensorFlow2高阶操作
    • 合并与分割
    • 数据统计
    • 张量排序
    • 填充与复制
    • 张量限幅
    • 高阶操作
    • 补充说明

合并与分割

  • tf.concat([a, b], axis)

    • 沿着axis轴(维度)拼接若干个张量,必须保证参与拼接的各个张量除需要拼接的维度其他维度必须一致,concat不会创建新的维度,而是在原来的维度上累加。
    • 示例。
  • tf.stack([a, b], axis)
    • 拼接若干个张量(必须每个维度都是一致的),在指定的axis位置创建新的维度。
    • 示例。
  • tf.unstack(a, axis)
    • 在指定的轴上将张量分离,指定轴维度为多少则分离为多少个张量。
    • 示例。
  • tf.split(a, axis, num_or_size_splits)
    • 在指定维度上分离张量,如果num_or_size_splits给出的是整形数则均分为多个张量,如果给定的是列表,则按照列表的内容划分。
    • 示例。

数据统计

  • 范数tf.norm(a, ord, axis)

    • 沿着axis轴,求解张量a的ord范数。(ord表示范数类似,1范数、2范数、无穷范数等,不指定ord则默认二范数)
    • 示例
  • 最值均值tf.reduce_min/max/mean(a, axis)
    • 在指定维度上计算最值和均值,若不指定axis则将张量当成向量处理。
    • 示例。
  • 最值位置tf.argmax/min(a, axis)
    • 在指定维度上计算最值的位置下标,不指定axis则在第一个维度上进行计算。
    • 示例。
  • 等值判断tf.equal(a, b)
    • 两个张量对应位置比较是否值相等,返回与进行比较的两个张量同shape的张量,该位置相等为True,不等为False。
    • 示例。
  • 张量去重tf.unique(a)
    • 返回一个Unique类型的变量,包含两个Tensor,一个是去重后的Tensor,一个是原Tensor中每个元素在去重后Tensor中的下标。根据返回的下标可以通过gather方法得到去重前Tensor。
    • 示例。

张量排序

  • tf.sort(a, direction)/tf.argsort(a, direction)

    • 按照指定的升序或者降序方向,对张量进行排序。当张量的维度大于1时,默认对最后一个维度进行排序。
    • 示例。
  • tf.math.top_k(a, k)
    • 找到k个最大或者最小值,返回值和该值所在下标。
    • 示例。

填充与复制

  • tf.pad(a, [[A, B], [A, B],...])

    • [A, B]表示每个维度的前后是否padding, 1表示填充,0表示不填充。
    • 示例。
  • tf.tile(a, multiples)
    • multiples用一个列表传入,表示各个维度复制多少次,最小为1。一般,能使用broadcast的情形不建议使用tile,因为broadcast不会因为复制而多占用内存,TensorFlow中很多运算符是默认支持broadcast的。
    • 示例。

张量限幅

  • tf.maximum(a, num)/tf.minimum(a, num)

    • 将张量一边用阈值限定,超过则元素置为阈值。缺点是该函数只能限制一边。
    • 示例。
  • tf.clip_by_value(a, min, max)
    • 将张量的元素值限制在[min, max]之间,比min小的设为min值,比max大的设为max值。
    • 示例。
  • tf.clip_by_norm(a, norm)
    • 根据范数值进行限幅,保证梯度方向不变,模改变的常见手段。
    • 示例。
  • tf.clip_by_global_norm(a, norm)
    • 根据范数值,整体同比例缩放梯度值。

高阶操作

  • tf.where(a)/tf.where(cond, A, B)

    • 前者用法,返回张量中为True的具体下标,下标的格式依据张量的维度而定,配合gather方法可以定位异常值。后者用法,依据条件张量,为True的位置从A取值,不满足从B取值,返回最终张量。
    • 示例。
  • tf.scatter_nd(indices, updates, shape)
    • 在给定shape的底板张量(全0)上,indices标明位置更新为updates值。
    • 示例。
  • tf.meshgrid(x, y)
    • 组合x和y张量,生成分布存储的组合结果。有效避免了Python循环的使用且能支持GPU运算。
    • 示例。

补充说明

  • 本文主要讲解了TensorFlow2提供的一些较为高级的操作的API解析。
  • 博客同步至我的个人博客网站,欢迎浏览其他文章。
  • 如有错误,欢迎指正。

TensorFlow2-高阶操作相关推荐

  1. TensorFlow2 入门指南 | 06 TensorFLow2 高阶操作汇总

    前言: 本专栏在保证内容完整性的基础上,力求简洁,旨在让初学者能够更快地.高效地入门TensorFlow2 深度学习框架.如果觉得本专栏对您有帮助的话,可以给一个小小的三连,各位的支持将是我创作的最大 ...

  2. 深度学习(17)TensorFlow高阶操作六: 高阶OP

    深度学习(17)TensorFlow高阶操作六: 高阶OP 1. Where(tensor) 2. where(cond, A, B) 3. 1-D scatter_nd 4. 2-D scatter ...

  3. 深度学习(16)TensorFlow高阶操作五: 张量限幅

    深度学习(16)TensorFlow高阶操作五: 张量限幅 1. clip_by_value 2. relu 3. clip_by_norm 4. Gradient clipping 5. 梯度爆炸实 ...

  4. 深度学习(15)TensorFlow高阶操作四: 填充与复制

    深度学习(15)TensorFlow高阶操作四: 填充与复制 1. Pad 2. 常用于Image Padding 3. tile 4. tile VS broadcast_to Outline pa ...

  5. 深度学习(14)TensorFlow高阶操作三: 张量排序

    深度学习(14)TensorFlow高阶操作三: 张量排序 一. Sort, argsort 1. 一维Tensor 2. 多维Tensor 二. Top_k 三. Top-k accuracy(To ...

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

    深度学习(12)TensorFlow高阶操作一: 合并与分割 1. concat 2. stack: create new dim 3. Dim mismatch 4. unstuck 5. spli ...

  7. Tensorflow学习四---高阶操作

    Tensorflow学习四-高阶操作 Merge and split 1.tf.concat 拼接 a = tf.ones([4,32,8]) b = tf.ones([2,32,8]) print( ...

  8. PS高阶操作之字体特效

    PS高阶操作之字体特效 字体冰封效果 字体金属样式 字体冰封效果 新建一个白色的像素画布. 新建好画布后,用油漆桶刷成深蓝色. 打开通道,新建一个通道,选择文字工具. 调整文字大小和位置.在菜单栏中选 ...

  9. STM32 TIM PWM高阶操作:刹车及状态约束

    STM32 TIM PWM高阶操作:刹车及状态约束 刹车及状态约束是STM32 TIM PWM控制里面比较复杂的一部分,涉及到PWM波形产生前,中,后的管脚状态输出. 这里先引入两个描述,一个是&qu ...

  10. PS高阶操作之木质纹理

    PS高阶操作之木质纹理 制作木纹纹理 制作木纹相框 制作木纹纹理 新建画布,大小随意. 用油漆桶工具填充棕色,并解锁背景图层,菜单栏选择滤镜-杂色-添加杂色 数量-60 分布-高斯分布. 滤镜-模糊- ...

最新文章

  1. 《精通自动化测试框架设计》目录—导读
  2. LeetCode-链表-160. 相交链表
  3. 百度商业大规模微服务分布式监控系统-凤睛
  4. QT学习笔记(一):VS2013 +QT 5.8 运行、编译问题解决
  5. android代码判断权限,安卓权限检测代码
  6. acm用java怎么写_用java来写ACM
  7. 强烈谴责中国红十字会
  8. 提高django model效率的几个小方法
  9. Jquery的知识图谱
  10. php上传文件 报的错误 $_FILES[‘file’]['error']
  11. 论软件开发中的可信赖的工作
  12. ubuntu下安装tftp
  13. Xmind 中附件的存放位置
  14. php验证码点击刷新,php点击可刷新验证码
  15. 詹姆斯titan_再见,詹姆斯!
  16. Windows修改文件报错:“文件或文件夹正在使用”解决办法
  17. Python实现自动通关别踩白块儿
  18. 为什么Sql Server的查询有时候第一次执行很慢,第二次,第三次执行就变快了
  19. python mysqldb 安装_python MySQLdb在windows环境下的快速安装、问题解决方式
  20. 数据可视化分析框架 amCharts 5

热门文章

  1. 原本挂起的线程继续执行
  2. compareAndSwapInt
  3. 声明式事务控制的配置要点
  4. Maven的优势举例
  5. Spring模块化设计:Spring功能特性如何在不同模块中组织?
  6. 工厂模式解耦的升级版
  7. 数据库-多条件查询-优先级
  8. tomcat_启动问题分析
  9. 设计模式之_Iterator_04
  10. linux系统管理试卷必修B卷,2013-2014Linux系统管理试卷