DTeam 团队日志

Doer、Delivery、Dream

机器学习开发环境快速搭建

胡键 Posted at — Mar 8, 2019 阅读

作为即将到来的 TensorFlow User Group 西安(TFUG西安)社区活动的预热文章,本文将带领大家快速搭建机器学习开发环境,为后续的机器学习开发打下坚实的基础。即使你已经搭建好了一个环境,我也建议你再看看,说不定会有意外的收获,:)

注意:本文假设你已经安装好了Python。

安装MiniConda

为什么会首先推荐安装MiniConda,而不是像很多的文章那样一开始上来就是:先python,再pip。原因很简单:conda不仅仅支持包管理,同时还能支持环境隔离。这种隔离很重要么?请看下文。

假设你安装TensorFlow时Python的版本是3.6.x,在配置开发环境时,你也未加环境隔离。而且,作为新手(因为老鸟都吃过亏,会考虑建立各种虚拟环境),你很可能从来没有考虑过环境隔离,所有的包都装在全局环境下。某天,因为更新某个包,你顺手将Python升级(当前版本3.7)了。然后,你突然发现TF再也无法正常工作了……

意不意外?吃不吃惊?

导致上面问题产生的原因很简单:TF当前只能工作于Python 3.6.x,而当前它运行的环境已经发生了改变。采用虚拟环境,就能规避这一点。对于有Node和Java经验的读者,可以联想到nvmsdkman

好了,书归正题,在继续后续步骤之前,考虑到国内复杂的网络环境,将pip指向设为豆瓣的地址:创建“~/.pip/pip.conf”(以mac os为例),内容如下:

[global]
index-url = https://pypi.douban.com/simple/

配置完指向,开始实际操作(以mac os为例):

  1. 下载minconda
  2. 安装:bash Miniconda3-latest-MacOSX-x86_64.sh
  3. 创建适合TF的环境:conda create -n tfenv python=3.6.x
  4. 进入刚刚创建的环境:source activate tfenv
  5. 在此环境下通过pip安装常用的机器学习及其相关包:numpy、pandas、scipy、pillow、h5py、matplotlib、scikit-learn、keras、tensorflow。

这里需要留意下。假如你引入matplotlib后,运行程序报类似下面的错误:

ImportError: Python is not installed as a framework. 
The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. 
See the Python documentation for more information on installing Python as a framework on Mac OS X. 
Please either reinstall Python as a framework, or try one of the other backends. 
If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. 
See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.

那么请按下面的步骤修复:

  1. 创建:~/.matplotlib/matplotlibrc
  2. 讲下面的代码加入其中。
backend: TkAgg

关于conda的其他关键命令:

到这一步完成,大家可以进入自己的环境,然后在命令行下看看Python是否是合适版本,同时敲下文档和书中证明环境安装成功的那几句话试试了。

配置编辑器:vscode

之前,我都会推荐用pyCharm来作为Python编辑器,但现在更偏爱更轻量的vscode:

  1. 安装微软官方的Python插件
  2. 选择conda为python解释器:
    • 进入【设置】页面,选择【用户设置】,选择【扩展】-【Python】
    • 找到【Conda Path】,将它设置为conda所在位置,如:/Users/foxgem/miniconda3/bin/conda
  3. 为了能在编辑文件时可以享受到自动联想,需要配置当前用的Python解释器使用conda env(这一步很关键,否则你在自己环境中安装的那些包如keras无法在编辑时被联想到):
  4. 配置代码格式化插件
    • 输入:shift + cmd + f,此时会提示安装格式化插件
    • 选择用pip安装,它会打开终端激活环境,在当前环境下使用pip install你选择的格式化包(一般用yapf)。

至此,你已经有了一个不错的开端,可以自由地去书写代码了!更多关于TensorFlow和机器学习的话题,欢迎来3月16日的活动现场(记得填写报名单)感受。

关于TFUG西安

TFUG 是 TensorFlow User Group 的简称。它旨在提供一个这样的地方:每一位 TensorFlow 开发者可以分享、交流和互促互进的社区。

目前西安社区正在征集社区讲师,如果你对TensorFlow和机器学习充满热情,热爱分享,渴望结识新的朋友,请填写我们的社区讲师申请表格(仅限西安本地),我们将在审核完毕之后迅速联系各位。