TensorFlow人工智能学习张量及高阶操作示例详解
作者:Swayzzu 发布时间:2022-04-15 15:37:52
一、张量裁剪
1.tf.maximum/minimum/clip_by_value()
该方法按数值裁剪,传入tensor和阈值,maximum是把数据中小于阈值的变成阈值。minimum是把数据中大于阈值的变成阈值。clip_by_value需要传入两个阈值,会把数据裁剪到阈值中间。
2.tf.clip_by_norm()
按范数裁剪,传入tensor和新的范数。通过裁剪范数,可以进行等比例放缩,使得梯度方向不变,但数值变小。通过这个方法可以对梯度进行裁剪,一次性对所有的参数的范数进行裁剪,并且保留方向。防止梯度 * ,梯度弥散。
二、张量排序
1.tf.sort/argsort()
这两个方法分别返回排序后的值,排序后的索引。有索引之后,可以通过gather方法对数据排序。
对于多维tensor,不指定轴的时候,默认是对最后一个轴操作。
2.tf.math.topk()
返回前k大的那些数据,以及索引。比如下面的例子,传入a,2的意思是前两个大的值。因此会对每一行,寻找前两大的数,以及对应的索引,存到返回值中。
可以通过这个规则,求解topk的准确率。比如下面的例子,对于两条数据,预测概率是prob,根据预测概率,得到这两条数据最大值索引是2,1,而实际的值target是2,0。
①通过tf.math.top_k方法,对预测的概率进行排序,让它返回前三大的值。并得到索引。
②将索引进行转置之后,可以方便地阅读:第一列就是第一条数据的预测值概率索引排序,第二列就是第二条数据的预测值概率索引排序。
③那么,对于两条数据top1的准确率,就是概率最大的索引,也就是第一行的两个数据,2,1,而实际值是2,0,那么top1准确率就是50%
④top2的准确率,意思就是,只要前两名的概率预测有对的,那就算预测对了。那么第一行,第一条预测对了,第二条预测错了。而第二行,第一条预测错了,第二条预测对了。
⑤那么,根据“只要前两个概率有一个对,那就算对”,top2的准确率就是100%
三、TensorFlow高阶操作
1.tf.where()
如果传入布尔型数据,会根据数据返回值为True的数值的索引。
如果传入条件数据,比如where(condition, A, B),condition是一个布尔tensor,会从A里面选择condition为true的位置所对应的数据,从B里面选择conditon为false的位置所对应的数据。
2.tf.scatter_nd()
该方法中,传入索引,数据,底板。
底板通常是全0的tensor,索引是和数据一一对应的,并且索引的长度不超过底板。
传入的每一个数据都对应一个索引,然后把数据更新到底板上面索引对应的位置。
如果底板已经有数据了,就需要全部清零,再更新。
在二维上面举例如下:
3.tf.meshgrid()
和numpy里面的meshgrid用法一样,分别生成的是网格中x和y的数据。例子如下:
然后使用stack进行一个堆叠,就可以得到所有25个点的坐标。
来源:https://blog.csdn.net/Swayzzu/article/details/121242209


猜你喜欢
- 这篇文章主要介绍了Python文本处理简单易懂方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 昨天晚上才发现已经出了jQuery的1.3版本,于是下载下来,把原来一个兄弟翻译的1.2.6的文档移植到了1.3中,点击这里可
- 客户端程序编写免不了经常接触XMLHttpRequest对象。微软的XHR实现的progid又是一串一串的。 烦人。抽一个中午时间,找了找资
- 原因添加一个文件 config.ini, 理论上说该文件会以ini文件格式打开,但是不知道咋的手贱用Text格式打开了。.ini正确打开方式
- 一、基础知识1、MySQL-python的安装下载,然后 pip install 安装包2、python编写通用数据库程序的API规范(1)
- 在进行深度学习实验时,GPU 的实时状态监测十分有必要。今天详细解读一下 nvidia-smi 命令上图是服务器上 GeForce GTX
- Golang精编100题能力模型(测试)初级primary:熟悉基本语法,能够看懂代码的意图;在他人指导下能够完成用户故事的开发,编写的代码
- 1. linux下消息记录关于系统的各种消息一般都会记录在/var/log/messages文件中,有些主机在中默认情况下有可能没有启用,具
- 看着这个题目可能大家会有点陌生,不知道是什么,说的直白一点,RDFa就是让你的页面更好的被机器所理解,而不简简单单是展示你的页面,下面就关于
- 这篇文章主要介绍了Python如何把多个PDF文件合并,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一、待搜索图二、测试集三、new_similarity_compare.py# -*- encoding=utf-8 -*-from ima
- 在我们学习python的过程中,学习序列是一门必修课。当我们掌握了序列过后,便会学习常用的两个排序函数sort()与sorted()。但很少
- 1 前言在 Java 和 js 中,lambda箭头函数是十分常见的操作,这种表达方式在使用时非常的简便。在python的语法中也有应用场景
- HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒
- 假设有一名为"addnewuser"的存储过程,其内容如下:Create PROCEDURE dbo
- MD5(Message-Digest Algorithm 5) 模块用于计算信息密文(信息摘要),得出一个128位的密文。sha模块跟md5
- 1、引言小 * 丝:鱼哥, 都说要想代码写的溜,Lamdba不能少。小鱼:你在项目代码多写几个lamdba试试,看看架构师找不找你喝茶水。小 * 丝
- 一.背景一道ctf题,通过破解2048游戏获得flag游戏的规则很简单,需要控制所有方块向同一个方向运动,两个相同数字方块撞在一起之后合并成
- 一、matplotlib.pyplot.boxplot()语法boxplot(x, notch=None, sym=None, vert=N
- LFS 的含义为:Large File StorageGit LFS 是 Git 的扩展,旨在解决 Git 无法高效处理大文件的问题。通常情