参加了今年的AWS Summit,里面有一个很有意思的环节是Intel组织了一个基于AWS的深度学习上手课程。

为什么在AWS上呢?

这个课程以及代码的地址在这里https://github.com/NervanaSystems/mxnet_workshop

这里面的文档里面说了,完成这个课程需要Amazon Deep Learning AMI.

为什么是Intel组织呢?

因为Intel的观点认为,通过使用Intel的MKL库,可以基于Intel的CPU而非一定要GPU,就能取得高性能的深度学习。

哈哈,终于明白了。

但是也给了我们普通的学习者上手深度学习一个很好的机会,因为如果基于GPU,无论是你自己买一个,还是使用AWS的GPU实例,实在是成本有一点高。而基于CPU,用一个普通的虚拟机就可以了,接下来的实验,本人都是在一台普通的ubuntu 14.04虚拟机上完成的。

在国内登陆AWS还是多少有些不方便的,而且AWS那个AMI是什么都安装好的,用起来容易,但是不容易看出将来如何自己搭建一个环境。于是还是自己手动来的好。

这个实验启动一个Jupyter Notebook,里面用python语言完成下面三个实验。

第一,安装mxnet,当然现在tensorflow很火,但是mxnet也非常好

apt-get update apt-get install -y wget python gcc wget https://bootstrap.pypa.io/get-pip.py && sudo python get-pip.py pip install mxnet apt-get install graphviz pip install graphviz

第二,下载mxnet_workshop

apt-get install git git clone https://github.com/NervanaSystems/mxnet_workshop

第三,安装jupyter notebook

apt-get install python-dev pip install --upgrade ipython==5.4.1 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com pip install widgetsnbextension -i http://pypi.douban.com/simple --trusted-host pypi.douban.com pip install jupyter -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

第四,配置jupyter notebook

jupyter notebook --generate-config --allow-root 修改.jupyter/jupyter_notebook_config.py下面三项 c.NotebookApp.ip = '0.0.0.0' c.NotebookApp.open_browser = False c.NotebookApp.password = u'sha1:356c980c45d3:87608ec6eb8c0dacb693ddf48ffd2ec39fd0fa9b'

最后这个密码是deeplearning,将来用它登陆jupyter notebook

第五,安装Intel MKL

apt-get install cmake apt-get install doxygen apt-get install g++ git clone https://github.com/01org/mkl-dnn.git cd mkl-dnn/ cd scripts && ./prepare_mkl.sh && cd .. mkdir -p build && cd build && cmake ..&& make make install

第六,启动jupyter notebook

cd mxnet_workshop jupyter nbextension enable --py widgetsnbextension jupyter-notebook --allow-root

第七,从界面上访问jupyter notebook

通过8888端口进入界面,输入密码deeplearning

第八,跑实验一Part_1_Sentiment_Analysis.ipynb

在每一段python代码里面,依次点击ctrl + 回车,当左面的*变为数字的时候,这一步就运行完毕了,可以运行下一步。

如图是正在训练模型。

利用模型检测态度是正还是反。

第九,同理跑其他的实验。

下一篇文章会从代码解析这些实验都干了些啥。