各位同学好,今天和大家分享一下TensorFlow2.0中的数据分析操作。内容有:

(1)范数 tf.norm()(2)最值 tf.reduce_min(), tf.reduce_max()(3)求和  tf.reduce_sum()(4)均值 tf.reduce_mean()(5)最值的位置 tf.argmax()tf.argmin()(6)两个张量比较 tf.equal()(7)张量唯一值 tf.unique()

那我们开始吧。


1. 范数

tf.orm(tensor, ord, axis)

tensor表示需要求范数的张量;ord=1求一范数ord=2求二范数,默认求二范数;axis指定轴,按照哪个轴求范数,默认求整个张量的范数

一范数: 绝对值之和      二范数: 平方和再开根   

# 创建一个二维tensor
a = tf.constant([[1,2],[3,4]],dtype=tf.float32)
# ==1== 求一个tensor的二范数
tf.norm(a) # ord可省略,默认二范数
# ==2== 求一个tensor某一个轴的二范数
tf.norm(a,ord=2,axis=1)  # 在第1个维度上求,每一行的平方和开根
# ==3== 求一个tensor的一范数
tf.norm(a,ord=1)  # 每个元素的绝对值之和
# ==4== 求一个tensor指定轴上的一范数
tf.norm(a,ord=1,axis=0) # 在第0个维度上求,每一列的绝对值之和

tf.norm(a) 是对a的所有元素都求平方再相加再开根,即 

tf.norm(a,ord=2,axis=1) 是指定在第1个轴上求二范数,也就是对最外层括号里面的内容,即分别对 [1,2] 和 [3,4] 求二范数,返回[2.23, 5]

tf.norm(a,ord=1) 没指定轴,求整个张量的一范数,绝对值之和,即1+2+3+4=10

tf.norm(a,ord=1,axis=0) 对第0个轴求一范数,即分别对 [1,3] 和 [2,4] 求一范数。即[4,6]


2. 最值、均值

最小值  tf.reduce_min(); 最大值  tf.reduce_max(); 均值  tf.reduce_mean()

参数均为:tensor 需要计算的张量;axis 指定计算的轴

2.1 若不指定轴,计算的是整个tensor的最值和均值

# 3行5列的每个元素在0-20中随机选取,元素是整型
a = tf.random.uniform([3,5],minval=0,maxval=20,dtype=tf.int32)
# ==1== 不指定轴axis
tf.reduce_min(a)  # 求整个tensor的最小值,变成了0维
tf.reduce_max(a)
tf.reduce_mean(a)

求最值、均值时会有一个降维过程,比如这里的二维tensor,不指定轴求整个tensor的最值、均值,返回值是一个标量,这就是一个降维的过程。

2.2 若指定轴

a = tf.random.uniform([3,5],minval=0,maxval=20,dtype=tf.int32)
# ==2== 指定轴axis
# 求每一列的最小值,返回一个列表
tf.reduce_min(a,axis=0)
# 求每一列的最大值
tf.reduce_max(a,axis=0)
# 求每一行的均值,返回一个列表
tf.reduce_mean(a,axis=1)  

tf.reduce_min(a,axis=0)  指定轴axis=0,在第0个维度上进行计算,也就是计算,[11,9,5],[1,6,6],[7,14,1],[9,9,14],[9,1,15],这5列上的最小值,返回结果是一个由5个列的最小值构成的列表[5,1,1,9,1]

tf.reduce_mean(a,axis=1) 指定轴axis=1,在第1个维度上进行计算,理解为,计算最外层中括号里面的几个组成部分的均值,即计算[11,1,7,9,9],[9,6,14,9,1],[5,6,1,14,15] 这几个部分的均值,将计算结果组成一个列表


3. 最值的位置

最大值的索引位置: tf.argmax()      最小值的索引位置: tf.argmin()

参数: tensor 需要计算的张量;axis 指定计算的轴

# 3行5列的每个元素在0-20中随机选取,元素是整型
a = tf.random.uniform([3,5],minval=0,maxval=20,dtype=tf.int32)
# 最大值位置
tf.argmax(a)  # 默认axis=0,即在第0个维度上求最大值所在位置
# 最小值位置
tf.argmin(a,axis=1)  # 在第1的维度上求最小值所在位置

tf.argmax(a)  默认axis=0,即在第0个轴上求最大值所在位置,即计算 [4,19,8],[0,15,14],[14,12,13],[17,14,9],[5,16,15] 这5项的每一项的最大值的下标索引,将返回值组成一个列表,即[1,1,0,0,1]

tf.argmin(a,axis=1)  指定需要计算的轴axis=1,对第1个轴计算最小值所在下标位置,可理解为求最外层中括号里面每个部分的最小值的下标索引,求[4,0,14,17,5],[19,15,12,14,16],[8,14,13,9,15],将最小值的下标索引组成一个列表返回 [1,2,0]


4. 判断相同元素

tf.equal(tensor1, tensor2)

判断两个tensor变量是否相等,它的判断方法不是整体判断,而是逐个元素进行判断,如果相等就是True,不相等,就是False。

a = tf.constant([1,2,3,4,5])
b = tf.constant([5,4,3,2,1])
# 比较,相同返回True
tf.equal(a,b)

通过对a和b的每一个元素两两相比较,只有3是同位置同数值,返回True,其他都是False。

当我们比较两幅数据量很大的图像时,可以通过返回值来计算有几个相同的元素

首先利用类型转换函数cast(),将布尔类型转换成整型,再通过求和函数tf.reduce_sum()来计算个数。我们通过这个思路来计算这两个tensor有几个相同的元素。最终返回数值1。

a = tf.constant([1,2,3,4,5])
b = tf.constant([5,4,3,2,1])
# 接收布尔返回值
res = tf.equal(a,b)
# 计算两个tensor有几个相同的元素
# 将res中的布尔类型转换成整型
tf.reduce_sum(tf.cast(res,dtype=tf.int32))


5. 求唯一值

tf.unique(tensor)

返回tensor变量中的互不相同的值组成的列表,和原值的每个元素在唯一值列表中的位置

# 创建一个一维列表
a = tf.constant([5,6,7,8,6,5])
# 返回唯一值、和原数据中的每个元素在唯一值列表中的索引位置
res,arr = tf.unique(a)

原tensor中的倒数第二个6在唯一值列表中的索引位置是1,原tensor中的最后一个5在唯一值列表中的索引位置是0


6. 求和

tf.reduce_sum(tensor, axis)

对tensor变量求和,若不指定axis轴,默认求整个tensor变量的所有元素的和

# 创建一个3行5列,每个元素都是在0-4之间随机取
a = tf.random.uniform([3,5],minval=0,maxval=5,dtype=tf.int32)
# 整个tensor变量的和
tf.reduce_sum(a)
# 对第0个轴求和
tf.reduce_sum(a,axis=0)
# 对第1个轴求和
tf.reduce_sum(a,axis=1)

tf.reduce_sum(a,axis=0)  指定第0个轴,即分别求[1,1,4],[2,0,2],[4,0,0],[2,4,2],[1,0,3] 的和,将结果组成一个列表返回,即 [6,4,4,8,4]

tf.reduce_sum(a,axis=1)  指定第1个轴,可以理解为,分别对 [[],[],[]] 里层三个括号求和,即分别对[1,2,4,2,1],[1,0,0,4,0],[4,2,0,2,3] 求和,将结果组成列表返回,即[10,5,11]

【TensorFlow2.0】(6) 数据统计,范数、最值、求和、均值、最值位置、唯一值、张量比较相关推荐

  1. 【TensorFlow2.0】数据读取与使用方式

    大家好,这是专栏<TensorFlow2.0>的第三篇文章,讲述如何使用TensorFlow2.0读取和使用自己的数据集. 如果您正在学习计算机视觉,无论你通过书籍还是视频学习,大部分的教 ...

  2. TensorFlow2.0:常用数据范围压缩函数

    ** 一 tf.nn.relu( )函数 ** tf.nn.relu( )激活函数可以将小于0的数据变成0,大于0的数据保持不变. In [2]: a = tf.constant([-1,-2,0,1 ...

  3. 《自然语言处理实战入门》 深度学习组件TensorFlow2.0 ---- 文本数据建模流程

    文章大纲 一,准备数据 二,定义模型 三,训练模型 四,评估模型 五,使用模型 六,保存模型 参考文献 文本处理的建模流程,使用清华发布的新闻分类数据集: 中文文本分类数据集THUCNews THUC ...

  4. java 唯一值_java – 在列表中查找唯一值的快速方法

    第一个选项应该更快.您可以通过在使用之前调整集合大小来使其更快.通常,如果您期望少量重复: Set undefined = new HashSet(pairs.size(), 1); 请注意,我使用1 ...

  5. internetreadfile读取数据长度为0_【完结】TensorFlow2.0 快速上手手册

    大家好,这是专栏<TensorFlow2.0>的第五篇文章,我们对专栏<TensorFlow2.0>进行一个总结. 我们知道全新的TensorFlow2.0 Alpha已经于2 ...

  6. 【深度学习】利用tensorflow2.0卷积神经网络进行卫星图片分类实例操作详解

    本文的应用场景是对于卫星图片数据的分类,图片总共1400张,分为airplane和lake两类,也就是一个二分类的问题,所有的图片已经分别放置在2_class文件夹下的两个子文件夹中.下面将从这个实例 ...

  7. 移动数据统计平台分析

    数据统计对于各位移动开发的童鞋并不陌生,小到Bug统计,大到数据分析,一款性能稳定.用户体验良好的APP一定离不开数据统计的支持,为此我将给大家科普一下常用的六大数据统计平台. 统计平台列表表,外加体 ...

  8. 【TensorFlow2.0】如何搭建网络模型?

    大家好,这是专栏<TensorFlow2.0>的第四篇文章,讲述网络模型的搭建. 我们知道在不考虑输入层的情况下,一个典型的卷积神经网络通常由若干个卷积层.激活层.池化层及全连接层组成,无 ...

  9. 移动应用数据统计平台(之一)

    本文由雷锋网整理自 ZDnet,内容有改动,仅供各位热衷于移动应用开发推广运营的朋友参考. 目前市面上比较常见,使用比较多的移动应用统计平台大概有3.4家,国外比较流行的是Flurry,功能上非常全面 ...

  10. Excel 中用公式列出唯一值——模拟高级筛选功能

    在 Excel 中处理数据时,我们经常会遇到包含重复数值的列.比如,员工表或客户表的城市一列,又比如商品销售清单的商品名称一栏.数据处理工作的一个内容可能就是列出这些数据的唯一值,看看哪些城市有客户, ...

最新文章

  1. 委员建议开辟多种科研资助模式,呼唤“科研悬赏制”
  2. android 蓝牙通讯编程 备忘
  3. 深度学习:让电脑像人一样看世界
  4. -----------最小生成树----------------
  5. Python中可变类型和不可变类型的数据?
  6. 自定义UISlider的样式和滑块
  7. 消息中间件学习总结(12)——Kafka与RocketMQ的多Topic对性能稳定性的影响比较分析
  8. UUID实现之一twitter的分布式自增IDsnowflake算法
  9. 如何在js中直接使用id_node.js中的npm update如何使用
  10. 软件开发中的EJB是什么?
  11. 基于java的仓库管理系统_基于Java的仓库管理系统.doc
  12. 汉澳sinox2013支持的PCI/USB无线网卡,购买必看
  13. postgresql 不区分大小写 模糊查询
  14. TCP套接口丢失与重传报文线索
  15. ChucK学习笔记(一)——下载与安装
  16. PostgreSQL DBA(81) - Locks(FOR UPDATE SKIP LOCKED)
  17. 用html2canvas长按保存h5页面,html2canvas - 微信中长按存图 - 将h5活动结果保存到本地...
  18. JQuery $(function(){})和$(document).ready(function(){})
  19. c c++ 画点 画线
  20. LVGL (8) 绘制流程

热门文章

  1. Android Read-only file system
  2. startActivity(xx,xx.class) 传递数据
  3. android studio 开发环境搭建
  4. 【转载】Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
  5. 从单词统计问题看面试
  6. Pycharm 快捷键
  7. 第十二周 11.15-11.21
  8. Python学习笔记十一:面向对象
  9. 自己动手写简单的web应用服务器(4)—利用socket实现文件的下载
  10. 搜集《ASP.NET中常用的26个优化性能方法》