# 一、PaddleStudio概述
本项目源自于[PaddleX](https://github.com/PaddlePaddle/PaddleX)的Restful项目,依托国产深度学习框架[PaddlePaddle](https://www.paddlepaddle.org.cn/)打造的图形化深度学习开发平台,旨在让**非AI开发者以最便捷的方式完成AI模型研发**。目前平台功能涵盖图像分类、目标检测、实例分割、语义分割等常规CV训练任务,未来将逐步打通数据标注、算法研发两大模块,真正的让用户可以感受到“无代码”化的便捷。
由于PaddleX项目官方已停止更新,本项目将PaddleX的GUI部分独立出来并且进行了重组,由**飞桨社区开发者共同维护**,**遵循Apache License 2.0开源协议**,欢迎各位小伙伴前来体验和参与,多多提出您的宝贵意见。
# 二、环境准备
## 2.1 安装PaddlePaddle
PaddleStudio依赖PaddlePaddle框架执行训练,因此首先要安装PaddlePaddle。
参照[PaddlePaddle官网](https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html)进行安装,安装时需要注意CUDA版本的一致性。例如,对于已经安装CUDA11.6的Windows操作系统,可以使用下面的命令安装PaddlePaddle2.4:
```bash
python -m pip install paddlepaddle-gpu==2.4.1.post116 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
```
安装完成后可以使用`python`命令进入python解释器,输入下面的命令:
```python
import paddle
paddle.utils.run_check()
```
如果出现PaddlePaddle is installed successfully!,说明您已成功安装PaddlePaddle。
## 2.2 安装依赖库
首先下载PaddleStudio项目:
```bash
git clone https://github.com/qianbin1989228/PaddleStudio.git
```
然后进入项目根目录并安装相关依赖库:
```bash
cd PaddleStudio
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
```
到这里,PaddleStudio所需要的环境就已经全部准备好了。下面介绍如何启动并使用PaddleStudio。
# 三、基本使用介绍
## 3.1 启动
进入PaddleStudio项目根目录后使用下面的命令进行启动:
```bash
python app.py
```
正常情况下输出如下:
```
2023-01-31 16:38:25,616 app.py[line:1045] INFO:PaddleStudio服务启动成功后,您可以在浏览器打开网址 192.168.8.113:5000 进行界面操作
* Serving Flask app 'app' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
2023-01-31 16:38:25,664 _internal.py[line:224] INFO: * Running on all addresses (0.0.0.0)
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://127.0.0.1:5000
* Running on http://192.168.8.113:5000 (Press CTRL+C to quit)
2023-01-31 16:38:25,667 _internal.py[line:224] INFO: * Restarting with stat
2023-01-31 16:38:26,305 app.py[line:1045] INFO:PaddleStudio服务启动成功后,您可以在浏览器打开网址 192.168.8.113:5000 进行界面操作
2023-01-31 16:38:26,323 _internal.py[line:224] WARNING: * Debugger is active!
2023-01-31 16:38:26,331 _internal.py[line:224] INFO: * Debugger PIN: 339-955-950
2023-01-31 16:38:30,447 _internal.py[line:224] INFO:192.168.8.113 - - [31/Jan/2023 16:38:30] "GET / HTTP/1.1" 200 -
2023-01-31 16:38:30,756 _internal.py[line:224] INFO:192.168.8.113 - - [31/Jan/2023 16:38:30] "GET /project HTTP/1.1" 200 -
2023-01-31 16:38:30,764 _internal.py[line:224] INFO:192.168.8.113 - - [31/Jan/2023 16:38:30] "GET /favicon.ico HTTP/1.1" 200 -
```
成功启动后系统会默认给出PaddleStudio的访问路径,如下例所示:
```bash
http://192.168.8.113:5000
```
此时可以通过浏览器访问该网址打开PaddleStudio平台首页,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/61028cc3846c468dafeb1d844fc84f34.png#pic_center=x300)
需要注意,首次打开时会在当前服务器的PaddleStudio根目录下创建一个名为workspace的文件夹作为工作区,用来存放数据集和模型训练的相关信息。
下面针对常见的图像分类任务讲解如何快速使用PaddleStudio。
## 3.2 快速体验
### 3.2.1 下载示例项目
PaddleStudio提供了每种任务对应的示例项目,方便用户快速了解每种任务的完整操作流程。下面以图像分类项目为例进行讲解。
首先,单击中间提示框“暂无项目,点击下载示例项目”,出现下图所示界面:
![在这里插入图片描述](https://img-blog.csdnimg.cn/57262f74f8c94c7f809670a957203fcf.png#pic_center=x300)
接下来勾选“下载图像分类示例项目”并单击“开始下载”按钮进行下载,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/9267ef91138745a390bf7891e02b7324.png#pic_center=x300)
下载结束后单击“关闭窗口”按钮,在主界面上会出现对应的项目信息,是一个果蔬图像分类任务,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb109f78956a4d19a885dbb0881fd8fe.png#pic_center=x300)
我们可以打开工作区文件夹PaddleStudio/workspace,其中有一个projects文件夹,该文件夹存放了所有项目信息。刚下载的项目其项目号为P0001,因此,对应工作区文件夹路径为PaddleStudio/workspace/projects/P0001。与此同时,在PaddleStudio/workspace/datasets存放着刚下载的数据集,位于D0001子文件夹下面,其内容如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/994cc117f8024231bd5571e87729144c.png#pic_center=x250)
其中bocai、changqiezi、hongxiancai、huluobo、xihongshi、xilanhua这几个文件夹下面各自存放着不同品种的果蔬图片。labels.txt存放着对应的类别标签。train_list.txt、val_list.txt和test_list.txt分别存放着训练集、验证集、测试集的图片路径列表,形式如下所示:
```bash
./bocai/142.jpg 0
./bocai/149.jpg 0
./changqiezi/57.jpg 1
./changqiezi/191.jpg 1
```
每行表示一个样本图片,分成前后两部分,中间用空格分隔,前半部分为图片相对路径,后半部分为对应的类别数字标签。
可以看到,为了尽可能方便PaddlePaddle用户,PaddleStudio沿用了PaddleClas套件的数据集格式基本规则,对于图像分类任务,只需要按照上述格式进行数据集组织即可。
### 3.2.2 训练
单击下载的项目,然后单击项目窗口打开任务配置属性窗口,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/7120a7c5937b4346ba267e6da4473130.png#pic_center=x300)
在该任务所列属性参数中列出了训练所需的重要配置参数,例如模型、骨干网络、迭代轮数等,用户可以根据自己数据集的实际情况进行调整,调整完成后单击“启动训练”按钮开始训练,此时项目的任务状态会显示“训练中”,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1e70d9e0742c474ea938b683107a7e5c.png#pic_center=x300)
可以继续单击主界面上的项目查看训练日志,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/ae16e0d0443048618fecfaf5e2152768.png#pic_center#pic_center=x300)
训练完成后可以单击“评估和导出模型”按钮,进入“模型评估&导出”模块,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/7265c6b6cec347a190cf24e42772a38b.png#pic_center=x200)
### 3.2.3 评估
在“模型评估&导出”界面上,单击启动评估按钮,可以快速进行模型精度验证,结果如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/6927a99188074bed88da68d43dad0934.png#pic_center=x250)
可以看到,当前训练的模型Top1分类准确率Acc1=0.6,Topk分类准确率Acck=1.0。如果想要进一步提高精度,可以在模型训练过程中修改迭代轮数�