Win10(无GPU)下的Paddlex2.0安装和极简例程


飞桨作为国内第一个开源的深度学习框架,对没有GPU的小伙伴来说,最有吸引力的地方就是百度提供了免费算力。所以在百度AIStudio上训练,在自己的电脑上跑应用是个不错的选择。飞桨开源的Paddlex集成了很多模块,使用起来非常方便,不过在电脑上安装的坑也不少。安装成功后记录一下,免得时间长忘记,又掉进坑里。

参考AIStudio服务器上的配置,用Python3.7.4、Paddlepaddle2.1.2、Paddlex2.0.0

 

一、安装Anaconda和Pycharm,配置环境

1、安装Anaconda

进入官方网址,下载安装程序:

https://www.anaconda.com/products/individual#Downloads

 注意:不要安装到C盘,后面建虚拟环境要下载不少包,占用空间较大。安装过程就是下一步...下一步...完成。

2、安装Pycharm

到官网下载Pycharm安装程序,社区版免费,专业版试用1个月:

https://www.jetbrains.com/pycharm/download/#section=windows

安装简单,过程省略。如果想使用专业版,可以找个工具,无限次试用😁

3、配置环境

在Anaconda工具集中,打开终端,创建环境“paddle”,命令为:

conda create -n paddlex python=3.7.4

待环境安装完成后(在anaconda安装目录的envs文件夹中能看到“paddle”文件夹),激活环境:

conda activate paddle

操作完成。

 

记录一下常用conda命令:

1 conda update -n base conda  #update最新版本的conda
2 conda create -n xxxx python=3.9  #基于python3.9创建名为xxxx的虚拟环境
3 conda activate xxxx  #开启xxxx虚拟环境
4 conda deactivate  #关闭当前虚拟环境
5 conda info -e  #显示所有的虚拟环境
6 conda remove -n xxxx --all  #删除XXXX虚拟环境

 

二、安装Paddlepaddle和Paddlex

1、Paddlepaddle

打开官方网址,选择配置:

https://www.paddlepaddle.org.cn/

 复制安装命令(版本修改为2.1.2),在终端运行,静待paddlepaddle安装完成。

conda install paddlepaddle==2.1.2 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/

2、Paddlex

PaddleX依赖的pycocotools包,需要用Microsoft Visual C++ 14.0以上的build工具,如果系统里没有,要先装好VC build tools再执行下面的操作。

打开官方提供的源码网址,下载Paddlex2.0.0,保存到自己的源码文件夹里:

https://gitee.com/paddlepaddle/PaddleX

注意:咱没有GPU,所以在下载的文件里,打开requirements.txt,删除里面的paddlepaddle-gpu==2.1.2

 在终端进入requirements.txt所在路径,安装所需的包(用清华的源),命令为:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

注意:批量安装出错时,可以单独安装所需的包,然后再批量安装。可能需要重复几次,此处需要些耐心😵。

最后一步不要忘了: 

python setup.py install

 

三、跑个极简例程

在Pycharm新建一个项目,选刚才建好的环境“paddle”。

1、准备数据集

下载蔬菜数据集并解压:

https://bj.bcebos.com/paddlex/datasets/vegetables_cls.tar.gz

把蔬菜数据集文件夹“vegetables_cls”放到项目的根目录下。

2、三步完成训练

经过图像预处理、数据集加载和选择模型三步,实现一个简单的图像分类训练,训练程序train.py代码如下:

from paddlex import transforms as T
import paddlex as pdx

#定义训练/验证图像处理流程transforms
train_transforms = T.Compose([
    T.RandomCrop(crop_size=224),
    T.RandomHorizontalFlip(),
    T.Normalize()])

eval_transforms = T.Compose([
    T.ResizeByShort(short_size=256),
    T.CenterCrop(crop_size=224),
    T.Normalize()
])

#加载图像分类数据集
train_dataset = pdx.datasets.ImageNet(
    data_dir='vegetables_cls',
    file_list='vegetables_cls/train_list.txt',
    label_list='vegetables_cls/labels.txt',
    transforms=train_transforms,
    shuffle=True)
eval_dataset = pdx.datasets.ImageNet(
    data_dir='vegetables_cls',
    file_list='vegetables_cls/val_list.txt',
    label_list='vegetables_cls/labels.txt',
    transforms=eval_transforms)

#使用MobileNetV3_small模型开始训练
num_classes = len(train_dataset.labels)
model = pdx.cls.MobileNetV3_small(num_classes=num_classes)

model.train(num_epochs=10,
            train_dataset=train_dataset,
            train_batch_size=32,
            eval_dataset=eval_dataset,
            lr_decay_epochs=[4, 6, 8],
            save_dir='output/mobilenetv3_small',
            use_vdl=True)

我的四核十代i5笔记本,训练10轮用了半个小时😂,不过终于有结果了。训练的时候,可以在终端输入如下命令,可以启动服务查看训练情况:

visualdl --logdir output/mobilenetv3_small --port 8001

在浏览器里,通过本地的8001端口看图形化训练数据:

https://localhost:8001

3、用训练的模型预测一下

从网上随便找了张胡萝卜图片,命名为hlb1.jpeg,放到vegetables_cls文件夹下。

运行预测程序predict.py试试,代码如下:

import paddlex as pdx
model = pdx.load_model('output/mobilenetv3_small/best_model')
result = model.predict('vegetables_cls/hlb1.jpeg')
print("Predict Result: ", result)

不管程序的UserWarning,没办法,咱没有GPU,等5秒出结果了,是“huluobo”,预测正确😅


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM