tensorflow数据相关总结----学习笔记(四)

标量

标量由只有一个元素的张量表示。 下面的代码将实例化两个标量,并执行一些熟悉的算术运算,即加法、乘法、除法和指数。

import tensorflow as tfx = tf.constant(3.0)
y = tf.constant(2.0)print(x + y)
print(x * y)
print(x / y)
print(x ** y)
"""
tf.Tensor(5.0, shape=(), dtype=float32)
tf.Tensor(6.0, shape=(), dtype=float32)
tf.Tensor(1.5, shape=(), dtype=float32)
tf.Tensor(9.0, shape=(), dtype=float32)
"""

向量

向量可以被视为标量值组成的列表。 这些标量值被称为向量的元素(element)或分量(component)。 当向量表示数据集中的样本时,它们的值具有一定的现实意义。

import tensorflow as tfx = tf.range(4)
print(x)
"""
tf.Tensor([0 1 2 3], shape=(4,), dtype=int32)
"""
# 可以通过下标引用向量的任一元素
x[n]

长度、维度和形状

向量只是一个数字数组,就像每个数组都有一个长度一样,每个向量也是如此。
形状(shape)是一个元素组,列出了张量沿每个轴的长度(维数)。 对于只有一个轴的张量,形状只有一个元素。
维度(dimension)这个词在不同上下文时往往会有不同的含义,这经常会使人感到困惑。 为了清楚起见,我们在此明确一下: 向量或轴的维度被用来表示向量或轴的长度,即向量或轴的元素数量。 然而,张量的维度用来表示张量具有的轴数。 在这个意义上,张量的某个轴的维数就是这个轴的长度。

import tensorflow as tfx = tf.range(4)
print(len(x))
print(x.shape)
"""
4
(4,)
"""

矩阵

正如向量将标量从零阶推广到一阶,矩阵将向量从一阶推广到二阶。 矩阵,我们通常用粗体、大写字母来表示 (例如,XYZ), 在代码中表示为具有两个轴的张量。

import tensorflow as tfA = tf.reshape(tf.range(20), (5, 4))
print(A)
"""
tf.Tensor(
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11][12 13 14 15][16 17 18 19]], shape=(5, 4), dtype=int32)
"""
#可以通过下班获取矩阵中的元素
print(A[1][2])
"""
tf.Tensor(6, shape=(), dtype=int32)
"""
# 可以使用transpose进行矩阵转置,改变矩阵的行和列
print(tf.transpose(A))
"""
tf.Tensor(
[[ 0  4  8 12 16][ 1  5  9 13 17][ 2  6 10 14 18][ 3  7 11 15 19]], shape=(4, 5), dtype=int32)
"""

张量

就像向量是标量的推广,矩阵是向量的推广一样,我们可以构建具有更多轴的数据结构。 张量(张量”指代数对象)是描述具有任意数量轴的n维数组的通用方法。

import tensorflow as tfX = tf.reshape(tf.range(24), (2, 3, 4))
print(X)
"""
tf.Tensor(
[[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]][[12 13 14 15][16 17 18 19][20 21 22 23]]], shape=(2, 3, 4), dtype=int32)
"""

将张量乘以或加上一个标量不会改变张量的形状,其中张量的每个元素都将与标量相加或相乘。

import tensorflow as tfa = 2
X = tf.reshape(tf.range(24), (2, 3, 4))
print(a + X)
print((a * X))
"""
tf.Tensor(
[[[ 2  3  4  5][ 6  7  8  9][10 11 12 13]][[14 15 16 17][18 19 20 21][22 23 24 25]]], shape=(2, 3, 4), dtype=int32)
tf.Tensor(
[[[ 0  2  4  6][ 8 10 12 14][16 18 20 22]][[24 26 28 30][32 34 36 38][40 42 44 46]]], shape=(2, 3, 4), dtype=int32)
"""

降维

我们可以对任意张量进行的一个有用的操作是计算其元素的和。

import tensorflow as tfx = tf.range(4, dtype=tf.float32)
print(x)
print(tf.reduce_sum(x))
"""
tf.Tensor([0. 1. 2. 3.], shape=(4,), dtype=float32)
tf.Tensor(6.0, shape=(), dtype=float32)
"""

默认情况下,调用求和函数会沿所有的轴降低张量的维度,使它变为一个标量。 我们还可以指定张量沿哪一个轴来通过求和降低维度。
指定axis=0。 由于输入矩阵沿0轴降维以生成输出向量,因此输入轴0的维数在输出形状中消失。

import tensorflow as tfA = tf.reshape(tf.range(20, dtype=tf.float32), (5, 4))
A_sum_axis0 = tf.reduce_sum(A, axis=0)
print(A)
print(A_sum_axis0)
print(A_sum_axis0.shape)
"""
tf.Tensor(
[[ 0.  1.  2.  3.][ 4.  5.  6.  7.][ 8.  9. 10. 11.][12. 13. 14. 15.][16. 17. 18. 19.]], shape=(5, 4), dtype=float32)
tf.Tensor([40. 45. 50. 55.], shape=(4,), dtype=float32)
(4,)
"""

指定axis=1将通过汇总所有列的元素降维(轴1)。因此,输入轴1的维数在输出形状中消失。

import tensorflow as tfA = tf.reshape(tf.range(20, dtype=tf.float32), (5, 4))
A_sum_axis0 = tf.reduce_sum(A, axis=1)
print(A)
print(A_sum_axis0)
print(A_sum_axis0.shape)
"""
tf.Tensor(
[[ 0.  1.  2.  3.][ 4.  5.  6.  7.][ 8.  9. 10. 11.][12. 13. 14. 15.][16. 17. 18. 19.]], shape=(5, 4), dtype=float32)
tf.Tensor([ 6. 22. 38. 54. 70.], shape=(5,), dtype=float32)
(5,)
"""

沿着行和列对矩阵求和,等价于对矩阵的所有元素进行求和。

import tensorflow as tfA = tf.reshape(tf.range(20, dtype=tf.float32), (5, 4))
A_sum_axis = tf.reduce_sum(A, axis=[0, 1])  # 结果和tf.reduce_sum(A)相同
A_sum = tf.reduce_sum(A)
print(A_sum_axis)
print(A_sum)
"""
tf.Tensor(190.0, shape=(), dtype=float32)
"""

非降维求和

在使用函数计算总和时需要保持轴数不变。

import tensorflow as tfA = tf.reshape(tf.range(20, dtype=tf.float32), (5, 4))
sum_A = tf.reduce_sum(A, axis=1, keepdims=True)
print(A)
print(sum_A)
"""
tf.Tensor(
[[ 0.  1.  2.  3.][ 4.  5.  6.  7.][ 8.  9. 10. 11.][12. 13. 14. 15.][16. 17. 18. 19.]], shape=(5, 4), dtype=float32)
tf.Tensor(
[[ 6.][22.][38.][54.][70.]], shape=(5, 1), dtype=float32)
"""

如果我们想沿某个轴计算A元素的累积总和, 比如axis=0(按行计算),可以调用cumsum函数。 此函数不会沿任何轴降低输入张量的维度。

import tensorflow as tfA = tf.reshape(tf.range(20, dtype=tf.float32), (5, 4))
print(A)
print(tf.cumsum(A, axis=0))
"""
tf.Tensor(
[[ 0.  1.  2.  3.][ 4.  5.  6.  7.][ 8.  9. 10. 11.][12. 13. 14. 15.][16. 17. 18. 19.]], shape=(5, 4), dtype=float32)
tf.Tensor(
[[ 0.  1.  2.  3.][ 4.  6.  8. 10.][12. 15. 18. 21.][24. 28. 32. 36.][40. 45. 50. 55.]], shape=(5, 4), dtype=float32)
"""

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51368.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人事面试:

1:工资构成。 2:绩效考核标准 3:具体的福利待遇 十部贴 4:工资是前还是税后 5:一年 几 薪水 6:试用期的时间 和待遇 7:扣钱的标准 8:发工资的时间

《知识点扫盲 · 线程池基础篇》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

【Java】缓存与数据库:双写一致性、缓存问题

这里我讲的是缓存和数据库,以redis和mysql举例,实际上缓存包括不限于浏览器缓存、redis、memcache、本地缓存guava等等,数据库也有很多种,这里我们仅仅以较常见的redis和mysql举例。 一,缓存与数据库的查询、写入 1&…

【node】Linux下安装node和npm

Linux下安装node和npm 下面的版本虽然安装失败了,第一次尝试不容易,只需要更换一下node的版本为v16.20.2即可安装成功,20这样的高版本对大部分linux服务器来讲还是版本太高了,GLIBC动态库不支持,升级颇为麻烦&#xff…

她是军统美女特工,色诱汉奸一把好手!一件事之后竟......

一.前言 我们在上一篇里简单了解了什么是树,以及树的一种特殊结构——二叉树。而我们对二叉树息息相关的堆进行了简单的介绍。我们知道了堆是借助二叉树中完全二叉树来实现的。它实现了二叉树的顺序存储。但对于普通的二叉树来说,顺序存储会造成空间浪费…

贪心+背包

这道题比较坑的就是我们的对于相同截止时间的需要排个序&#xff0c;因为我们这个工作是有时间前后顺序的&#xff0c;我们如果不排序的话我们一些截止时间晚的工作就无法得到最优报酬 #include<bits/stdc.h> using namespace std;#define int long long int t; int n; c…

看板项目之vue代码分析

目录&#xff1a; Q1、vue项目怎么实现的输入localhost&#xff1a;8080就能自动跳到index页面Q2、组合饼状图如何实现Q3、vue项目如何实现环境的切换Q4、vue怎么实现vue里面去调用js文件里面的函数 Q1、vue项目怎么实现的输入localhost&#xff1a;8080就能自动跳到index页面 …

内部 API 与外部 API - 这重要吗?

内部和外部 API 的受众和用途有所不同。公司的内部利益相关者使用内部 API 作为其工作角色的一部分。目标是提高内部生产力和效率。外部 API 可以产生收入&#xff0c;将公司品牌打造为开源产品&#xff0c;或者改进 API。 本文讨论内部 API 和外部 API 之间的差异。 公共 AP…

数据结构——串

语言&#xff1a;C语言软件&#xff1a;Visual Studio 2022笔记书籍&#xff1a;数据结构——用C语言描述如有错误&#xff0c;感谢指正。若有侵权请联系博主 一、串的基本概念 子串&#xff1a;串中任意连续的字符组成的子序列称为该串的子串。 主串&#xff1a;包含子串的串称…

做一个能和你互动玩耍的智能机器人之三

内容节选自英特尔的开源项目openbot的body目录下diy下的readme&#xff0c;这是一个组装和连线方式的说明文档&#xff0c;接线需要配合firmware固件使用&#xff0c;固件代码的接线柱是对应的。 body目录内部十分丰富&#xff0c;主要介绍了这个项目的背景和硬件以及如何让他…

【SQL 新手教程 4/20】关系模型 --索引

&#x1f497; 关系数据库建立在关系模型上⭐ 关系模型本质上就是若干个存储数据的二维表 记录 (Record)&#xff1a; 表的每一行称为记录&#xff08;Record&#xff09;&#xff0c;记录是一个逻辑意义上的数据 字段 (Column)&#xff1a;表的每一列称为字段&#xff08;Colu…

iOS 评论弹窗手势问题

基本原理 给slidePopupView添加一个滑动手势 并设置代理 我们在 shouldReceiveTouch 代理方法中 通过 touch.view 判断 是否是滑动tableView, 如果 touch.view 是tableView &#xff0c; isDragScrollView 就是YES, 否则就是NO 并且要 shouldRecognizeSimultaneouslyWithGestu…

Unity发布安卓解决报错: You will no longer be able to disable R8

Unity发布安卓解决报错&#xff1a; You will no longer be able to disable R8 问题描述1 版本&#xff1a;2 问题描述&#xff1a;3 分析&#xff1a; 解决方案1 升级工程2 选择安卓版本12L3 直接打包 问题描述 1 版本&#xff1a; unity 2021 2 问题描述&#xff1a; da…

go run command

文章目录 1.简介2.格式3.示例4.注意事项5.常见用途参考文献 1.简介 编译并运行 Go 程序。 2.格式 go run [build flags] [-exec xprog] package [arguments...]run 编译并运行指定的 main 包。 通常&#xff0c;main 包被指定为来自单个目录的 .go 源文件列表&#xff0c;但…

echarts实现在市级行政区点击县级行政区,显示单个县级行政区地图数据

因需兼容ie&#xff0c;此处所有变量声明都用var。如无需支持&#xff0c;可另做let修改。 这里以常州市为例,我们可以去阿里云提供的地理工具去截取地图json数据DataV.GeoAtlas地理小工具系列 点击所选区域&#xff0c;右侧会对应显示json数据&#xff0c;再次点击右侧红框内…

MySQL 索引相关基本概念

文章目录 前言一. B Tree 索引1. 概念2. 聚集索引/聚簇索引3. 辅助索引/二级索引4. 回表5. 联合索引/复合索引6. 覆盖索引 二. 哈希索引三. 全文索引 前言 InnoDB存储引擎支持以下几种常见索引&#xff1a;BTree索引&#xff0c;哈希索引&#xff0c;全文索引 一. B Tree 索引…

java如何实现接口之间的继承

java如果要实现接口之间的继承需要用到语句 interface 接口1 extends 接口2&#xff0c;接口3 一个接口可以继承多个接口 示例代码如下 interface Animal03{public String name"牧羊犬";public void info(); } interface Color{public void black(); } interface…

2024巴黎奥运会竟然用AI做这些?

人工智能将成为 2024 年巴黎奥运会的焦点&#xff0c;组织者于四月制定了《奥运会人工智能议程》&#xff0c;这是一个涵盖人工智能对奥运会未来影响的框架。 该议程体现了国际奥委会及其主要合作伙伴的承诺&#xff0c;确保在奥运会上使用人工智能来促进团结、提高可持续性并加…

从零到一使用 Ollama、Dify 和 Docker 构建 Llama 3.1 模型服务

本篇文章聊聊&#xff0c;如何使用 Ollama、Dify 和 Docker 来完成本地 Llama 3.1 模型服务的搭建。 如果你需要将 Ollama 官方不支持的模型运行起来&#xff0c;或者将新版本 llama.cpp 转换的模型运行起来&#xff0c;并且想更轻松的使用 Dify 构建 AI 应用&#xff0c;那么…

网络传输层——UDP与TCP

前言&#xff1a; 1.国际网络体系结构&#xff1a; OSI模型: open system interconnect 理论模型 1977 国际标准化组织 各种不同体系结构的计算机能在世界范围内互联成网。 应用层:要传输的数据信息&#xff0c;如文件传输&#xff0c;电子邮件等…