当前课程知识点:计算思维与人工智能基础 >  第三部分:python基础 >  第九章:TensorFlow基础 >  9.5.TensorFlow中常用操作

返回《计算思维与人工智能基础》慕课在线视频课程列表

9.5.TensorFlow中常用操作在线视频

下一节:10.1认识回归问题

返回《计算思维与人工智能基础》慕课在线视频列表

9.5.TensorFlow中常用操作课程教案、知识点、字幕

下面我们给大家介绍一下

TensorFlow代码执行时设备的选择和设置

设备呢

在这里只是一块可以用来运算

并且拥有自己地址空间的硬件

比如说CPU和GPU

那TensorFlow为了在执行操作的时候

充分利用计算资源

可以明确的指定操作在哪一个设备上执行

一般的情况下

我们不需要显示的指定使用CPU还是GPU

TensorFlow会自动检测

如果检测到GPU呢

TensorFlow会尽可能的利用第一个GPU来执行操作

那么需要注意的是

如果机器上有超过一个可用的GPU

那么除了第一个外

其他的GPU默认是不参与计算的

所以在实际的TensorFlow编程中

经常需要明确给定使用的CPU和GPU

我们看这两段代码

我们通过with tf.device

那么来去指定/CPU

那么CPU的时候我们统一用CPU0

也可以在GPU上运行

我们就可以选择使用什么GPU:0

那么这个里面的可能是0,1

如果不是一块GPU的时候呢

我们就可以通过后面的0,1来进行区分

那么对于CPU呢

他是不区分设备号的

都统一使用CPU:0来去设定

另外的话

我们可以通过这两段代码

来去分别来设置它在不同的设备上运行

我们首先来看这段

上面这段代码

我们通过import os用来指定os.environ里面的

这两个参数啊

那么来设定

上面这种设置呢就是我们在CPU上运行

那么下段代码呢

我们可以设置他的设备是0

那么就是在第0块的GPU上运行

那当然也可以设置为1

那么就在1块GPU上运行

那么这个地方所需要注意的是

你如果安装的是tensorflow CPU的版本呢

当然就没法指定运行环境了

那么有一些操作呢

是不会在GPU上运行的

这个大家在以后的使用的时候需要注意

另外在设置不同的设备上运行

我们主要的目的就是为了能够

并行提高我们的计算效率

下面我们给大家介绍一下TensorFlow的一些运算

主要给大家介绍三块

第一个是基本的操作

求导

还有一些我们神经网络的一些设置的一些运算

首先呢

基本的就是我们的数学的运算

那么可以有我们常用的加减乘除啊

以及赋值

平方

平方根指数

自然对数

这个地方我们可以看的到

这个TensorFlow用的这个函数

跟我们前面讲过的

numpy函数基本上是什么一样的

说我们这个

虽然它里面的执行的是有一些细微的区分的

但是我们从实用函数的角度来说

那么函数的名称

tf.constant那就是我们定义一个常量

常量那个canstant赋值给a

add是一个加法

在这个地方的我们可以看的到这个矩阵的相乘

那么用tf.matmul

比如说a和b两个矩阵进行相乘

也可以用a@b

他们和后面这个是等价的

TensorFlow给我们提供了一个自动求导的一个功能

那么这个呢是通过tf.Gradient Tape这个API来进行实现的

如果我们对一个变量求导呢

我们可以给他进行赋值

我们通过with tf.GradientTape来进行什么呀

来进行设置

我们这里面是我们的一个函数

然后通过他的gradient方法把

我们对这个W进行求导

那么输出的结果呢

一阶导数一阶导数的值

如果我们前面赋值的是一个什么呀

我们看这个前面赋值如果是一个常量的话

那么通过GradientTape来进行求导的时候

这时候呢我们需要什么呀

通过他的一个方法啊

tape.watch的这个方法

把它转换成一个什么

可监控的一个变量

然后呢我们再进行对它求导

那么他的结果呢跟上段代码呢是一样的啊

另外的话

我们还可以求什么呀啊

两节的导数啊

那么我们来看这段代码

我们X定义为一个什么呀

变量

然后我们有两层

第一层GradientTape

那么with第二层GradientTape

这是我们的一个函数

那么这个是我们求导那么一阶导数

我们也可以再求一次导二阶导数

那么可以看到一阶导数的结果

二阶导数的结果

这就是我们给大家提供的这个

GradientTape这个API的一个简单的一个应用

另外的话

他还提供一些神经网络的函数的一些应用

比如说我们的全连接

像我们这段这是一个全连接

在这里面是什么啊

神经元

输出

也提供一些什么呀

卷积层的卷积的函数

那么这是一个二维的一个什么呀

layers.Conv2D

那么这是一个二维的一个卷积

那么输入量

然后这是卷积核的大小

然后我们滑动的步长

然后这是我们在填补的时候的一种方式啊

那么在具体的时候

我们后面可以再介绍

另外的话

我们在神经网络里面常用到的激活函数

常用的sigmoid函数

那么它的函数的形式呢

数学表达式都是这样子的

我们可以看到他特点啊

如果x得0的时候呢

我们的什么呀

y的值是0.5

那么x趋于正无穷的时候

它的y是1

那么就在0到1之间的一个变化

那么TensorFlow提供的函数就tf.nn.sigmoid这样子的哦

还有一个Tanh函数

Tanh函数的数学表达式呢

是这样子

那么他的变化的我们可以看的到

当x得0的时候

那我们这个y的值是得0的

那么当x负无穷的时候

它是—1

正无穷的时候是1

它是在-1到正1之间一个变换

可以看到另外一个relu函数

也是我们常用的

那么relu函数可以看得到

x等于0的时候

它是0

x小于0时候它都是什么呀

0

那么大于0的时候就是x本身

那么这就是一个relu函数

那激活函数在我们神经网络的构建时会常用的

那我们根据实际的应用不同呢

就会选用不同的激活函数

另外一个就是我们的误差的计算

误差的计算我们前面给他讲过是均方差

那么均方差这个MSE提供的函数是tf.losses.MSE

那么在这个地方我们就不再介绍

还有一个就是我们的一个交叉熵

那么交叉熵其实是一个

就是我们实际的分布和预测的这个分部的

它的一个概率的一个统计

比如说我们可以让

交叉熵其实它的表达式是这样子的

那么这个交叉熵的的p呢

就是我们这个指的是我们实际标签的一个概率

那么这个里面的q呢

是我们的预测标签的概率

我们举一个简单的例子

比如说我们有一个分类的一个预测

那么分类里面有三个

有猫狗马

那么这个标签里面的如果是猫的话

他就会是0100是这样的一个表达

那么如果是我们预测出来的时候

它的值可能是这样0.2

0.7

0.1

那么这个预测啊

那它的误差是多少呢

我们就通过交叉熵

那么交叉熵去怎么计算的话

那么就可以看的到loss

那么里面这个就是我们前面的这个是我们的什么呀

标签的概率0 1 0

那么后面我们log后面

跟的是我们预测的概率log(0.2)

0.7

0.1

那么这个得到的值呢

就是一个交叉熵来衡量我们预测的一个准确度啊

预测的一个准确度

那么这个其实就是误差的一个计算啊

那在神经网络层里面会用到一些其他的一些函数

比如说我们的矩阵相乘的函数

刚才我们说卷积的函数

像我们的激活的函数

还有我们这个最大池化、sigmoid、softmax函数

那等等后面的这些的常用的这些神经网络函数呢

在下面的课程中

我们会继续给大家在应用的时候引入

那么关于这一章TsesorFlow的基础呢

就给大家介绍到这儿

计算思维与人工智能基础课程列表:

第一部分:计算思维

-1.计算思维的提出

-2.计算思维的要素与应用

-3.培养计算思维

-4.智能时代的教师与教学

-章测试

第二部分:人工智能

-1.人工智能的发展

-2.人工智能的实现与机器学习

-3.人工智能产业

-章测试

第三部分:python基础

-第一章:python简介

--1.1python的介绍

--1.2.anaconda的安装

--章测试

-第二章:编码规范

--2.1 python编码规范

--2.2常量和变量

--章测试

-第三章:数据类型

--3.1数据类型概述

--3. 2.数据转换

--3.3数据类型区别

--章测试

-第四章:基本运算

--4.1.基本运算符

--4.2比较运算符

--4.3逻辑运算符

--4.4位运算符

--4.5成员运算符与身份运算符

--4.6运算符的优先级

--章测试

-第五章:程序控制结构

--5.1顺序结构

--5.2条件结构

--5.3循环结构

--5.4跳转结构

--5.5异常处理

--章测试

-第六章:函数、模块与面向对象

--6.1函数的定义与调用

--6.2面向对象

--6.3魔法函数的应用

--6.4模块与包

--章测试

-第七章:文件操作

--7.1文件的打开与读取

--7.2文件的写入

--7.3CSV模块的应用

--章测试

-第八章:python生态库

--8.1第三方库的安装

--8.2标准库-Os库与Sys库

--8.3.标准库-Time库

--8.4标准库-Random库

--8.5标准库-Turtle库

--8.6第三方库-词云库

--8.7第三方库-pyinstaller库

--8.8第三方库-numpy库(上)

--8.9第三方库-numpy库(下)

--8.10第三方库-pandas库

--8.11第三方库-matplotlib库

--章测试

-第九章:TensorFlow基础

--9.1TensorFlow简介

--9.2TensorFlow 2.0的改进

--9.3TensorFlow的数据应用

--9.4 TensorFlow的设备应用

--9.5.TensorFlow中常用操作

--章测试

-第十章:实例分析与实践

--10.1认识回归问题

--10.2房价的预测

--10.3手写数字识别

--10.4卷积神经网络的介绍

--10.5全连接网络的搭建

--10.6卷积神经网络的实现服饰图片的分类

--10.7LeNet的介绍

--章测试

-第十一章:人工智能在自然语言中的应用

--11.1自然语言处理

--11.2命名实体识别技术

--11.3词向量表示

--11.4自然语言处理的挑战及应用

--章测试

9.5.TensorFlow中常用操作笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。