【项目01】Python机器学习环境的安装和配置

作者:欧新宇(Xinyu OU)
开发平台:Paddle 2.1
运行环境:Intel Core i7-7700K CPU 4.2GHz, nVidia GeForce GTX 1080 Ti

本教案所涉及的数据集仅用于教学和交流使用,请勿用作商用。

最后更新:2021年10月31日


为了简化说明,该版本移除了前作中的`极简Python环境安装`,如有需要可访问: 《Python机器学习环境的安装和配置v1》版本按照说明。

本安装说明为**“基于PaddlePaddle的Python深度学习环境”**的安装指南,适用于《程序设计基础(Python)》, 《计算机数学(Python)》,《机器学习》,《深度学习》,《计算机视觉》等课程。 本教案基于Python集成安装包Anaconda,同时使用VSCode编程环境和JupyterLab编程环境作为开发环境。VScode适用于调试完整的Python代码,并将整个项目的所有代码都保存为*.py文件进行发布。Jupyterlab适用于独立代码和模型的调试,特别适合于数据分析和可视化分析。

原则上,安装顺序请按照以下序号流程。

一. Python环境的安装和配置

1.1 Python的安装

Python编程环境的安装包含两种方法:

  1. 基于Python官网原生Python安装程序(不推荐)
  2. 基于第三方封装版Python,此处推荐Anaconda。Anaconda包含了大量的Python库函数,包括机器学习开发库scikit-learn,基础科学计算库Numpy,数据分析工具Pandas,绘图库Matplotlib等。
    • 版本:Anaconda3-2021.05-Windows-x86_64,Python版本3.8
    • URL:https://www.anaconda.com/products/individual
    • 安装过程较为简单,但后续需要安装各种库时,均需要打开【Anaconda Prompt (Anaconda3)】命令提示行进行安装,包括在《程序设计基础(Python)》课程中使用到的jieba和wordcloud库。

安装时,应注意:1. 勾选"Install for Just Me"; 2. 将相关链接库文件添加到PATH中。

1.2 Python环境的测试

1.3 安装Python课程所需要的其他库文件

二. 集成开发环境的安装和配置

2.1 Visual Studio Code (VSCode) 编程环境的安装与配置

2.1.1 VSCode的安装

2.1.2 VSCode的配置 (可选,但更丰富的插件有利于提高开发效率)

VSCode的强大之处来源于各种插件,下面将推荐一些常用及好用的插件。安装时,首先打开左边的【Extensions】标签(4个小方块),或按快捷键【Ctrl+Shift+X】打开插件管理界面。输入插件名称,并点击插件旁的【Install】按钮。

2.2 JupyterLab 编程环境的安装与配置

JupyterLab是Anaconda内置的Jupyter Notebook的升级版,完全兼容Notebook开发环境,但在使用上更方便,也集成了一些新的特性。

2.2.1 JupyterLab的安装

若已经使用最新版本的Anaconda3-2021.05-Windows-x86_64进行Python的安装,则可以直接跳过JupyterLab的安装,该版本的Anaconda已经内置了JupyterLab3.0.14. 否则,请参照下面的提示进行安装。

JupyterLab支持conda安装和pip安装两种模式,但conda方式经常会遇到连接失败的问题,因此建议pip模式进行安装。

>> conda install jupyterlab>> pip install jupyterlab

>> conda update jupyter_core jupyter_client

2.2.2 JupyterLab的配置 (可选)

JupyterLab最重要的配置是初始路径的配置,下面介绍一种最简单有效的方法:在桌面创建批处理(*.bat)快捷方式。该方法可以实现多个路径的同时配置。

  1. 在桌面上新建一个文本文件,输入以下字段
C:\Users\Administrator\anaconda3\Scripts\jupyter-lab.exe  D:\Workspace\DeepLearning

PS: 以上文件包含两个路径,前者为jupyter-lab.exe的路径,后者为工作任务路径。当存在多个工作任务时,只需为每个任务单独建立一个bat批处理文件即可
  1. 另存为MyJupyterLab.bat (或DeepLerning.bat, ComputerVision.bat, ComputerMath.bat)

  2. 使用时,只需要双击该批处理(*.bat)文件即可

三. Python深度学习环境的安装和配置

以下必需工具包适应于《教育部1+X项目"计算机视觉应用开发"》所涉及的绝大部分课程。具体包括: 百度PaddlePaddle, LabelMe数据标注工具,opencv-python计算机视觉和机器学习软件库,mscoco库导入工具等。

3.1 百度飞桨PaddlePaddle的安装调试

飞桨的安装和测试比较容易,可以直接参考官网:https://www.paddlepaddle.org.cn/install/quick

值得注意的是,如果需要启用GPU模式,需要先安装 cuda10 及 cudnn-10.0-windows10 (具体版本请参考官网paddlepaddle安装说明)

3.2 LabelMe标注工具

LabelMe标注工具的安装,需要先安装图形界面编辑工具pyqt,同时需要安装pycocotools。

  1. 启动【Anaconda Prompt (Anaconda3)】,并执行以下命令:

>> conda create –name=labelme

>> conda install pyqt

>> pip install labelme

  1. 安装pycocotoos工具包

>> 下载并安装VS14:http://go.microsoft.com/fwlink/?LinkId=691126

>> pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

  1. 测试LabelMe: 打开命令行,并执行:

>> labelme

3.3 opencv-python

>> pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple/

>> pip install opencv-contrib-python # OpenCV第三方库contrib,支持一些基于opencv的第三方开发包

测试:启动Python,并载入opencv库

>> python

>> import cv2

四. Windows本地环境配置

4.1 Windows文件夹的设置

通常情况下,深度学习项目所涉及的输入、输出较多且复杂,且都需要在程序中进行配置。较为规范的文件夹结构有利于项目的规范运行。下面给出一种典型设置。

首先,在数据盘 D盘 新建一个根目录文件夹 D:/WorsSpace。然后,在该根目录中分别建立6个不同的文件夹,具体功能如下图所示。

本地目录结构

在程序中,通常需要对这些文件夹和项目的基本信息进行定义,包括数据集的根目录 dataset_root_path,训练过程的输出路径 result_root_path, 部署文件夹路径 deployment_root_path

# 1. 定义根参数
train_parameters = {
    'project_name': 'Project07Alexnet',                             # 定义项目名称
    'dataset_name': 'Butterfly',                                    # 定义数据集名称
    'architecture': 'Alexnet',                                      # 定义模型名称
    'dataset_root_path': 'D:\\Workspace\\ExpDatasets\\',            # 定义数据集初始根路径
    'result_root_path': 'D:\\Workspace\\ExpResults\\',              # 定义输出结果的初始根路径
    'deployment_root_path': 'D:\\Workspace\\ExpDeployments\\'       # 定义项目部署的初始根路径
}

model_name = train_parameters['dataset_name'] + '_' + train_parameters['architecture']      # 按照 "数据集名称_模型名称"的格式定义模型名称

# 2. 定义数据集路径
dataset_root_path = os.path.join(train_parameters['dataset_root_path'], train_parameters['dataset_name'])    # 重写本项目的数据集根路径
json_dataset_info = os.path.join(dataset_root_path, 'dataset_info.json')                                     # 定义数据集信息json文件的读取路径

# 3. 定义训练过程涉及的相关路径
result_root_path = os.path.join(train_parameters['result_root_path'], train_parameters['project_name'], model_name)          # 重写本项目的结果路径
checkpoint_models_path = os.path.join(result_root_path, 'checkpoint_models')                                                 # 迭代训练模型保存路径
final_models_path = os.path.join(result_root_path, 'final_models')                                                           # 最终用于部署和推理的模型
final_figures_path = os.path.join(result_root_path, 'final_figures')                                                         # 训练过程曲线图
logs_path = os.path.join(result_root_path, 'logs')                                                                           # 训练过程日志

# 4. 顶一个验证、测试及布署时的相关路径(文件)
deployment_root_path = os.path.join(train_parameters['deployment_root_path'], train_parameters['project_name'], model_name)  # 重写本项目的部署路径
deployment_checkpoint_path = os.path.join(deployment_root_path, 'checkpoint_models')                                         # 定义迭代训练模型的读取路径
deployment_final_models_path = os.path.join(deployment_root_path, 'final_models')                                            # 定义部署模型的路径
deployment_final_figure_path = os.path.join(deployment_root_path, 'final_figures')                                           # 定义模型训练的结果路径
deployment_logs_path = os.path.join(deployment_root_path, 'logs')                                                            # 定义模型训练的日志路径
deployment_final_models = os.path.join(deployment_final_models_path, 'final_models', model_name + '_final')                  # 定义部署模型路径中的final模型

4.2 JupyterLab的设置

请参考本教案 2.2.2 JupyterLab的配置 (可选)

4.3 VSCode的设置

打开 VSCode,在菜单栏的左上角选择 文件 将文件夹添加到工作区,并选择 D:/WorkSpace 完成Windows目录和VSCode的关联。

五. 机器学习必需库的安装和测试

  基于Anaconda开发包安装的Python,已经包含了大多数机器学习和数据分析所需的第三方库,因此不需要再进行额外安装。但如果是基于官方版的Python,则需要额外进行安装,请各位自行查阅安装方法。

1. Paddle 环境的测试

运行如下代码,如果出现 installed successfully, 则说明Paddle安装成功。

2. 基于OpenCV的图像分割

3. Numpy 基础科学计算库

  Numpy是Python中最基础的科学计算库,它的功能主要包括高位数组(Array)计算、线性代数计算、傅里叶变换以及产生伪随机数等。Numpy是机器学习库scikit-learn的重要组成部分,因为机器学习库scikit-learn主要依赖于数组形式的数据来进行处理。

更多信息请参考:RUNOOB站的Numpy栏目:https://www.runoob.com/numpy/numpy-tutorial.html

【知识点】[Numpy基础科学库极简使用说明](functions/reshape.ipynb)

  以下代码用于测试和生成一个数组。

4. Scipy 科学计算工具集

  Scipy是Python中用于进行科学计算的工具集,它可以实现计算机统计学分布、信号处理、线性代数方程等功能。在机器学习中,稀疏矩阵的使用非常频繁,Scipy库中的sparse函数可以用来生成这种稀疏矩阵。稀疏矩阵用于存储那些大部分数值为0的np数组。以下代码用使用sparse()函数生成和测试稀疏矩阵。

5. Pandas 数据分析工具

  Pandas是Python中进行数据分析的库,它具有以下功能

6. Matplotlib 绘图库

  matplotlib是Python中最重要的绘图库,它可以生成出版质量级别的图形,包括折线图、散点图、直方图等。

以下代码用于生成一个表达式为:$y=x^3+2x^2+6x+5$ 的曲线图。

7. scikit-learn 机器学习库

  scikit-learn是Python中最重要的机器学习模块之一。它基于Scipy库,在不同的领域中已经发展出大量基于Scipy的工具包,它们被统一称为Scikits,其中最著名的一个分支就是scikit-learn。它包含众多的机器学习算法,主要分为六大类:分类、回归、聚类、数据降维、模型选择和数据预处理。下列给出一个使用scikit-learn进行分类的简单例子。在下例中会随机生成包含300个具有两种属性数据的数据集,然后利用简单的SVM分类器实现分类。

1. 加载分类模型和可视化模块所需要的库文件

2. 生成数据集

3. 可视化数据并计算分类精度