TensorFlow人工智能学习张量及高阶操作示例详解

作者:Swayzzu 时间:2022-04-15 15:37:52 

一、张量裁剪

1.tf.maximum/minimum/clip_by_value()

该方法按数值裁剪,传入tensor和阈值,maximum是把数据中小于阈值的变成阈值。minimum是把数据中大于阈值的变成阈值。clip_by_value需要传入两个阈值,会把数据裁剪到阈值中间。

TensorFlow人工智能学习张量及高阶操作示例详解

2.tf.clip_by_norm()

按范数裁剪,传入tensor和新的范数。通过裁剪范数,可以进行等比例放缩,使得梯度方向不变,但数值变小。通过这个方法可以对梯度进行裁剪,一次性对所有的参数的范数进行裁剪,并且保留方向。防止梯度 * ,梯度弥散。

TensorFlow人工智能学习张量及高阶操作示例详解

二、张量排序

1.tf.sort/argsort()

这两个方法分别返回排序后的值,排序后的索引。有索引之后,可以通过gather方法对数据排序。

TensorFlow人工智能学习张量及高阶操作示例详解

对于多维tensor,不指定轴的时候,默认是对最后一个轴操作。

TensorFlow人工智能学习张量及高阶操作示例详解

2.tf.math.topk()

返回前k大的那些数据,以及索引。比如下面的例子,传入a,2的意思是前两个大的值。因此会对每一行,寻找前两大的数,以及对应的索引,存到返回值中。

TensorFlow人工智能学习张量及高阶操作示例详解

可以通过这个规则,求解topk的准确率。比如下面的例子,对于两条数据,预测概率是prob,根据预测概率,得到这两条数据最大值索引是2,1,而实际的值target是2,0。

①通过tf.math.top_k方法,对预测的概率进行排序,让它返回前三大的值。并得到索引。

②将索引进行转置之后,可以方便地阅读:第一列就是第一条数据的预测值概率索引排序,第二列就是第二条数据的预测值概率索引排序。

③那么,对于两条数据top1的准确率,就是概率最大的索引,也就是第一行的两个数据,2,1,而实际值是2,0,那么top1准确率就是50%

④top2的准确率,意思就是,只要前两名的概率预测有对的,那就算预测对了。那么第一行,第一条预测对了,第二条预测错了。而第二行,第一条预测错了,第二条预测对了。

⑤那么,根据“只要前两个概率有一个对,那就算对”,top2的准确率就是100%

TensorFlow人工智能学习张量及高阶操作示例详解

TensorFlow人工智能学习张量及高阶操作示例详解

三、TensorFlow高阶操作

1.tf.where()

如果传入布尔型数据,会根据数据返回值为True的数值的索引。

TensorFlow人工智能学习张量及高阶操作示例详解

如果传入条件数据,比如where(condition, A, B),condition是一个布尔tensor,会从A里面选择condition为true的位置所对应的数据,从B里面选择conditon为false的位置所对应的数据。

TensorFlow人工智能学习张量及高阶操作示例详解

2.tf.scatter_nd()

该方法中,传入索引,数据,底板。

底板通常是全0的tensor,索引是和数据一一对应的,并且索引的长度不超过底板。

传入的每一个数据都对应一个索引,然后把数据更新到底板上面索引对应的位置。

TensorFlow人工智能学习张量及高阶操作示例详解

如果底板已经有数据了,就需要全部清零,再更新。

在二维上面举例如下:

TensorFlow人工智能学习张量及高阶操作示例详解

3.tf.meshgrid()

和numpy里面的meshgrid用法一样,分别生成的是网格中x和y的数据。例子如下:

TensorFlow人工智能学习张量及高阶操作示例详解

然后使用stack进行一个堆叠,就可以得到所有25个点的坐标。

TensorFlow人工智能学习张量及高阶操作示例详解

来源:https://blog.csdn.net/Swayzzu/article/details/121242209

标签:TensorFlow,人工智能,张量,高阶操作
0
投稿

猜你喜欢

  • Python编程实现双链表,栈,队列及二叉树的方法示例

    2021-11-10 12:35:17
  • python实现将文件夹内的每张图片批量分割成多张

    2023-07-18 17:13:12
  • python处理cookie详解

    2023-09-27 19:14:36
  • css命名及书写规范大全

    2008-05-24 08:52:00
  • 如何基于Python实现word文档重新排版

    2023-06-09 11:19:24
  • sqlserver 存储过程动态参数调用实现代码

    2024-01-25 05:11:07
  • ASP进阶教程Ⅶ:留言簿设置密码验证

    2008-10-13 09:02:00
  • Golang 文件操作:删除指定的文件方式

    2024-03-28 16:39:11
  • Pycharm安装第三方库失败解决方案

    2021-10-09 07:01:39
  • vscode 左侧扩展活动栏内容消失的问题及解决方法

    2022-01-12 04:26:35
  • 懒人必备Python代码之自动发送邮件

    2022-08-31 20:17:41
  • Python脚本修改阿里云的访问控制列表的方法

    2022-06-19 10:31:18
  • Python装饰器简单用法实例小结

    2022-01-18 22:19:40
  • Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录

    2023-04-13 19:29:37
  • 解决python3 requests headers参数不能有中文的问题

    2021-11-04 21:18:42
  • Python爬虫实例_利用百度地图API批量获取城市所有的POI点

    2023-01-11 15:30:37
  • Python使用plotly绘制数据图表的方法

    2023-04-25 13:19:00
  • js中函数声明与函数表达式

    2024-04-25 13:08:35
  • Golang的关键字defer的使用方法

    2023-07-12 21:10:49
  • Python Socket多线程并发原理及实现

    2022-09-05 08:21:07
  • asp之家 网络编程 m.aspxhome.com