吴恩达2022机器学习专项课程C2W1:2.7 TensorFlow代码推理 & 2.8 TensorFlow 中的数据 & 2.9 构建一个神经网络

内容预览

之前的课节都是讲述神经网络的概念,这三节课开始涉及到代码层面。主要通过一些案例,展示了TensorFlow的使用以及为什么TensorFlow的输入输出数据都必须是矩阵。然后讲述如何使用TensorFlow从零构建一个神经网络模型的大致过程。

TensorFlow简介

TensorFlow 是实现深度学习算法的领先框架之一。在构建项目时,TensorFlow是最常用的工具之一。另一个流行的工具是 PyTorch。但是在这个专业化课程中,我们将专注于 TensorFlow。

TensorFlow案例(一):咖啡烘焙

1.案例描述

  • 温度:生咖啡豆加热到烘焙好的咖啡豆过程中使用的温度。
  • 持续时间:烘焙多久。
  • 两个输入特征:温度和持续时间。
  • 输出标签:烘烤的咖啡是否美味,y=1为好咖啡,y为负值坏咖啡。
  • 温度和持续时间都在三角区域,不会温度或持续时间太低导致咖啡豆生,不会温度或持续时间太久导致咖啡豆烤过头。
    在这里插入图片描述

2.构建神经网络

此案例可以构建一个神经网络来实现:给定一个具有温度和持续时间的特征向量x,使用神经网络推理,推理结果表示在这个时间和温度下,烘焙的咖啡好与坏。
在这里插入图片描述
2.1 Dense创建两个层

  • 创建第一个隐藏层,x输入为温度和持续时间,使用Dense创建层,设置神经元个数为3,设置激活函数为sigmoid,然后将输入向量x传入层,层经过计算得到激活值a1。
    在这里插入图片描述
  • 创建第二个隐藏层,输入向量变为a1,输出向量a2为0.8。
    在这里插入图片描述

2.2 设置阈值

使用0.5阈值判断第二层的激活值,由此将最终输出的激活值设置为1或0。
在这里插入图片描述

TensorFlow案例(二):图像识别

过程和烘焙咖啡的基本一致,输入向量x表示一张图像的像素亮度值向量。使用Dense创建3个层层,然后每一层的激活项a作为下一层的输入,然后设置阈值判断最终的激活项为1还是0。
在这里插入图片描述

TensorFlow的数据类型

1.为什么TensorFlow的数据都是矩阵

  • 使用TensorFlow操作数据的时候,数据的格式都是矩阵,即便是只有1行向量,也要将其构建成1行2列的矩阵。
  • 因为TensorFlow是被设计用来处理非常大的数据集的,这些数据集用矩阵而不是一维数组来表示,使得TensorFlow内部计算更加高效。
    在这里插入图片描述

2.Numpy表示矩阵

  • 2行3列和4行2列。
    在这里插入图片描述
  • 行向量:只有一行。列向量:只有一列。
    在这里插入图片描述

3.TensorFlow表示矩阵(tf.Tensor)

tf.Tensor是TensorFlow创建一种数据类型,可以有效表示和计算矩阵。

  • 第一层激活项a1为0.2,0.7,0.3,数据类型为tf.Tensor,是一个1行3列的矩阵,数据类型为浮点数。
    在这里插入图片描述
  • 第二层激活项a2为0.8,数据类型为tf.Tensor,是一个1行1列的矩阵,数据类型为浮点数。在这里插入图片描述

4.Tensor转换numpy

  • 第一层的激活项a1调用a1.numpy(),就转换成了numpy的形式。
    在这里插入图片描述
  • 第二层的激活项a2也是用numpy()。在这里插入图片描述

使用TensorFlow从零构建一个神经网络

1.构建神经网络层的两种方式

  • 如上面看到的两个案例,实现前向传播的神经网络,都是一个层一个层的构建,然后通过传递激活项连接层,做法比较复杂。
    在这里插入图片描述
  • 使用Sequential,直接将各层按顺序传入Sequential,Sequential自动把这些层连在一起形成一个神经网络model,且这些层的激活项传递自动执行前向传播算法,无需手动一个一个设置。
    在这里插入图片描述

2.构建神经网络的完整过程

  • 这里只展示大致的过程,细节下周会讨论。使用Sequential构建了神经网络模型后,通过model.compile(…)编译模型。然后创建了x,y训练集,通过model.fit使用训练集数据训练模型,最终通过model.predict来使用模型预测。
    在这里插入图片描述
  • 可以直接在Sequential构建层,无需传入layer_1,layer_2等变量,是个小优化。
  • 42
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值