搭建一个新手学习AI/ML的Python环境

不知不觉消失了好久,公众号也很久没有更新了。因为跑去学习微软AI方向的MPP课程了。MPP是目前微软最先提供关于AI的培训课程,关于MPP的学习体系,我后面会再写一篇简单的介绍。

???? MPP包含了很多的内容,开始学习的时候速度还挺快,到后面越来越艰涩。这也是很久没有精力去更新内容的原因之一。在学习的过程中,逐步接触到了AI或者ML所需要的Python环境。还记得我们之前的介绍吗?通过Python去调用AI的很多API,来快速实现AI的一些功能。

??? 在学习Azure AI的API的eDoc的时候,就发现有一些示例代码使用了Jupyter Notebook来体现。当时觉得,我有Python不就好了吗?原汁原味地学习代码。到了MPP课程中“强制”使用了notebook之后,发现这种方式确实很方便学习。这么解释吧,我复制完示例代码,然后来运行之前,会尝试阅读代码,然后加上自己的注释。而notebook能将注释或者笔记部分,单独写成md格式的块。代码则分列到另外的代码块。这样就非常便于阅读背景信息和笔记,而同时方便的运行调试代码。

??? 另外,很多AI或者ML的课程,也会以notebook的文件格式提供笔记本帮助学习,所以,拥有一个notebook的环境还是很有必要的。下面我们就来尝试使用最复杂的搭建方式,搭建一个notebook环境。

??? 还记得第一次使用VS Code写Python的时候,会给代码格式评分,规范化也是学习代码的一部分,所以pylint还是需要的:
astroid-1.6.3 / isort-4.3.4 / lazy-object-proxy-1.3.1 / mccabe-0.6.1 / pylint-1.8.4 / wrapt-1.10.11

??? 这么多AI的API都是以Web服务方式提供,快速调用API就离不开requests了:

certifi-2018.4.16 / chardet-3.0.4 / idna-2.6 / requests-2.18.4 / urllib3-1.22

??? 进行数据处理怎么可以少了numpy?啥代码貌似都要array啊~
numpy-1.14.2

??? 同样,进行ML处理数据,pandas也是不可或缺滴~

pandas-0.22.0 / pytz-2018.4

??? 各种画图各种展现,没有matplotlib咋整?

cycler-0.10.0 / kiwisolver-1.0.1 / matplotlib-2.2.2 / pyparsing-2.2.0

??? 安装notebook就复杂点了,依赖的库有点多~

MarkupSafe-1.0 / Send2Trash-1.5.0 / backcall-0.1.0 / bleach-2.1.3 / decorator-4.3.0 / entrypoints-0.2.3 / html5lib-1.0.1 / ipykernel-4.8.2 / ipython-6.3.1 / ipython-genutils-0.2.0 / ipywidgets-7.2.1 / jedi-0.12.0 / jinja2-2.10 / jsonschema-2.6.0 / jupyter-1.0.0 / jupyter-client-5.2.3 / jupyter-console-5.2.0 / jupyter-core-4.4.0 / mistune-0.8.3 / nbconvert-5.3.1 / nbformat-4.4.0 / notebook-5.4.1 / pandocfilters-1.4.2 / parso-0.2.0 / pickleshare-0.7.4 / prompt-toolkit-1.0.15 / pygments-2.2.0 / python-dateutil-2.7.2 / pywinpty-0.5.1 / pyzmq-17.0.0 / qtconsole-4.3.1 / simplegeneric-0.8.1 / terminado-0.8.1 / testpath-0.3.1 / tornado-5.0.2 / traitlets-4.3.2 / wcwidth-0.1.7 / webencodings-0.5.1 / widgetsnbextension-3.2.1

??? 然后要做MPP的实验,自然少不了需要微软的人工智能工具库 CNTK~ 课程也挺奇怪,要求2.0版本,后面的课程则要求更新的版本,先安装2.0的

scipy-1.0.1 / cntk-2.0

??? 其实以上列举这么多库,没有太大的意义,在使用pip安装的时候,就会自动按照依存关系去安装需要的库。那我为什么把这些库都列出来呢?两个原因,第一,如果我们需要离线安装;第二,由于都知道的原因,访问默认库分发的时候,经常干扰HTTPS流量导致下载失败。这时就可以按照以上的清单,去pypi网站上照方抓药了。

??? 安装完毕,就能在本地使用notebook跑起来了。

??? 说了这么多,没有更方便的办法吗?有!

??? 其实MPP课程中使用了Anaconda来搭建用于学习AI/ML的环境。使用Anaconda可以方便的图形化管理你的环境。不过我看看安装文件就已经好几百M,想想变形本可怜的200G空间,就没安装了。

???? 那么,还有没有方便的办法呢?有!

???? 访问 https://notebooks.azure.com? 啥东西都不用装,打开就能用。

???? 学完ML的课程,感觉还是一脸懵~还需要时间再消化消化,不过环境需要更新了。更新CNTK倒是简单:

PS C:\WINDOWS\system32> pip install cntk --upgrade
Collecting cntk
?? Downloading https://files.pythonhosted.org/packages/e0/66/bd529934288094c4a4a7110fa6797669d95ffa7fc3687275a5541b80a281/cntk-2.5.1-cp36-cp36m-win_amd64.whl (63.7MB)
???? 100% |████████████████████████████████| 63.7MB 181kB/s
Requirement not upgraded as not directly required: scipy>=0.17 in c:\program files\python36\lib\site-packages (from cntk) (1.0.1)
Requirement not upgraded as not directly required: numpy>=1.11 in c:\program files\python36\lib\site-packages (from cntk) (1.14.2)
Installing collected packages: cntk
?? Found existing installation: cntk 2.0
???? Uninstalling cntk-2.0:
?????? Successfully uninstalled cntk-2.0
Successfully installed cntk-2.5.1

??? 因为安装CNTK 2.0的时候,依赖的scipy和numpy库已经是当时最新,所以没有自动更新。不过我还是自己手动刷到最新版了。

??? 然后,需要加上OpenCV了。去官网看了看,默认的支持是Python 2.7……这咋整啊?翻了翻网页,貌似有非官方的库提供了,既然大家都用,那就别犹豫了,装上:

PS C:\WINDOWS\system32> pip install opencv_python
Collecting opencv_python
?? Downloading https://files.pythonhosted.org/packages/4c/25/151aeb11e80f99b97d3eb93a2c98bcacd857f28c4fb8865eb0201d800e97/opencv_python-3.4.0.12-cp36-cp36m-win_amd64.whl (33.3MB)
???? 100% |████████████████████████████████| 33.4MB 581kB/s
Requirement already satisfied: numpy>=1.11.3 in c:\program files\python36\lib\site-packages (from opencv_python) (1.14.3)
Installing collected packages: opencv-python
Successfully installed opencv-python-3.4.0.12

???? 验证一下安装:
PS C:\WINDOWS\system32> python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
3.4.0

???? 貌似这里有更新的版本,不过没再手动下载安装了。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

??? 对了,在升级Python本身的时候,遇到一个有意思的错误:

C:\Personal\Hao.Hu\My Codes>jupyter
Fatal error in launcher: Unable to create process using ‘""c:\program files\python36\python.exe"? "C:\Program Files\Python36\Scripts\jupyter.exe" ‘

??? 查了一下,跟路径设置导致编译时生成的exe的路径出错有关。折腾了一番,改了路径然后重新安装库,再次编译的exe就没问题了。

原文地址:http://blog.51cto.com/haohu/2113447

时间: 2024-07-31 11:29:26

搭建一个新手学习AI/ML的Python环境的相关文章

搭建一个Oracle到Oracle的Goldengate双向复制环境

目标:搭建一个Oracle到Oracle的Goldengate双向复制环境(支持DDL+DML). 环境: OS:Red Hat Enterprise Linux Server release 5.5 (Tikanga) DB:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production gg1和gg2互为source和target,所处OS和所安DB均一样. 一.安装GG 在gg1和gg2都运行例如以下操作: (1

Python新手学习基础之初识python——与众不同2

看完了Python的缩进,现在来看看Python的标识符.引号和注释. 标识符 关于Python的标识符,其实不是与众不同,只是有一定的规则. 标识符是编程时使用的名字.在Python中,标识符有几点要素: 第一个字符必须是字母或者下划线 _ : 标识符的的其他部分必须由数字.字母.下划线组成: 标识符对字母的大小写敏感. 引号 Python的字符串通常可以用单引号 ' ' .双引号 " " .双三引号 """ """或单三引

SSM框架搭建,新手学习中,欢迎指教

1.前言 最近项目中用到了spring+mybatis框架,闲暇之余,自己就想搭一套SSM(spring+springMVC+mybatis)的框架,结果发现并没有自己想象的那么简单,看了网上的很多教程,最多的就是那个用maven搭建的SSM,起初自己也想用maven搭建,后来出现种种问题,就没用,直接用jar包,下次熟练了再用maven搭一个.废话不说,直接开始. 2.版本介绍 3.新建一个web项目SSM 4.引入jar包,附录会有jar包下载地址,这里我的jar包比较多,里面很多是源码包,

Python新手学习基础之初识python——与众不同1

Python是什么? 首先我们先简单介绍下python这门语言,Python是一种解释性的脚本语言,它不需要像C/C++那样先编译再执行,也不像JS那样可以在浏览器上直接执行.它为我们提供的基础代码库覆盖了网络.文件.GUI.数据库.文本等大量内容,你可以直接使用Python提供的功能而不用重新开始写.Python在服务端开发,GUI,数据挖掘等等各种领域都能很好的被运用......and so on想要多了解的朋友,可以自行度娘下吧. 知道了Python这门语言之后,我们也需要对它的语言特点进

一个新手学习WCF的第一个实例

一.概述 WCF说白了就是一个基于终结点的通信手段!就是Service端提供一定的功能实现,然后暴露出一个或多个终结点,Client端调用Service端的功能(可以理解为调用一个函数),那么Client端是通过何种方式来匹配呢?就是通过匹配Service端暴露出的终结点,既然是匹配,那就说明终结点有一定的属性,这就是我们说的ABC: A=address(地址) B=Binding(绑定) C=Contract(契约) 怎么来让大家更通俗的了解ABC呢?这里我引用园里的一位老师的的一个例子: 有

hyper-v中搭建本地服务器linux(CentOS 7)的python环境

新建虚拟机->安装CentOS7->新建虚拟交换机:内部网络->CentOS7设置->网络适配器:虚拟交换机:新建虚拟交换机->进入CentOS # cd /etc/sysconfig/network-scripts/ # ls # vi ifcfg-eth0 添加或修改 ONBOOT=yes 保存退出(按ESC再:wq回车) windows中本地网络连接将以太网与vEthernet桥接 # service network restart 进路由器设置给linux分配静态IP

用 Ubuntu 12.04 搭建一个 Ruby on Rails 本地开发环境

转载,原文链接 http://linux.cn/portal.php?mod=view&aid=170 用 Ubuntu 搭建一个 Ruby on Rails 本地开发环境 想要开发 Ruby on Rails 应用吗?虽然已经有一些(初级的)Ruby on Rails 教程了,但是似乎在如何搭建一个简洁而更新的本地开发环境方面还有些不甚确定的地方. 这个教程将引导你通过几个步骤来搭建一个基于 Ubuntu 的 Ruby on Rails 本地开发环境.而这个教程的即将发布的第二部分,将帮助你搭

配置独立于系统的PYTHON环境

配置独立于系统的PYTHON环境 python 当前用户包 一种解决方案是在利用本机的python环境的基础上,将python的包安装在当前user的.local文件夹下 一共有两种方式来实现pip的时候安装到当前user 设置pip配置文件 pip.conf 一种是在~/.pip文件夹下的pip配置文件pip.conf中设置 加入 [install] install-option=--prefix=~/.local 相当于每次在执行 # pip install package 命令的时候在 i

Python 环境搭建和sublime text配置(新手向)

Python的环境搭建是Python学习的第一步,关于这一点,网上有很多的资源,方法五花八门.由于工作原因,自己给同事写过很多处理Excel.爬虫的代码,也装过很多次 Python(用 pyinstaller 打包成 exe 有时候太大了),所以决定写一篇以供初学者参考 Python环境搭建 直接安装 Anaconda (500M+)就行了 (嫌大的可以装 Miniconda,70M左右) Anaconda 是什么? Anaconda 是 Python 的一个发行版,集合了 jupyter no