机器学习与深度学习(Python版·微课视频版)
上QQ阅读APP看书,第一时间看更新

1.1 安装环境

Python的应用范围非常广泛,包括且不限于科学计算、人工智能、大数据、云计算、网站开发、游戏开发等领域。Python的强大功能来自于它的数量庞大、功能完善的第三方扩展库(也称为包或者模块,package),本书只涉及其中与机器学习相关的扩展库。

Python可应用于不同领域业务开发的第三方扩展库一般来自不同的机构。它们不仅数量庞大,而且相互存在复杂的依赖关系,维护管理起来很麻烦。Anaconda是一个可对Python及其常用扩展库进行下载、安装和自动管理的软件。Anaconda支持Windows、Linux和macOS等操作系统。考虑到大部分初学者都使用Windows操作系统,因此,本书以Windows下的安装步骤为例来介绍Anaconda的安装。

1.1.1 几个重要的概念

初学者在使用Anaconda之前,需要了解几个重要的概念。

1.图形化管理与命令行管理

Anaconda对包、环境等的管理可以通过图形化界面和命令行界面来进行,分别称为Navigator(图1-1)和Conda(图1-5)。在管理效果上,两者没有区别。但是,Conda的操作方式在Windows、Linux和macOS等操作系统上保持一致,且响应速度相比Navigator一般要快一些,因此受到大部分使用者的欢迎。本书的相关操作主要用命令行的方式进行。

图1-1 图形化管理界面

2.环境

如前文所述,Python的扩展库之间存在复杂的依赖关系,一个包可能依赖于其他多个包才能正常运行,而其他包又可能需要依赖另外的包。Anaconda中的环境可用来隔离不同应用开发的包依赖关系。比如,当需要同时开发机器学习应用和网络应用时,可以分别放在两个不同的环境中,以免相互影响而产生意想不到的干扰。环境还可以用来区别不同的版本,比如有的程序要求用Python 3开发,而有的程序要求用Python 2开发。总之,在Anaconda上可以建立多个用于不同开发目的的环境,它们互不干扰。此外,建好的环境还可以整体迁移到其他计算机上,在一些不能接入互联网的计算机上安装开发环境时,这一点十分有用。

3.下载源

Anaconda可以对常用扩展库进行自动下载,但由于它的官方服务器在国外,国内大部分用户的下载速度很慢。国内清华大学、中国科技大学等提供了镜像服务,使用这些下载源的下载速度相对快得多。实际使用时,下载源一般要更换为国内的镜像服务器。

1.1.2 安装Anaconda

可到Anaconda官方网站(1)下载安装包。如果官方网站下载速度不稳定,可到清华大学开源软件镜像站(2),选择合适版本的安装软件下载。本书选择Anaconda3-2019.10-Windows-x86_64.exe文件(64位Windows操作系统版本)。下载后进行安装,初始界面如图1-2所示。

图1-2 Anaconda初始安装界面

在连续选择Next(下一步)和Agree(同意)后,来到安装目录界面,界面如图1-3所示。本书的实验环境安装到E:\Anaconda3文件夹,读者可根据需要选择合适的安装目录。

图1-3 Anaconda安装目录界面

在安装完成后,在“开始”菜单里会出现Anaconda3的程序组,如图1-4所示。

在Anaconda3程序组里单击Anaconda Navigator,启动Navigator图形化管理界面,如图1-1所示。

图1-4 Anaconda3程序组

在Anaconda3程序组里单击Anaconda Prompt启动Conda命令行管理界面,成功启动后输入conda-V和conda list命令,分别查看Anaconda的版本号和已经默认安装的包及其版本号,如图1-5所示。

图1-5 命令行管理界面

输入python-V命令可以查看该版本的Anaconda默认安装的Python的版本为3.7.4。输入python命令,启动交互式编程模式,第一行指出了Python的版本。在“>>>”后输入print("Hello,World!")语句后按Enter键,将在下一行输出“Hello,World!”。print语句的作用是输出一段指定的字符串。以上操作如图1-6所示。

图1-6 命令行下查看Python版本并输出“Hello,World!”

1.1.3 开发环境

本书采用Anaconda自带的Spyder和Jupyter Notebook作为开发环境。Spyder是图形化集成开发环境,在Anaconda程序组里选择单击Spyder,或者在Conda命令行管理界面里输入spyder命令启动Spyder,如图1-7所示。启动之后,默认会打开一个名为tmp.py的临时代码文件。在其中新的一行输入print("Hello,World!")语句,单击工具栏中的绿色三角运行(初次运行时会出现如图1-8所示的运行配置窗口,一般选择默认值即可),将在右下的输出窗口中输出“Hello,World!”。

在菜单栏File项选择Save as命令,可将文件改名,另存到任意文件夹。

Jupyter Notebook(此前被称为IPython Notebook)是一个交互式笔记本,支持运行40多种编程语言。它是一个Web应用程序,可将代码、文本说明、数学方程、图表等集合在一个文档里。它的优点是表达能力非常强,便于交流。现在很多资料都采用Jupyter格式。Jupyter Notebook成为同行交流的重要工具。

为了便于说明,本书的大部分示例程序都以Jupyter格式提供。该格式的程序不便于查看数据变化过程,读者可以将该格式的代码复制到Spyder中运行,用Spyder提供的单步跟踪等功能来观察数据的变化,以加深对算法运行过程的理解。

有关程序设计工具的使用方法,可以参考相关网站,不难掌握,这里不再赘述。

图1-7 Spyder集成开发环境并输出Hello,World!

图1-8 Spyder环境中初次运行时环境配置界面

在Python交互式编程界面中输入quit()语句退出交互式编程模式。在Conda命令行管理界面中,用cd命令进入工作目录(作者使用的工作目录为E:\working),输入jupyter notebook命令(如图1-9所示)。在浏览器中启动Jupyter Notebook,工作目录初始为空目录,单击右上角的new按钮,选择其中的Python 3建立一个新的代码文件,以上过程如图1-10所示。

图1-9 命令行启动Jupyter Notebook

图1-10 在浏览器中打开Jupyter Notebook并新建一个代码文件

在新打开的窗口的第一行输入print("Hello,World!")语句,单击工具栏中的Run按钮或者按Shift+Enter键使程序运行后,会在该行下面输出Hello,World!,如图1-11所示。单击File菜单,选择其中的Rename项,可以将保存在工作目录下的文件更名为hello. ipynb。可见在Jupyter Notebook中,可以实行交互编程,还可以保存运行过程供以后再次使用。

本节和1.1.2节演示了Python的命令行交互、Spyder集成开发环境和Jupyter Notebook开发环境编程。

本书的示例主要采用Spyder集成开发环境和Jupyter Notebook开发环境来完成。需要注意的是,Jupyter Notebook中可以嵌入详细的说明,便于交流;而Spyder集成开发环境可以单步跟踪代码运行情况,观察数据的变化,这样有利于理解算法的运行过程。当然,两个环境并不矛盾,在一个环境中写的代码很容易移植到另一个环境中运行,读者可以根据需要选择、应用。

图1-11 Jupyter Notebook编程环境中的Hello,World!程序

关于编程环境的问题,读者可以在需要的时候上网查询更复杂的操作,不难掌握。

下面来安装本书要使用的sklearn机器学习扩展库、TensorFlow 2深度学习框架和MindSpore深度学习框架。按照支持计算平台的不同(TensorFlow 2支持CPU、GPU和谷歌自研的TPU平台,MindSpore支持CPU、GPU和华为自研的昇腾平台),MindSpore和TensorFlow 2深度学习框架分为不同的版本。本书面向初学者,示例基于最基本的CPU平台实现,虽然运行速度较慢,但不影响对原理的理解。因此,这里只介绍安装支持CPU平台的版本。如果不能一次安装成功,可到网上查阅解决办法。

1)先将下载源更换为清华大学镜像站

在Conda命令行管理界面中,输入如下四条命令(可到网上搜索相关内容,直接复制到Conda命令行管理界面中执行即可):

成功执行后,即将默认下载源更换为清华大学的镜像站,如图1-12所示。最后一条命令是设置提示通道地址。

2)新建一个专用于机器学习的名为ml的环境

在Conda命令行管理界面中输入并执行conda create-n ml命令后,即新建一个名为ml的环境,如图1-13所示。

3)安装扩展库

新建环境是空环境,需要安装各种库,Anaconda会自动安装各种依赖库。安装库的命令为conda install∗∗∗。

输入并执行activate ml命令切换到新建的ml环境中。

图1-12 Conda环境下更换下载源

图1-13 Conda环境下新建环境

输入并执行以下命令以安装本书示例所使用的库:

     conda install python=3.7.5
     conda install scikit-learn=0.23.2
     conda install tensorflow=2.0.0

下面介绍如何安装MindSpore深度学习框架。因MindSpore尚处于快速发展和完善当中,本书基于MindSpore实现的示例源码将适时增加和更新,请读者持续关注本书附带的源码资源。

安装目前最新1.2.1版本的MindSpore深度学习框架的命令为:

     pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.2.1/MindSpore/cpu/
     windows_x64/mindspore-1.2.1-cp37-cp37m-win_amd64.whl--trusted-host ms-release.
     obs.cn-north-4.myhuaweicloud.com-i https://pypi.tuna.tsinghua.edu.cn/simple

读者可在本书附带的源码资源的“代码适用的环境说明.txt”文件中直接复制得到该命令。

也可以到MindSpore官网的安装页面(3),按设备条件生成相应的安装命令,如图1-14所示。图中硬件平台的Ascend是指华为自研的“昇腾”人工智能处理器,本书的示例不要求安装该处理器,选择CPU作为硬件平台即可。截至本书完稿,MindSpore只支持3.7.5版本的Python。

图1-14 MindSpore官网的获取安装命令页面

将生成的安装命令复制到Python命令行交互式运行环境中执行,如无意外,即可安装MindSpore深度学习框架。

安装后,进入Python命令行交互式运行环境,如果能用import语句导入,则说明安装成功,如图1-15所示。

图1-15 在Python命令行交互式运行环境中导入sklearn、TensorFlow和MindSpore模块,并查看版本

在新的环境中,还需要安装各种辅助的库,如编程环境Spyder和Jupyter Notebook等。