TASK 1 了解TensorFlow

2019-05-25 09:32:56 浏览数 (1)

连接虚拟机

首先,我的服务器分配的IP是10.0.3.153,端口是93809389,服务器的域名为ras.sysu.edu.cn

服务器分配设置

有两种方法:

  • 使用ssh连接 此时,登陆的端口号为从93809389分配的10个端口号中的第一个端口号(9380)
    1. 使用putty

    putty

    1. 使用powershell的ssh

    powershell

  • 使用VNC viewer连接。 此时,登陆的端口号为第二个端口号(9381)

vnc viewer

至此,你可以通过多种方法登陆到实验室的虚拟机上了

安装anaconda

  1. 登陆anaconda官网 https://www.anaconda.com/download/#linux
  2. 下载linux版的installer
  3. sh xxx.sh
  4. 为anaconda添加环境变量 遇到了无法添加环境变量的困难,解决方法见文末[遇到的问题2]
  5. 修改镜像源 https://blog.csdn.net/mtj66/article/details/57074986

安装Tensorflow(GPU版本)

  1. 检查是否满足最低安装要求。于https://www.tensorflow.org/install/install_linux#nvidia_requirements_to_run_tensorflow_with_gpu_support有描述。

安装要求

  • 检查CUDA版本 (tensorflow) -> root@JinZili:Public $ cat /usr/local/cuda/version.txt CUDA Version 7.5.18 版本为7.5,大于7.0
  • 检查cudnn版本 (tensorflow) -> root@JinZili:Public $ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #define CUDNN_MAJOR 6 #define CUDNN_MINOR 0 #define CUDNN_PATCHLEVEL 20 -- #define CUDNN_VERSION (CUDNN_MAJOR * 1000 CUDNN_MINOR * 100 CUDNN_PATCHLEVEL) #include "driver_types.h" 版本为6,大于3
  • 检查GPU的CUDA compability 从服务器虚拟机使用指南查到Amax的GPU版本为Tesla K40c。从GPU版本与对应的Compute Capability的查阅网址查到,Tesla K40c对应的Compute Capability为3.5,大于3.0

在第四步不要按照它的做法,因为国内连不上外面的连接。应当改用conda install tensorflow-gpu==1.3。此处故意要用低版本的1.3,原因见文末。

第四步

  1. 安装libcupti-dev 根据安装说明,我们还需要执行apt-get install libcupti-dev

安装说明

  1. 成功安装并执行示例代码
代码语言:javascript复制
# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

运行结果

限制TensorFlow使用的GPU资源。

在代码中加入以下片段

代码语言:javascript复制
# Assume that you have 12GB of GPU memory and want to allocate ~4GB:
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)

sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

了解深度学习

什么是深度学习?

定义一个深度学习模型,通常需要解决3个问题: 1)激活函数,也就是先对于输入神经元的激活值。一般的有 logistic 、tanh、以及ReLU。 2)代价函数。一般学习过程都是优化问题。代价函数一般采用欧式距离。 3)优化策略。最简单的用梯度下降。

深度学习Deep Learning(01)_CNN卷积神经网络

卷积

人工智能、机器学习和深度学习的区别?

遇到的问题

  1. vnc服务器重启失败
    • 问题如下

    ]# vncserver -kill :1 Can't find file /root/.vnc/xxx.xx.xx.xx:1.pid // IP已隐去,用xxx.xx.xx.xx代替 You'll have to kill the Xvnc process manually

    • 解决方法 vncserver Can't find file /root/.vnc/192.168.1.3:1.pid You'll have to kill the Xvnc process manually

  2. zsh: command not found: conda (未添加环境变量)
    • 探索路径: 试图修改/etc/profile来修改环境变量,但失败了
    • 解决方法: 在zsh下添加环境变量,参考 https://blog.csdn.net/qq_16735407/article/details/50561144

    vi /root/.zshrc 在最后一行加上这一段 PATH=/root/anaconda3/bin:$PATH; export PATH 按Esc,再按 : 和 w,q保存退出。激活文件 source /root/.zshrc

  3. pip下载速度过慢
    • 解决方法: 替换为清华源(临时用):在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple

  4. conda下载速度过慢
    • 解决方法: 替换为清华源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes

  5. 安装后试图运行import tensorflow as tf失败
    • 参考 ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory 该文认为,这种情况应该是TensorFlow版本过高导致的,虚拟机安装的CUDA版本较低,各种lib的版本落后,因此不兼容。
    • 问题定位 输入ls /usr/local/cuda/lib64后,发现lib的版本都低于8.0 比如libcudart.so,虚拟机只有7.5版本,而tensorflow1.6要求9.0

    lib版本

    • 解决方法 在conda的虚拟环境下运行conda install tensorflow-gpu==1.3,然后就能导入Tensorflow了

    成功导入

  6. 虚拟机无法连接google
    • 解决方法 根据虚拟机访问外国网站指南配置。此外,还要自行修改代理服务器的ip为192.168.0.11(指南留下的ip配置是192.168.0.1)。

  7. tensorflow版本较低,有些函数名字与新版的不同,导致官方样例无法运行

心得

  • 以前试图为自己访问外国网站的服务器配置图形界面,但悟性不足,未能解决。看到实验室的虚拟机都自带vnc连接的方式,下决心研究了一波,终于成功给自己的服务器配置了vnc server。心得已总结在单独的pdf中。
  • 没有仔细阅读注意事项。其实Public文件夹下有很多预留的安装包可以双击安装。
  • 由于自己用的是conda,安装时应坚持用conda install xxx而不是pip install xxx。因为conda是倾向于为特殊环境的包管理服务的,而pip倾向于为整个系统的python包管理服务。

0 人点赞