朋友们, 大家好, 欢迎来到这个新的部分,
我们将讨论深度卷积学习模型的结果可视化｡
首先, 我真的要对完成了深度卷积神经模型的整个实现表示热烈的祝贺｡
现在, 我们来到了有趣的部分, 我们将可视化我们创建的人工智能的结果｡
就像我在上一个教程的结尾说的, 你知道, 最后一个实现教程,
我说我有一个惊喜给你｡
惊喜就在这里｡
我们将在Google CoLab上显示结果｡
为什么这是个好惊喜？
这是一个很好的惊喜, 因为基本上你将完全没有麻烦运行代码, 运行代码和可视化的结果｡
的确, 这是课程的一个新特点｡
在此之前, 我们实际上使用Python在Spider上运行代码, 但是安装所有的包､
pytorch､ gym依赖项和所有不同的依赖项是非常困难的｡
实际上, 很多学生在安装所有程序时遇到了很多问题, 最后,
他们中的大多数人都不能很好地运行整个代码, 而且大多数人看不到最终结果｡
所以我非常想解决这个问题｡
我想到的最好的解决方案是包含整个代码｡
因此, 您将拥有与我们在本部分中实现的代码完全相同的代码｡
但是我已经将整个代码包含在了Google CoLab笔记本上, 在这里,
你要运行代码并可视化结果, 唯一需要做的就是点击这里的播放按钮｡
这是您唯一需要做的事情, 因为Google CoLab的美妙之处在于大多数库和包都已经安装好了｡
例如, TensorFlow已经安装, PyTorch已经安装在所有火炬模块中,
函数和类已经安装, 因此您不必安装它们｡
然而,
我们仍然有一些小的依赖项需要安装, 以确保一切都连接良好, 但我们不必像在自动驾驶汽车中那样通过终端或通过Anaconda提示符来安装它们｡
我们只需要在第一个单元格中单击播放按钮, 安装系统依赖项即可｡
我知道你们有些人可能在想什么｡
为什么我们没有为自动驾驶汽车做同样的事情呢？
不幸的是, 我们不能做同样的事情, 因为在自动驾驶汽车模块中, 我们有用户交互｡
你知道, 当我们在地图上绘制一些感觉,
你知道, 设计道路和放置一些障碍物, 嗯, 不幸的是, 谷歌合作实验室还没有允许用户与一些地图进行交互的功能｡
所以我无法为自动驾驶汽车做到这一点｡
我为此道歉, 但这就是为什么我给你我的书的整个章节的速成班, 其中包含了所有的说明,
自动驾驶汽车｡
我希望你无论如何都能把所有东西都安装好｡
与Doom相比, 没有太多需要安装的东西, 所以我希望自动驾驶汽车一切顺利｡
但对于劫数在这里｡
现在你有保障了｡
运行代码和可视化结果不会有任何问题｡
这就是惊喜
我希望你会喜欢｡
现在, 我将向您介绍整个实现过程,
以向您展示我们的代码与第二部分中实现的代码完全相同｡
唯一的问题是我合并了三个代码｡
这是我们在文件夹中的代码, 由图像预处理p文件､
体验回放p文件和AI p文件组成, 其中包括两个部分：第一部分构建AI, 第二部分训练AI｡
我只是把这三个文件合并起来先把图像预处理, 然后把p文件.
我会在练习册上给你们看的｡
其次是体验｡
重放P文件和第三个, AI｡
P在这里的顺序是一个在另一个下面｡
所以我给你们看这个｡
然后我在整个代码中修改了两三处地方, 我会给你们看具体的修改,
这样你们就能发现其中的不同之处｡
基本上, 在该文件中, 一切都是相同的, 而该文件中, 一切也是相同的｡
但是, 那份文件绝对没有任何变化｡
在这里, 当我们导入Openai和Zoom的包时, 我们没有使用P包doom包装器的操作空间来导入到离散｡
我们已经不用了｡
我们会用别的东西, 你会看到的｡
我还把框架的尺寸改成了80乘80我把它改成了256乘256.
这样你就可以有更好的可视化效果, 因为你会有更大的视频来观看｡
这就是我改变的地方｡
我带你去看
现在, 让我们从图像处理开始, 因为事实上, 正如我告诉你的, 我刚刚把三个文件合并在一起｡
所以我们从按下“y”键开始｡
如你所见, 这是完全一样的｡
我们从导入库开始, 与此处的库完全相同｡
然后用初始化方法和观察方法组成的预处理图像类对图像进行预处理｡
正如你所看到的, 这是完全相同的预处理图像｡
在它里面, 方法和观察方法｡
好的, 我们继续体验重播, 我们有完全相同的｡
实际上, 我们首先在这里使用了两个库, 但都没有命名｡
轻按右侧｡
然后我们定义一个和这里完全一样的步骤｡
然后, 我们使用Step Progress类在几个步骤上取得进展,
这与工作簿中的情况完全相同｡
好吧, 我知道了
我只是在这里做了一些复制粘贴｡
我们有完全相同的init方法｡
这是一个方法和奖励步骤的方法｡
好了, 我们用replay memory类实现了体验回放.
如您所见, 我们在Google协作实验室中拥有完全相同的内容｡
另外, 你可能会更好地欣赏结构, 因为我添加了一些文本单元格｡
这就是你知道的, 在这本练习册上可视化会更好｡
好吧, 我会的
所以重放内存类init方法示例的批量运行步骤, 基本上完全相同的代码｡
好吧, 我会的
然后我们进入第三个文件API, 自由API, 这个API包含两个部分, 第一部分, 构建人工智能,
第二部分, 训练API｡
让我向大家展示一下, 我们在这本练习册上有完全相同的内容｡
因此, 我Freedom API首先导入库, 完全相同的库｡
对, 如你所见｡
在这里, 这就是我在导入Openai和Dhoom的包时已经强调的区别｡
我们不必导入gem包装器, 然后跳过包装器并将其打包以导入到脚本中, 我们只需实际导入gem,
这是相同的, 然后导入这个注定要失败的gem, 这基本上是新的注定要失败的环境,
实际上得到了很好的改进｡
最后是宝石图书馆的包装纸｡
好吧, 我会的
所以这里的区别, 这将使这个东西在谷歌CoLab上工作, 如果你想运行它, 也可以在Python上工作｡
当然, 在这里, 我不需要在Google collapse中包含这些代码,
因为我们在这里导入了其他文件, 因为它们是分开的｡
由于我在Google CoLab上合并了三个文件, 因此, 我不需要进行导入｡
这里我们直接转到端口1, 构建API, 这里, 正如我告诉过你的, 我们有完全相同的代码,
除了这里的尺寸｡
好吧, 我知道了
如果我们看一下这里的一号端口, 一号端口二号楼, 我们从C和class开始制作大脑.
正如你所看到的, 我们有完全相同的代码, 除了这里输入帧的尺寸,
这是当我们实现代码80乘80｡
但我在谷歌CoLab中将其改为256乘256, 这样你就可以有更好的帧, 因此更好的视频观看,
但所有其他的都是完全一样的｡
所以这里我们用CNN类来做大脑, 然后用最大软伙伴类来做伙伴｡
所以和我们这里的完全一样｡
最后, 我们把整个东西和包含大脑和身体的类放在一起, 还有一些执行动作的方法｡
对, 完全一样｡
类组成的大脑在体内, 然后以同样的方法来执行动作｡
好吧, 我会的
所以完全一样｡
只是输入帧的尺寸发生了变化｡
现在让我们进入第二部分, 也是完全一样的｡
首先, 我们要把末日环境做好｡
让我给你们看第二部分｡
我们首先得到doom环境, 这里请记住, 因为我们不再使用数据包导入环境, 而是使用此doom｡
唯一改变的代码就是这里
的确我们得到智慧走廊, 但这里的环境完全一样｡
好吧, 我会的
然后, 当然, 我改变了这些新的尺寸, 这样你就可以在这里有更大的视频｡
所以我们不再是80乘80, 而是256乘256｡
然后我们得到了完全相同的结果, 你会看到的动作数是7｡
然后我们通过创建大脑对象来构建人工智能, 你知道, CNN, 然后是身体对象,
soft max body, 然后是整个人工智能, 由大脑和身体组成, 与我们一起实现的完全相同｡
好吧, 我会的
然后我们设置体验回放｡
所以这里也是一样的｡
然后我们实现的资格跟踪仍然完全相同｡
然后我们怎么办？
我们用100步的平均数来计算高管｡
我也是
所以这是完全相同的代码｡
基本上只有框架的尺寸和导入环境的方式发生了变化｡
最后我们用完全相同的代码训练人工智能｡
到这里为止, 我们已经有了你下载时在文件夹中看到的完整代码, 代码中的数据集｡
基本上, 我们也有我们一起实现的完整代码｡
然而, 为了使可视化在Google Lab上工作, 我添加了这个额外的代码,
但因为它实际上只针对这个CoLab笔记本电脑, 也只针对可视化｡
A. 一､ 在末日环境中的行动将请｡
你不必担心理解这里的所有代码,
因为你知道, 你一生中只会看到一次, 当你想建立和训练一些人工智能在厄运环境中发挥作用｡
我的意思是, 在构建和训练人工智能时, 您不必将此代码用于其他应用程序｡
所以不要太担心这个代码｡
我只是为了让它能在Google CoLab上工作而添加了这一点, 但让我们看看我做了什么｡
首先, 当然是导入库｡
然后我在这里添加了一些实用的代码, 这样你就可以很快地看到你在环境中所做的动作的数量, 以及环境框架的显示,
看看它是什么样子的｡
我之所以这么说, 是因为我还将向你们展示如何处理其他厄运环境, 因为你们实际上有很多这样的环境｡
所以你要做的就是用其他环境的名字来代替智慧走廊｡
我会给予你这个页面的链接, 直到这个教程｡
但在这里, 正如你所看到的, 你有很多厄运环境, 你可以玩｡
你知道, 智慧基础, 智慧走廊,
这是我们现在要玩的, 智慧防御中心和其他, 甚至有一些室内迷宫, 只要按照这里的指示｡
您可以在这个init方法中的这个文件夹中找到它们｡
你可以在这里找到名字｡
智慧基础､ 智慧长廊､ 智慧保卫中心｡
而且你有很多很多, 你看｡
所以如果你想玩其他的末日环境, 请随意｡
您只需要更改环境的名称｡
任何时候你在这本练习册上看到这个末日走廊, 你只要用这个名字代替它就行了｡
多亏了这段代码和这段代码, 你很快就能看到动作的数量,
输入形状的尺寸, 还有一个框架的显示, 可以看到环境的样子｡
所以这将是相当实用的｡
然后我为可视化创建了这个辅助函数｡
然后, 我运行人工智能的一个插曲, 当然后, 它是训练｡
所以我们先在这里训练它｡
正如你们所见, 顺便说一下, 我忘了告诉你们, 我也改变了历元的数量, 从100到20,
这仅仅是因为, 你们知道, 我增加了框架的维度｡
因为我增加了框架的尺寸, 训练会花更长的时间, 因为训练起来更难｡
因此, 我将100个历元的数量减少到20个OC｡
不用担心, 我们已经得到了很好的, 积极的回报｡
当然, 如果您希望最终提高性能和结果, 可以随意增加历元的数量｡
你会得到更好的结果, 但你会看到, 已经有20个纪元, 训练将需要相当长的时间｡
好吧, 我说到哪了？
是的, 这有助于实现可视化功能｡
然后我在一集里运行人工智能, 当然, 在它被训练之后｡
最后, 这段代码将输出游戏的视频, 你知道, 在这一集里,
你会看到人工智能在这一集里的表现, 视频将被输出, 你可以在这里下载,
你知道, 当我们执行这段代码的时候｡
好吧, 我会的
现在是行刑的时候了｡
是时候好好坐在椅子上了｡
我希望你有一个好咖啡或好茶｡
现在我们只需按下每个单元格中的不同播放按钮, 即可运行最终结果｡
所以我们开始吧｡
但首先, 这是非常重要的理解｡
还有谷歌合作实验室｡
这是一个Google CoLab工作簿的链接, 你们都可以访问它, 因此, 当然,
你们不能修改其中的任何内容, 因为如果你们中的一个修改得很好, 其他人会看到修改｡
这是一个只读模式, 因此,
如果您要更改环境名称或增加纪元数,
甚至调整您的人工智能, 那么, 您必须创建一份该工作簿的副本, 并将其保存在您自己的Google云端硬盘中｡
这就是为什么要做到这一点, 你需要一个Gmail地址, 以便你有一个谷歌驱动器｡
所以一定要有一个｡
一旦出现这种情况, 您只需单击此处得文件, 然后保存一个副本并驱动.
这将在您自己的Google云端硬盘中创建此工作簿的副本, 您可以在该副本上进行一些修改｡
好吧, 我会的
现在我们开始执行死刑｡
所以现在我们只需要播放所有的单元格我们会越来越接近最终的结果｡