前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Win10下配置机器学习python开发环境

Win10下配置机器学习python开发环境

作者头像
云水木石
发布2019-08-14 16:07:58
9520
发布2019-08-14 16:07:58
举报
文章被收录于专栏:大龄程序员的人工智能之路

近期计划写一写机器学习微信小程序的开发教程,但微信开发工具只提供了Windows和Mac OS版本,作为一名长期使用Linux系统的开发人员,虽然始终认为Linux系统才是对开发者最友好的,但微信团队作出这种选择,肯定经过调查。不管我怎样认为Linux系统如何之好,Windows系统毕竟是主流,大多数开发者使用的系统也是Windows系统,所以打算写一写Windows环境下的机器学习开发环境配置,内容包括Python环境、CUDA、IDE以及微信开发者工具等,这是其中的一篇。

由于历史原因,python长期存在两个版本,python 2和python 3,而且存在兼容问题。虽然经过开发者不断的努力,普遍转向Python 3,但Python 2仍然像打不死的小强,顽强的存在着。比如大多数Linux发行版本,python 2依然是默认版本。再加上python社区非常活跃,各种python库也在不停的向前发展,不同版本python库之间不兼容的情况一直存在。有时开发者也很尴尬,比如发布了一个项目到github,会有读者过来问,为什么代码在我这儿出错?

针对这一状况,建议python开发者使用Anaconda。Anaconda是可以便捷获取python包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。使用Anaconda有什么好处呢?

  1. 可以建立python虚拟环境。 比如针对python 2的历史遗留代码,建立一个虚拟环境,针对python 3 新代码,再建立一个虚拟环境,两套环境互相隔离,互不影响。不会因为在安装了一个python 2的包,而使得python 3代码无法执行。Python虚拟环境和虚拟机有所不同,它是一种轻量级的隔离机制,所以在空间和速度上几乎没有额外的开销。
  2. Anaconda是一揽子解决方案 python的用户可能知道,通过安装virtualenv,也可以建立python虚拟环境,但需要下载python,设置环境变量,安装pip,安装virtualenv,…诸多繁琐步骤,而且为了使用方便,可能还要安装wrap脚本。而anaconda作为python环境一揽子解决方案,安装包中包含了python发行包,集成包管理工具,只需要下载和安装一个软件包,即可解决。而且Anaconda支持Windows、Linux及Mac OS系统,在各操作系统下操作一致,减少操作系统迁移的成本。
  3. Anaconda的虚拟环境可复制 Anaconda的虚拟环境可以导出为一张列表,列表上包含环境中所有python包的名称及版本信息,这样他人可以导入该列表,复制出一个一模一样的python虚拟环境。列表为文本文件,便于分享,可以加入git管理,在开发过程中,哪些python库依赖发生了变化,可以追溯。

下面就说说在Windows 10下如何安装和配置Anaconda。

获取Anaconda

和Windows下其它应用软件的安装类似,首先去Anaconda的官网下载安装包,下载地址为:

https://www.anaconda.com/distribution/

建议选择Python 3.7的64位版本:

这里选择python 3.7,并不意味着python虚拟环境只能是python 3,而是默认的python虚拟环境为python 3。虽然python 2的生命力很顽强,但是新写的代码建议用python 3。

安装软件包。根据安装向导进行安装即可,选择安装类型这个步骤需要注意:

建议选择 Just Me 这个选项,如果选择All users,可能需要管理员权限。如果你是系统的管理员用户,这个倒问题不大。

创建python虚拟环境,安装tensorflow

Anaconda安装之后,我们可以看到Windows启动栏多了Anaconda3 (64-bit) 程序组,点击Anaconda Prompt(Anaconda3)

启动Anaconda命令行:

我们可以注意到命令行前面有一个 (base) 字样,这表明当前Anaconda的虚拟环境名为base,这也是Anaconda默认的虚拟环境。

接下来为tensorflow创建一个虚拟环境。因为TensorFlow有支持GPU的版本,如果要TensorFlow支持GPU,还需要额外安装一些软件和配置,先暂时放一放,到下篇文章再详细展开。我们把虚拟环境命名为tensorflow_gpu:

代码语言:javascript
复制
conda create --name tensorflow_gpu

切换到我们创建的tensorflow_gpu虚拟环境:

代码语言:javascript
复制
activate tensorflow_gpu

可以注意到,命令行前面的字样变成了 (tensorflow_gpu) ,表明已经切换到tensorflow_gpu这个虚拟环境:

安装tensorflow-gpu包:

代码语言:javascript
复制
conda install -c anaconda tensorflow-gpu

当然你也可以采用pip的方式进行安装,这个看个人喜好。

可以使用如下的代码进行测试:

代码语言:javascript
复制
import tensorflow as tf

print(tf.__version__)
tf.test.is_gpu_available()

结果如下:

代码语言:javascript
复制
1.13.1

2019-08-09 15:45:13.852793: I tensorflow/core/platform/cpu_feature_guard.cc:141]
 Your CPU supports instructions that this TensorFlow binary was not compiled to
use: AVX AVX2
2019-08-09 15:45:15.069595: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1
433] Found device 0 with properties:
name: GeForce GTX 950M major: 5 minor: 0 memoryClockRate(GHz): 1.124
pciBusID: 0000:01:00.0
totalMemory: 2.00GiB freeMemory: 1.92GiB
2019-08-09 15:45:15.085195: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1
512] Adding visible gpu devices: 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\fra
mework\test_util.py", line 1242, in is_gpu_available
    for local_device in device_lib.list_local_devices():
  File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\cli
ent\device_lib.py", line 41, in list_local_devices
    for s in pywrap_tensorflow.list_devices(session_config=session_config)
  File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\pyw
rap_tensorflow_internal.py", line 1829, in list_devices
    return ListDevices(status)
  File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\fra
mework\errors_impl.py", line 528, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed. S
tatus: CUDA driver version is insufficient for CUDA runtime version

可以看出,tensorflow包导入和使用没有问题,当前使用的TensorFlow 1.13.1版本,但没有GPU支持。如何让TensorFlow支持GPU加速,下一篇文章再详细说明。

如果要退出当前的虚拟环境,可以使用如下命令:

代码语言:javascript
复制
conda deactivate
导出和导入虚拟环境

现在我们创建了一个名为tensorflow_gpu的虚拟环境,如果要分享给他人,可以将环境导出为一个文本文件:

代码语言:javascript
复制
activate tensorflow_gpu

conda env export > c:/tensorflow_gpu.yml

上面的命令将环境导出到tensorflow_gpu.yml文件中,我们可以用文本编辑器打开看一看里面的内容:

代码语言:javascript
复制
name: tensorflow_gpu
channels:
  - anaconda
  - defaults
dependencies:
  - _tflow_select=2.1.0=gpu
  - absl-py=0.7.1=py37_0
  - astor=0.7.1=py37_0
  - blas=1.0=mkl
  - ca-certificates=2019.5.15=0
  - certifi=2019.6.16=py37_0
  - cudatoolkit=10.0.130=0
  - cudnn=7.6.0=cuda10.0_0
  - gast=0.2.2=py37_0
  - grpcio=1.16.1=py37h351948d_1
  - h5py=2.9.0=py37h5e291fa_0
  - hdf5=1.10.4=h7ebc959_0
  - icc_rt=2019.0.0=h0cc432a_1
  - intel-openmp=2019.4=245
  - keras-applications=1.0.8=py_0
  - keras-preprocessing=1.1.0=py_1
  - libprotobuf=3.8.0=h7bd577a_0
  - markdown=3.1.1=py37_0
  - mkl=2019.4=245
  - mkl-service=2.0.2=py37he774522_0
  - mkl_fft=1.0.12=py37h14836fe_0
  - mkl_random=1.0.2=py37h343c172_0
  - mock=3.0.5=py37_0
  - numpy=1.16.4=py37h19fb1c0_0
  - numpy-base=1.16.4=py37hc3f5095_0
  - openssl=1.1.1=he774522_0
  - pip=19.1.1=py37_0
  - protobuf=3.8.0=py37h33f27b4_0
  - pyreadline=2.1=py37_1
  - python=3.7.3=h8c8aaf0_1
  - scipy=1.3.0=py37h29ff71c_0
  - setuptools=41.0.1=py37_0
  - six=1.12.0=py37_0
  - sqlite=3.29.0=he774522_0
  - tensorboard=1.13.1=py37h33f27b4_0
  - tensorflow=1.13.1=gpu_py37h83e5d6a_0
  - tensorflow-base=1.13.1=gpu_py37h871c8ca_0
  - tensorflow-estimator=1.13.0=py_0
  - tensorflow-gpu=1.13.1=h0d30ee6_0
  - termcolor=1.1.0=py37_1
  - vc=14.1=h21ff451_3
  - vs2015_runtime=15.5.2=3
  - werkzeug=0.15.4=py_0
  - wheel=0.33.4=py37_0
  - wincertstore=0.2=py37_0
  - zlib=1.2.11=h62dcd97_3
prefix: C:\Anaconda3\envs\tensorflow_gpu

内容比较容易理解,就是安装了哪些依赖包。除了导出之外,我们还可以手工创建,也可以修改导出的yml文件,比如修改虚拟环境的名称,这属于比较高级的操作,有兴趣可以看看Anaconda官方文档。

他人在得到这份yml文件后,可以复刻Anaconda虚拟环境:

代码语言:javascript
复制
conda env create -f tensorflow_gpu.y

到此,Windows 10下的机器学习python开发环境就配置好了,接下来还需要更进一步,下一篇文章将讲讲Windows 10下GPU的支持,敬请关注。

参考
  1. https://docs.conda.io/projects/conda/en/latest/index.html
  2. Installing a Python Based Machine Learning Environment in Windows 10
  3. Anaconda介绍、安装及使用教程
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云水木石 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取Anaconda
  • 创建python虚拟环境,安装tensorflow
  • 导出和导入虚拟环境
  • 参考
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档