tensorflow2之数学运算
发布日期:2022-02-14 23:02:49 浏览次数:37 分类:技术文章

本文共 1848 字,大约阅读时间需要 6 分钟。

  • 大部分数学运算:tf.math

  • 随机数:tf.random

  • 矩阵运算:tf.linalg

    • 乘法:tf.matmul(实际上是tf.linalg.matmul),等同于@
    • 转置:tf.transpose(); tf.linalg.matrix_transpose
    • 生成对角阵:tf.linalg.diag:可定制对角线上一行/下一行等信息
    • 获取对角阵元素:tf.linalg.diag_part
    • 逆:tf.linalg.inv()
    • 求迹:tf.linalg.trace()
    • 范数:tf.linalg.norm()
    • 行列式:tf.linalg.det()
    • 行列式求log:tf.linalg.logdet
    • 特征值:tf.linalg.eigvalsh()
    • 特征值及特征向量:tf.linalg.eigh,类比np.linalg.eigh
    • 最小二乘:tf.linalg.lstsq
    • 线性方程求解:tf.linalg.solve
    • 矩阵分解
      • qr分解:q,r = tf.linalg.qr(a) # 验证 q @ r
      • svd分解:v,s,d = tf.linalg.svd(a) # 验证 s @ v @ d
  • 模型评估:tf.metrics, tf.keras.metrics

  • 优化:tf.keras.optimizers

  • 其它

    • tf.argsort(values, axis=-1, direction='ASCENDING', stable=False, name=None)
      tensor排序,axis指定指定排序轴,direction指定升序还是降序。返回排序后的元素idx
      a = tf.constant([1, 10, 26.9, 2.8, 166.32, 62.3])b = tf.argsort(a, direction='DESCENDING')  #返回 [4 5 2 1 3 0]
    • tf.sort
      同上,不同的是:tf.argsort返回排序后的tensor坐标,tf.sort直接返回排序后的tensor
    • tf.scatter_nd(indices, updates, shape, name=None)
      updatesidxindices来生成shape的tensor
      indices = tf.constant([[4], [3], [1], [7]])updates = tf.constant([9, 10, 11, 12])shape = tf.constant([8])tf.scatter_nd(indices, updates, shape)# 新生成的tensor为:对应indices的idx的值为对应的updates值,故返回结果为:[0, 11, 0, 10, 9, 0, 0, 12]
    • tf.unique(x, out_idx=tf.dtypes.int32)
      返回一维标量去重后的结果,以及原结果对应体重后的坐标
    • tf.linspacenp.linspace
  • 广播:类同numpy

    • 如果tensor维度不同,将维度较小的tensor进行扩展,直到两个tensor的维度都一样
    • 如果两个tensor在某个维度上的长度相同,或者其中一个tensor在该维度上的长度为1,那么这两个tensor在维度上是相容的
    • 如果两个tensor在所有维度上都是相容的,它们就能使用广播
    • 广播之后,每个维度的长度将取两个tensor在该维度长度的较大值
    • 在任何一个维度上,如果一个tensor的长度为1,另一个tensor的长度大于1,那么在该维度上,就好像是对第一个tensor进行了复制
      a = tf.constant([1,2,3])  b = tf.constant([[0,0,0],[1,1,1],[2,2,2]])  b + a  #等价于 b + tf.broadcast_to(a,b.shape)  # 返回结果    [[1, 2, 3],    [2, 3, 4],    [3, 4, 5]]  c = tf.constant([1,2,3])  d = tf.constant([[1],[2],[3]])  c+d #等价于 tf.broadcast_to(c,[3,3]) + tf.broadcast_to(d,[3,3])  # 返回结果    [[2, 3, 4],    [3, 4, 5],    [4, 5, 6]]

转载地址:https://blog.csdn.net/fish2009122/article/details/106238804 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:tensorflow2之数据管道Dataset
下一篇:如何构建指标体系--笔记

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年03月08日 17时58分22秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

php mht2html,PHP 处理 mht 文件 2019-04-21
rt2tr matlab,MATLAB机器人工具箱参考 2019-04-21
MATLAB中GUI界面弹出菜单的使用,Matlab GUIDE使用说明(Matlab GUI界面) 2019-04-21
win iis对比apache php,服务器Apache与IIS的区别 2019-04-21
怎样用xampp测试php环境变量,使用xampp配置php运行环境的方法 2019-04-21
qq互联php教程,thinkphp5怎么整合qq互联登录教程 2019-04-21
Java怎么比较4数字大小,怎么判断四个数不成比例-判断4个数值相等-数学-古残夷同学... 2019-04-21
mysql建立索引 性能测试_MySQL分区和索引性能测试 2019-04-21
数据结构java实验 刘小晶_数据结构实例解析与实验指导:Java语言描述 2019-04-21
java实现 k nn算法_java-C中的k-NN示例问题(OpenCV) 2019-04-21
java接口的理解_Java接口的理解 - rabbit_mom的个人空间 - OSCHINA - 中文开源技术交流社区... 2019-04-21
java重用名快捷键_Eclipse 最常用的 10 组快捷键,个个牛逼! 2019-04-21
java streamencoder_[求助]关于apcche与tomcat 2019-04-21
golang mongodb mysql_分享一个golang+mongodb+vuejs开发的博客程序 gocms 2019-04-21
hive java insert_hive表insert报错 2019-04-21
java 调试dll jna_Java调用dll的实现,JNA框架 | 学步园 2019-04-21
ios php上传视频文件_IOS上传图片 PHP服务器接收并上传 2019-04-21
php redis zrevrange,Redis Zrevrange 命令 2019-04-21
php利用word模板导出excel文件,php生成导出word doc和excel文件实例 2019-04-21
java 边缓存边播放,java动态缓存技术:WEB缓存应用 2019-04-21