用腾讯云快速进行CNN开发验证

2022-04-17 22:38:15 浏览数 (2)

1、背景说明

本人非专业开发者,之前也没用过云服务器,所以在实践过程会遇到一些新手才会有的困惑。简单分享一下,给同样困惑的朋友一点借鉴,大神可以略过,谢谢!

本人目前在学习CNN的知识,拟用CNN完成图像分类任务。但自己的电脑训练模型太慢,为了不影响试验效率,申请了带GPU的腾讯云服务器。如上面所说,本人非专业开发者,因此只分享自己第一次使用GPU云服务器搭建开发环境的经验,并没有涵盖不同操作系统如何使用之类的全面攻略。下面是我使用的云服务器、开发语言等的情况:

1)云服务器:GPU计算型GN8,6核 56GB5Mbps

2)开发语言:Python

3)开发环境:PyCharm

3)机器学习开发框架:Keras,后端是tensorflow

2、腾讯云服务器开通

首先,需要购买云服务器,打开腾讯云官网https://cloud.tencent.com/,找到云服务器的购买页面,下单付钱。

然后,购买完成后,怎么进入云服务器?

由于我是第一次用云服务器,所以看到开通云服务器的订单页后,竟不知道怎么进行下一步(其实挺简单的事,卡了我好一会儿)。

订单页面订单页面

如果你的电脑也是Windows系统,通过系统自带的“远程桌面”应用程序,输入IP地址和用户名、密码,即可远程连接到云服务器。(第一次使用不知道密码的,可以先重置密码)。远程桌面连接后的云服务器,就跟普通的window电脑一样,如下所示。

远程桌面远程桌面

由于需要用到GPU的计算能力,因此可以先打开设备管理器,看一下GPU是否工作正常。如果找不到GPU,可能需要安装GPU的驱动程序(看一个你的服务器是什么GPU,找对应的驱动程序即可)

3、搭建CNN所需的开发环境

我要做图像处理相关的任务,最终需要用到卷积神经网络(CNN)。要想进行CNN的开发,可以使用成熟的开发框架,我使用的是Keras,采用tensorflow作为后端。另外,我用的开发语言是Python,因此,我需要搭建以下内容:

1)安装Python的开发环境(我用的是PyCharm)

2)安装Python的解释器环境(用Anaconda配置比较方便)

3)在PyCharm里选择配置好的解释器环境,并测试环境跑通

接下来具体说:

1)PyCharm的安装比较方便,到官网https://www.jetbrains.com/pycharm/选择需要下载的版本,个人开发者可以下载community版,不收费。

PyCharm下载页面PyCharm下载页面

下载完成后一直下一步完成安装即可。

2)安装Anaconda,也比较简单,官网下载之后,一直下一步完成安装。

3)在Anaconda里创建一个解释器环境,之后会将CNN需要用到的各种Python开发包放到这个环境里。

Anaconda界面Anaconda界面

4)打开PyCharm,在设置中选择编译器环境,选择刚刚建立的环境即可:

Conda Environmeng ——>Existing environmentConda Environmeng ——>Existing environment

5)在Anaconda里添加各种需要的Python开发包,包括keras、tensorflow-gpu、numpy、pandas等,需要注意的是,keras、tensorflow有版本对应关系,如果安装的版本不匹配,可能会在使用过程中报错,提示没有ddl文件。

6)每安装成功一个包,如果想即时验证是否安装成功,可以在PyCharm的Python Console里,import这个包,如果不报错,就说明安装成功了。这里由于需要用到GPU的计算能力,因此演示一下安装的tensorflow是否可用:

Python ConsolePython Console

import tensorflow,然后用tensorflow.test.is_gpu_available(),如果返回True,则说明GPU可用。

注:后续如果需要导入其他包,也可以在Anaconda里先安装。

4、一个简单的CNN开发测试案例

keras内置了常规机器学习的模型,比如VGG16、VGG19、ResNet50等,也可以通过可读性较高的开发语言,自己搭建神经网络,进行快速的网络搭建、测试、训练等工作。

本文以用VGG16训练多标签分类的模型,说明用keras进行开发验证有多便捷:

1)导入VGG16

一行代码即可导入VGG16一行代码即可导入VGG16

2)实例化VGG16模型

实例化模型实例化模型

3)调用训练相关的类,传入参数,进行训练

训练模型训练模型

4)绘制训练效果图(我这个模型训练的不太好,只是用作说明)

模型训练结果模型训练结果

5 最后,有没有GPU,速度差别多少呢?

训练10000张图片,我自己的电脑(8G内存CPU)训练一个epoch需要593秒(一轮训练需要40-50个epoch),而用带GPU的腾讯云服务器训练,一个epoch只要41s,提速大约15倍。原本一轮训练要六七个小时,现在只要半小时左右,就,真的很爽!

好啦!谢谢各位的阅读,有问题欢迎留言沟通。我看云 社区不多,有需要可以加我的微信,欢迎和我讨论。

微信号:guixiaozhong123

0 人点赞