由于目前的 Tensorflow 版本尚不支持 CuDNN 6, 所以我安装的是 CuDNN 5.1 版本。要下载 CuDNN,首先需要注册一个免费的开发者账户。下载完毕后,安装操作如下: tar -xzf cudnn-8.0-linux-x64-v5.1.tgz cd cuda sudo cp lib64/* /usr/local/cuda/lib64/ sudo cp include/* /usr/local/cuda/include/ Anaconda Anaconda 是一个非常强大的 Python 包与环境管理工具。我的 Python 版本已经是 3.6,所以使用了 Anaconda 3 版本。其安装指令如下: wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh -O「anaconda-install.sh」 bash anaconda-install.sh -b cat >> ~/.bashrc << 'EOF' export PATH=$HOME/anaconda3/bin:${PATH} EOF source .bashrc conda upgrade -y --all source activate root TensoFlow Tensorflow 是 Google 开源的一款非常流行的深度学习框架,安装方法如下: sudo apt install python3-pip pip install tensorflow-gpu 验证 Tensorflow 的安装:为保证我们的一系列工具能够顺畅地运行,我运行 Tensorflow 的 MNIST 数据做测试: git clone https://github.com/tensorflow/tensorflow.git python tensorflow/tensorflow/examples/tutorials/mnist/fully_connected_feed.py 我们可以看到,在训练过程中损失也是在下降的: Step 0: loss = 2.32 (0.139 sec) Step 100: loss = 2.19 (0.001 sec) Step 200: loss = 1.87 (0.001 sec) Keras Keras 是一款高级的神经网络框架,非常友好的工作利器。它的安装也是再简单不过了: pip install keras PyTorch PyTorch 是深度学习框架领域的后来者,但它的 API 是基于非常成熟的 Torch。PyTorch 虽然仍然处在需要继续试用的阶段,但总的来说它给人全新的感受,非常出色。安装指令如下: conda install pytorch torchvision cuda80 -c soumith Jupyter 笔记本 Jupyter 是一个基于网页的 IDE,适用于 Python。它是一款理想的数据科学任务处理工具,可以通过 Anaconda 安装,所以我们只需简单地配置并测试: # Create a ~/.jupyter/jupyter_notebook_config.py with settings jupyter notebook --generate-config jupyter notebook --port=8888 --NotebookApp.token='' # Start it 现在我们只需在浏览器键入 :8888,就可以见到 Jupyter 界面。 启动时运行 Jupyter 与其在电脑每次重启时单独运行 Jupyter,我们可以将其设置成启动时自动运行。使用 crontab -e 命令来完成这项操作,然后在 crontab 文件的最后一行添加指令如下: # Replace 'path-to-jupyter' with the actual path to the jupyter # installation (run 'which jupyter' if you don't know it). Also # 'path-to-dir' should be the dir where your deep learning notebooks # would reside (I use ~/DL/). @reboot () path-to-jupyter ipython notebook --no-browser --port=8888 --NotebookApp.token='' --notebook-dir path-to-dir & 外部访问 我用的是一台虽然旧但是完全可靠的 MacBook Air 来做开发,我希望能在家登录到这个深度学习网络。 使用 SSH 比简单地使用密码更为安全。关于如何设置可以参考 Digital Ocean 提供的指南:https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 SSH 通道:如果你希望在另外一台电脑上使用你的 Jupyter 笔记本,j2直播,推荐使用 SSH 通道(以取代用密码来打开笔记本)。让我们来看看具体该怎么做: 首先我们需要一个 SSH 服务器。我们只需在深度学习盒子(服务器)上运行如下指令即可安装 SSH: sudo apt-get install openssh-server sudo service ssh status 然后在客户端运行以下脚本来连接 SSH 通道: # Replace user@host with your server user and ip. ssh -N -f -L localhost:8888:localhost:8888 user@host 在远程机器上打开浏览器,键入 :8888 进行测试,这时候屏幕上应该可以出现你的 Jupyter 笔记本了。 设置网络外访问:最后,需要从外部访问深度学习网络,我们需要三个步骤: 你的家庭网络的静态 IP (或者一个可用于模拟的服务器)—以便我们可以知道将要联通的地址。 一个手动 IP 或者 DHCP 保留设置,这样可以将深度学习所在的服务器地址设置为你家庭网络的永久地址。 从路由器到深度学习盒子的端口转发。 外部网络的访问权限取决于路由器以及网络的设置,所以我在此不做赘述。 基准测试 现在一切都运行顺畅,我们可以用这个新盒子来做些测试了。我会把这套新组装成的系统与 AWS P2 来做比较,AWS P2 是我之前使用的深度学习系统。由于我们的测试都跟计算机视觉有关,这意味着得使用卷积网络和一个全连接模型。我们分别用 AWS P2 GPU(K80) 、AWS P2 CPU、GTX1080 Ti 以及 Intel I5 来训练模型,并比较其各自的运行时间。 MNIST 多层感知机 (责任编辑:本港台直播) |