使用Google Colab训练Tensorflow模型

naka-kazz
548 0 2020-12-27

第1部分:使用IBM Cloud Annotations进行注释
 第2部分:使用Google Colab学习模型 ←本文
 第3部分:为Jetson nano构建环境
 第4部分:掌握DeepStream应用程序
 第五部分:学习模型变换和物体检测

第2部分:使用Google Colab学习模型

上一次,我使用IBM Cloud Annotations创建(注释)培训数据。这次,我们将使用Google Colab训练Tensorflow模型。这个学习过程需要大量的浮点运算,但是通过使用Google Colab,可以使用免费的GPU来高速执行它!

准备Google Colab环境

首先,我们将为Google Colab准备环境。

①下载Jupiter notebook

首先,下载我的定制Jupiter笔记本。该笔记本与官方的object-detection.ipynb基本相同,但有以下7个更改。创建并下载对象检测模型

1.解决发生错误且无法继续的部分

2.使用SSD mobile net v2 coco

3.安装Google Drive 

4.使用存储在Google Drive中的测试图像进行测试

5.下载所学模型的功能

6.在检查步骤的同时确认进度附加步骤

7.日语说明

特别是,官方对象detection.ipynb中使用的“ ssd_mobilenet_v1_quantized”模型可以使用“ SSD mobile net v2 coco ”,因为稍后将pb文件转换为uff文件进行TensorRT时会发生错误。这是重点。

清除错误后,我花了3个星期的时间来创建此笔记本


②准备Google云端硬盘

然后使用您的Google帐户转到Google云端硬盘,然后点击左上角的“新建”按钮。

③建立资料夹

从出现的菜单中选择“文件夹”,输入“对象检测”和文件夹名称,然后单击“创建”按钮。*可以使用其他名称,但是您需要重写节点簿上的路径。

④上传文件

打开创建的“ Objetc检测”文件夹,并在上面下载的ZIP文件中上传“创建对象检测模型.ipynb”,并在第一次为测试拍摄jpg图像。

⑤打开Google Colab

双击上载的“创建对象检测模型.ipynb”以将其打开。

当您打开笔记本时,将显示以下Google Colab屏幕。

⑥GPU的确认

从屏幕左上方的“编辑”中选择“笔记本设置”。

在此屏幕上,确保将硬件加速器设置为“ GPU”,然后单击“保存”。

这样就完成了Google Colab环境的准备。

服务器首选项

从此处开始,根据节点手册中描述的“ 1.首选项”的内容,从顶部开始按顺序执行代码。由于Google Colab的服务器环境处于仅安装所需最少软件包的状态,因此我们将安装学习Tensorflow模型所需的模块。

①安装numpy

首先,安装numpy。具体来说,请单击代码左侧的播放按钮。

安装完成后,将显示“成功安装了numpy ...”。安装numpy之后,有必要重新启动实例,因此请单击“重新启动运行时间”按钮。

②安装tf_slim

然后安装tf_slim。如果显示消息“成功安装tf-slim ...”,则确定。

③安装云注释

安装云注释以与IBM Cloud Annotation连接。如果显示消息“成功安装了云注释...”,则确定为OK。

④设定学习步骤数

如果要更改学习步骤的数量,请在此处更改“ num_steps”的值初始设置为500,但是最好将其设置为至少5000,以获得物体检测的准确性。设置后,按播放按钮执行。没有显示结果。

⑤目标检测演示克隆

克隆“ object_detection_demo_flow ”以使用SSD Mobilenet v2进行培训如果显示“已经更新”,则确定。

⑥对象检测API克隆

然后克隆Tensorflow的对象检测API并安装所需的相关模块。

安装完成后,将运行用于环境测试的“ model_builer_test.py”以测试是否已安装所需的模块。如下所示,如果没有错误,则可以。

⑦下载Mobilenet SSD v2

接下来,下载SSD Mobilenet v2,这是学习模型的基础。

如果可以看到如下所示的文件“ frozen_inference_graph.pb”,则可以。

⑧检查点设置

将上次下载的SSD Mobilenet v2中包含的检查点设置为变量。如果显示“ model.ckpt”的路径,如下所示,则可以。

这样就完成了服务器环境设置。

准备训练数据

在这里,我们将通过使用第1部分中的IBM Cloud Annotations创建的训练数据转换为Tensorflow可以处理的TFRecord格式文件,从而准备训练数据。基本上,只需执行“ 2.准备训练数据”中的代码。

①挂载Google云端硬盘

挂载您的Google云端硬盘以供以后使用。当您按下播放按钮并执行代码时,URL将显示如下,单击以将其打开。

然后,将显示Google帐户选择屏幕,因此选择Google帐户。

接下来,Google云端硬盘文件系统将要求访问权限,因此请单击“允许”按钮。

如果允许,代码将显示在屏幕上,因此单击“复制”按钮将其复制到剪贴板。

复制后,返回Google Colab标签,将复制的代码粘贴到红色框中,然后按Enter。

验证代码后,将显示“安装在/ content / gdrive上”,并且您的Google云端硬盘将安装在Google Colab的服务器上。

②挂载IBM Cloud

挂载IBM Cloud存储以访问先前注释的数据。在按下“播放”按钮之前,将“凭证”部分重写为您上一次写下的内容。

重写后,按播放按钮执行代码。显示“○○已安装”时,安装完成。

③注释数据的确认

当您按下下一个块的播放按钮时,将显示先前注释的图像文件和json文件。现在,您可以看到IBM Cloud和Google Colab已连接。

④创建标签图

接下来,创建标签图。标签信息也包含在_annotations.json中,因此请阅读并创建它。

创建完成后,将显示已创建的标签图,您可以检查在注释时输入的标签名称。

⑤创建TF记录

现在让我们创建一个TFRecord,它将作为模型学习的输入。这将需要一些时间,具体取决于注释数据的数量。

TFRecord的创建完成后,将创建两个记录文件,如下所示。第一个train.record是训练记录,而val.record是用于验证的记录。

⑥设定学习数据的路径

将创建的标签文件和TFRecord路径设置为变量。

⑦管道设置

最后,创建用于模型训练的设置文件(管道文件)。

同时执行第二个块。

当执行第二个块时,将显示管道文件的内容。确保设置了上面设置的学习步骤,检查点,标签文件和记录文件路径的数量。

这样就完成了训练数据的准备。

模型学习

从这里开始,我们将最终训练Tensorflow的训练模型。

①Tensorboard设置

不必学习500次,因为学习将在5分钟左右完成,但是如果您学习5000次以上,则将需要时间,因此当前的学习状况令人担忧。因此,我们将可以使用Tensorboard,它可以可视化学习情况。

操作简单,只需按一下播放按钮。但是,如果出现以下错误,请重试!重新执行时,将要求您覆盖,因此输入“ A”并按Enter。

如果一切顺利,则将显示URL“ https://xxxxxx.ngrok.io”,如下所示。即使您此时访问此URL,也会发生错误,因此让我们在下一步开始学习时对其进行访问。

②开始学习

现在,让我们学习Tensorflow的模型,这是这次的主要主题!

学习开始时将显示许多日志,但当Step = 100的显示达到500时,将完成许多日志。如果是500,则大约需要5到10分钟。让我们访问上面创建的Tensorbord URL以查看进度。

下面是Tensorboad的屏幕。在500步的情况下,它将立即结束而不检查进度,但是在5000步的情况下,您可以看到Loss值正在逐渐减小。

当Google实验室屏幕上的“步长”值达到500且末尾的日志草率时,学习完成!

③检查点显示

学习完后,运行下一个块以查看检查点信息。您可以看到model.ckpt.500。

④导出图

您刚刚训练的Tensorflow模型仅在经过训练的机器上可用,因此将其导出。此过程也需要一些时间。

⑤确认出口型号

导出完成后,运行以下块以查看导出的模型。如下所示显示save_model和Frozen_inference_graph.pb是可以的。

以防万一,请检查Frozen_inference_graph.pb的完整路径。

⑥加载测试图像

在下一步中,加载测试图像以测试您的模型。如果您运行代码,并显示存储在Google云端硬盘中的测试图像的文件名,就可以了。

⑦学习模型测试

现在,让我们测试是否可以使用经过训练的模型检测物体!️在测试中运行代码。然后,将对测试图像执行对象检测,并希望如下图所示检测并显示对象!️顺便说一下,文件名下面的数字是标签文件中设置的检测到的对象的索引号,而其下是概率。

此外,即使执行图像,也可能不会显示图像,但是在这种情况下,请再次按播放按钮。

另外,如果显示图像但未检测到对象,请增加学习步骤或增加注释数据的数量。

⑧下载经过训练的模型

最后,将经过训练的模型下载到您的PC。下载需要一些时间,请耐心等待。

下载完成后,将如下所示下载ZIP文件。

⑨下载标签文件

同时下载标签文件。我不在TensorRT中使用它,但是以防万一(笑)

[参考]检查模型文件的内容

如果您解压缩已训练模型的已下载ZIP文件,则可以看到包含以下文件。在该文件中,“ frozen_inference_graph.pb”将是下一步使用的文件。

至此,使用Google Colab完成了Tensorflow模型的创建。