常用!基础!吴恩达deeplearning.ai:Tensorflow中数据形式

由于一些历史遗留问题,Numpy和Tensorflow在数据处理方面存在一些不一致的地方,今天我们主要来了解一下其中一些约定俗成的形式,从而能够让你写出正确的代码(耍帅)。

文章目录

  • Tensorflow是如何表示数据的
    • 特征向量
    • 关于Numpy矩阵
    • 激活向量


Tensorflow是如何表示数据的

特征向量

和上一节博客中的例子一样(详细链接在这里),我们先看看咖啡:
在这里插入图片描述
这个例子之中,特征向量有两个,分别是温度(摄氏度),烘焙时间(分钟),那么x的写法如下:

x = np.array([[200.0, 17.0]])

看到这里你是否会有疑问,为什么这里有两个方括号嘞?是不是多此一举嘞?俺第一次看到这里也有同样的疑问。

关于Numpy矩阵

让我们再举出两个例子:
假设我们要创建一个两行三列的矩阵,它的内容为[[1,2,3], [4,5,6]],线性代数中一般称之为2*3矩阵,那么它的创建方式为:

x = np.array([[1, 2, 3],[4, 5, 6]])

假设我们要创建一个四行两列的矩阵,它的内容为 0.1,0.2,-3,-4,-0.5,-0.6,7.0,8.0,同样的,这种矩阵被称为4*2矩阵,那么代码为:

x = np.array([[0.1, 0.2],[-3, -4][-0.5-0.6][7.0, 8.0])

当行数列数多了你会更容易明白,外面一层括号的作用是将里面矩阵的每一行组合到一起。
反过来说,如果你写的代码是这样的:

x = np.array([200, 17])

那么它并不是一个矩阵,这仅仅是一个数字列表。
因此,在普通的线性回归与逻辑回归之中,我们使用x = np.array([200, 17])这种单层中括号形式来表示,而由于Tensorflow之类的常常用于数据量很大的计算,因此需要用矩阵来进行,通常是双层中括号的表示形式。

激活向量

在上一节的代码示例中(详细链接在这里)第一层的代码:

x = np.array([[200.0, 17.0]])
layer_1 = Dense(units=3, activation='sigmoid')
a_1 = layer_1(x)

你是否有疑惑其中a1的形式呢,如果你看过我上之前的一篇博客,那么应该会更容易理解,a1作为一个激活值,又假设units=3,因此a1是一个3*1的矩阵(例如([[1,2,3]])),如果你print(a1)的话,会得到:

tf.Tensor([[1, 2, 3]], shape=(1, 3), dtype=float32)

Tensor(翻译成中文是张量的意思)是Tensorflow团队创建的一种数据类型,专门用于矩阵计算。其中获得了三个数据,第一个当然是矩阵中数据的内容,第二个是矩阵的大小为1*3,一行三列,第三行是指矩阵中数据的类型为浮点型。
从技术上讲,张量比矩阵更加通用一点,但是在该课程中可以把张量理解为矩阵的一种。
当然,我们也有Numpy表示矩阵的方式:

a1.numpy()
输出:array([[1, 2, 3]], dtype=float32)

这个含义和上面是差不多的,就不过多解释了。
如果你获得了一个张量形式的矩阵,而想把它转换为Numpy形式的话,仍然运行:

a1.numpy()

它可以提取Tensor中的数据并且以numpy的形式返回。

第二层的代码是这样的:

layer_2 = Dense(units=1, activation='sigmoid')
a_2 = layer_2(a_1)

所以其中的a2是什么样的?a2应该是一个类似于0.8之类的浮点数,但准确的说应该是一个1*1的矩阵,即一行一列。如果你打印a2的话会得到:

tf.Tensor([[0.8]], shape=(1, 1), dtype=float32)

和我刚刚的解释一致。
当然你也可以查看它的Numpy形式:

a2.numpy()
输出:array([[0.8]], dtype=float32)

在学习完本篇博客后,希望你可以了解数据在Numpy和Tensorflow中的区别,以及了解它们的转换方式和使用场景,从而更便于你进行深度学习的网络搭建。

为了给读者你造成不必要的麻烦,博主的所有视频都未开启仅粉丝可见,如果想要阅读我的其他博客,可以点个小小的关注哦╰(°▽°)╯

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter(一):安装和环境配置、创建Flutter项目

安装和环境配置、创建Flutter项目 Flutter 下载方式1方式2 Flutter 环境配置配置国内镜像站点解压 Flutter将 flutter 添加到系统环境变量中运行 flutter doctor来验证安装 Android Studio下载插件创建项目安装 Android SDK 工具在模拟器上运行 Flutter 下载 方式1 全版本&…

深度学习介绍与环境搭建

深度学习介绍与环境搭建 慕课大学人工智能学习笔记,自己学习记录用的。(赋上连接) https://www.icourse163.org/learn/ZUCC-1206146808?tid1471365447#/learn/content?typedetail&id1256424053&cid1289366515人工智能、机器学习与…

数据结构day4

实现创建单向循环链表、创建结点、判空、输出、头插、按位置插入、尾删、按位置删除 loop_list.c #include "loop_list.h" loop_p create_head() {loop_p L(loop_p)malloc(sizeof(loop_list));if(LNULL){printf("空间申请失败\n");return NULL;}L->le…

华为配置WLAN AC和AP之间VPN穿越示例

配置WLAN AC和AP之间VPN穿越示例 组网图形 图1 配置WLAN AC和AP之间VPN穿越示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 企业用户接入WLAN网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时,不影响…

CentOS 7.9.2009离线安装mysql 8.0客户端 (rpm包)

环境: #需求: 该服务器需要将csv文件入库到远端的mysql 服务器上。 CentOS Linux release 7.9.2009 (Core) 离线环境 ,需安装mysql客户端 8.0.27#下载地址 https://downloads.mysql.com/archives/community/#按此顺序安装 rpm -ivh mysql…

alist修改密码(docker版)

rootarmbian:~# docker exec -it [docker名称] ./alist admin set abcd123456 INFO[2024-02-20 11:06:29] reading config file: data/config.json INFO[2024-02-20 11:06:29] load config from env with prefix: ALIST_ INFO[2024-02-20 11:06:29] init logrus..…

Kotlin filterIsInstance filterNotNull forEach

Kotlin filterIsInstance filterNotNull forEach fun main(args: Array<String>) {val i1 MyItem(1, 1)val i2: MyItem? nullval i3: Int 3val i4 "4"val i5 nullval i6 MyItem(6, 6)val list mutableListOf<Any?>(i1, i2, i3, i4, i5, i6)lis…

【算法与数据结构】链表、哈希表、栈和队列、二叉树(笔记二)

文章目录 四、链表理论五、哈希表理论五、栈和队列理论5.1 单调栈 六、二叉树理论6.1 树的定义6.2 二叉树的存储方式6.3 二叉树的遍历方式6.4 高度和深度 最近博主学习了算法与数据结构的一些视频&#xff0c;在这个文章做一些笔记和心得&#xff0c;本篇文章就写了一些基础算法…

【初始RabbitMQ】高级发布确认的实现

在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c; 导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们开始思考&#xff0c;如何才能进行 RabbitMQ 的消息可靠投递呢&#xff1f; …

浅谈集群的分类

本文主要介绍集群部署相关的知识&#xff0c;介绍集群部署的基础&#xff0c;集群的分类、集群的负载均衡技术&#xff0c;集群的可用性以及集群的容错机制。随后介绍Redis-Cluster以及Mysql的架构以及主从复制原理。 集群介绍 单台服务器本身会受到带宽、内存、处理器等多方面…

万界星空科技电子机电行业MES系统,2000元/年起

电子行业在生产管理上具有典型的离散制造特点&#xff0c;采用多品种、多批量或单件的生产组织方式。产品升级换代迅速&#xff0c;生命周期短&#xff0c;变更频繁&#xff0c;版本控制复杂。 同时产品的种类较多&#xff0c;非标准产品多&#xff0c;加工工序复杂&#xff0…

使用MongoDB数据库和Mongoose库在Node.js中进行数据存储

在Node.js中使用MongoDB数据库和Mongoose库进行数据存储是前端开发中常用的技术之一。MongoDB是一种非关系型数据库&#xff0c;具有高性能、易扩展等优点&#xff1b;而Mongoose是在Node.js中对MongoDB进行操作的框架&#xff0c;简化了数据库操作&#xff0c;并提供了丰富的功…

Leetcode日记 2583. 二叉树中的第 K 大层和

Leetcode日记 2583. 二叉树中的第 K 大层和 题目&#xff1a;解题思路&#xff1a;代码实现制作不易&#xff0c;感谢三连&#xff0c;谢谢啦 题目&#xff1a; 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和…

QT常用类

五、常用类 QString 字符串类&#xff08;掌握&#xff09; QString是Qt的字符串类&#xff0c;与C的std::string相比&#xff0c; 不再使用ASCII编码。QString使用的是Unicode编码。 QString中每个字符都是一个16位的QChar&#xff0c;而不是8位的char。 QString完全支持中文&…

动态预测波动率:ARCH模型和Heston模型

制定符合需要的资产组合需要了解每支的波动率&#xff0c;波动率高的资产意味着价格波动大&#xff0c;风险高&#xff0c;为了降低资产组合的风险&#xff0c;通常会在波动率较低的资产中分配更多的资金。同时波动率也和市场参与者的情绪有关&#xff0c;波动率大&#xff0c;…

【算法与数据结构】684、685、LeetCode冗余连接I II

文章目录 一、684、冗余连接 I二、685、冗余连接 II三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、684、冗余连接 I 思路分析&#xff1a;题目给出一个无向有环图&#xff0c;要求去掉一个边以后构成一个树&#xf…

如何在VSCode中带有参数的Debug(name、program、$file、args、pickArgs、指定虚拟环境)

0. 省流 {"version": "0.2.0","configurations": [{"name": "调试train.py文件","type": "debugpy","request": "launch","program": "train.py","cons…

如何改变.net托管的入口main函数

有小伙伴问: .NET托管入口Main函数可以修改成别的函数&#xff0c;用来作为程序的入口吗&#xff1f; 答案&#xff1a;当然是可以的。这也算是.NET里面非常简单的骚操了。本篇来用最新的.NET8演示下&#xff0c;如何修改Main入口。 1.简单控制台例子&#xff1a; namespace…

美国硅谷大带宽服务器|大带宽服务器租赁贵吗?

在数字化时代&#xff0c;服务器成为了支撑各种在线业务和应用程序的重要基石。尤其对于那些需要处理大量数据、保证快速响应和稳定连接的企业或个人来说&#xff0c;大带宽服务器成为了不可或缺的选择。而美国硅谷&#xff0c;作为全球科技创新的摇篮&#xff0c;其服务器租赁…

Open CASCADE学习|绘制砂轮

今天绘制一个砂轮&#xff0c;其轮廓由两条直线段和两段圆弧构成&#xff0c;圆弧分别与直线相切&#xff0c;两条圆弧之间相交而非相切。建模思路是&#xff1a;先给定两条直线段的起始点及长度&#xff0c;画出直线段&#xff0c;然后给定其中一圆弧的半径及圆心角&#xff0…