连接虚拟机
首先,我的服务器分配的IP是10.0.3.153,端口是9380至9389,服务器的域名为ras.sysu.edu.cn
服务器分配设置
有两种方法:
- 使用ssh连接 此时,登陆的端口号为从9380至9389分配的10个端口号中的第一个端口号(9380)
- 使用putty
putty
- 使用powershell的ssh
powershell
- 使用VNC viewer连接。 此时,登陆的端口号为第二个端口号(9381)
vnc viewer
至此,你可以通过多种方法登陆到实验室的虚拟机上了
安装anaconda
- 登陆anaconda官网 https://www.anaconda.com/download/#linux
- 下载linux版的installer
- sh xxx.sh
- 为anaconda添加环境变量 遇到了无法添加环境变量的困难,解决方法见文末[遇到的问题2]
- 修改镜像源 https://blog.csdn.net/mtj66/article/details/57074986
安装Tensorflow(GPU版本)
- 检查是否满足最低安装要求。于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,原因见文末。
第四步
- 安装libcupti-dev 根据安装说明,我们还需要执行
apt-get install libcupti-dev
安装说明
- 成功安装并执行示例代码
# 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卷积神经网络
卷积
人工智能、机器学习和深度学习的区别?
遇到的问题
- 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
- 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
- 探索路径: 试图修改
- pip下载速度过慢
- 解决方法: 替换为清华源(临时用):在使用pip的时候加参数
-i https://pypi.tuna.tsinghua.edu.cn/simple
- 解决方法: 替换为清华源(临时用):在使用pip的时候加参数
- conda下载速度过慢
- 解决方法: 替换为清华源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes
- 安装后试图运行
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了
成功导入
- 虚拟机无法连接google
- 解决方法 根据虚拟机访问外国网站指南配置。此外,还要自行修改代理服务器的ip为
192.168.0.11
(指南留下的ip配置是192.168.0.1
)。
- 解决方法 根据虚拟机访问外国网站指南配置。此外,还要自行修改代理服务器的ip为
- tensorflow版本较低,有些函数名字与新版的不同,导致官方样例无法运行
心得
- 以前试图为自己访问外国网站的服务器配置图形界面,但悟性不足,未能解决。看到实验室的虚拟机都自带vnc连接的方式,下决心研究了一波,终于成功给自己的服务器配置了vnc server。心得已总结在单独的pdf中。
- 没有仔细阅读注意事项。其实Public文件夹下有很多预留的安装包可以双击安装。
- 由于自己用的是conda,安装时应坚持用
conda install xxx
而不是pip install xxx
。因为conda是倾向于为特殊环境的包管理服务的,而pip倾向于为整个系统的python包管理服务。