本文写文章日期为2018.03.13 因为买电脑自带了win10系统,自己就没有重新安装win10,而是在原win10环境下分割一个磁盘来安装ubuntu16.04,本人电脑GPU为Gtx 1080Ti显卡,要注意的是显示器连接线是直接与Gtx 1080Ti显卡连接,而不是连接主板上的接口!电脑配置见下图。我的硬盘是双硬盘一个256G的SSD固态硬盘,一个2T的HDD机械硬盘,现在win10是安装在SSD上,我准备把ubuntu也安装在SSD上。
以前用的电脑都是BIOS+MBR,以前装的双系统基本都Win7和ubuntu16.04,而这次是在win10下且是在UEFI + GPT条件下安装ubuntu16.04,所以在动手之前google了很多最新教程,避免了很多坑,感谢那些善良的人!
通常使用BIOS+MBR构架的双系统需要使用EasyBCD软件来添加启动项,使用UEFI需要EasyUEFI。在win10下先安装EasyUEFI以便于以后在win10下管理启动项以及删除ubuntu系统。
swap交换空间:8G efi系统分区 :512M 挂载“/” :30G 挂载“/usr” :35G 挂载“/home”:51G
因为我参考了下面:
1.swap交换空间,相当于Win中的虚拟内存,通常需要划分对应物理内存2倍的空间,考虑到深度学习主机内存一般都是32G、64G或者128G,所以选择忽略不划分,之后如有需要还可以在系统设置中添加swap部分。实际上我划分了8G。 2.EFI系统分区,选择分区类型为“逻辑分区”,分区位置为“空间起始位置”。分配大小为512M,足矣。 3.挂载“/”,类型为EXT4日志文件系统,选择“逻辑分区”和“空间起始位置”。根目录将挂载除了“/home”和“/usr”之外的其他目录,分配30G。 4.挂载“/usr”,类型为EXT4日志文件系统,选择“逻辑分区”和“空间起始位置”。“/usr”为Linux存放软件的地方,分配40G。 5.挂载“/home”,类型为EXT4日志文件系统,选择“逻辑分区”和“空间起始位置”。剩余50G左右空间全部分配给“/home”。
如果安装ubuntu时出现ACPI error,可参考win10安装ubuntu-GNOME双系统踩坑综合想在台式机ubuntu16.04和win10上都用一个无线网卡来上网,发现很多网卡都不能在ubuntu中上网,即使可以也只能需要复杂的安装网卡驱动步骤,但是我也发现了在ubuntu系统中免驱可以即插即用且在windows中也可以免驱连网的两种网卡分别是:
RT5572无线网卡,2.4GHz和5GHz双频,传输速率为300Mbps,因为速率比较快,所以我用的是这个网卡。 RT3070(L)白或者 RT3070(L)黑或者RT3070(L)-Hi-Link,频段只为2.4GHz,传输速率为150Mbps在安装完CUDA 9.1 和Cudnn 7.1.1之后发现,tensorflow最新版本 1.7.0不支持CUDA 9.1 和Cudnn 7.1.1,而是支持CUDA 9.0 和Cudnn 7.0,见tensorflow官网安装说明:Installing TensorFlow 或 Installing TensorFlow on Ubuntu,否则会出现如下错误:
(tensordai) mengzhuo@ubuntu:~$ python Python 3.6.2 |Continuum Analytics, Inc.| (default, Jul 20 2017, 13:51:32) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type “help”, “copyright”, “credits” or “license” for more information. 输入命令:import tensorflow as tf 出现错误:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
因此,大家还是安装CUDA 9.0 和Cudnn 7.0吧,安装方法跟下面的方法一样。 CUDA 9.0下载地址为:CUDA Toolkit 9.0,所以大家可直接跳过前3步,直接看第4步安装CUDA 9.0和CUDNN 7.0.5的方法
参考教程:Ubuntu 16.04 上安装 CUDA 9.0 详细教程、ubuntu16.04安装cuda9——简明教程
官方教程膜拜上:官方教程
下载CUDA Toolkit 9.1 Download
安装的主要方法见:Ubuntu16.04安装CUDA9.1、cuDNN7详细教程,基本同官方教程一样,我和这个教程有一点不一样就是在设置环境变量时,因为我也安装的是CUDA 9.1,所以在终端中输入
sudo gedit /etc/profile
在打开的文件末尾,添加以下两行。 64位系统:
export PATH=/usr/local/cuda-9.1/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:$LD_LIBRARY_PATH
这里的文件目录是cuda-9.1不是cuda-9.0。
tar -xzvf cudnn-9.1-linux-x64-v7.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
因为是以tgz文件的形式安装的cudnn所以没办法按照官方教程中一样来验证cudnn是否安装成功,不过我到各个文件目录看了下,确认应该是安装成功了。sudo /usr/local/cuda-9.1/bin/uninstall_cuda_9.1.pl
ubuntu16.04 下 卸载CUDA9.1因为安装CUDNN,实际上只是把几文件复制到CUDA的安装目录下,所以卸载CUDNN只需要把CUDA的安装目录”/usr/local/cuda-9.1”一起删除就可以了:
cd /usr/local/ sudo rm -r cuda-9.1
如果曾经验证过CUDA就会在/home/用户名 下产生文件夹“NVIDIA_CUDA-9.1_Samples”,可以把它一起删除:
cd /home/mengzhuo sudo rm -r NVIDIA_CUDA-9.1_Samples
注意:我用官方卸载方法卸载CUDA 9.1后再用下面的“4.4.1 方法一”安装CUDA 9.0后发现: 系统分辨率变成没装驱动一样,并且在ubuntu登录界面出现循环登录,导致不能以图形方式进入ubuntu。 我猜测的原因:卸载CUDA 9.1时估计连带着驱动的一些包被卸载了。 我解决的办法是:在登录界面按Alt+Ctrl+F1进入字符界面,然后卸载我刚才安装的CUDA 9.0,在没有卸载驱动的情况下用驱动的.run安装包,再按照上面讲的安装驱动方法重新安装修复了驱动。然后分辨率变正常,循环登录现象消失。最后我进入ubuntu系统后用了
CUDA 9.0下载地址为:CUDA Toolkit 9.0
参考教程:Ubuntu 16.04 上安装 CUDA 9.0 详细教程、ubuntu16.04安装cuda9——简明教程
官方教程膜拜上:安装CUDA9.0官方教程
安装方法同上面安装CUDA 9.1一样,其主要方法见:Ubuntu16.04安装CUDA9.1、cuDNN7详细教程,基本同官方教程一样,具体方法如下:
检查方法见:Ubuntu16.04安装CUDA9.1、cuDNN7详细教程
CUDA提供两种安装方式:package manager安装和runfile安装。因为CUDA安装文件将近1.6G,所以 这里我选择runfile安装,采用runfile安装,CUDA自带的驱动可能无法定位内核信息,所以要先安装NVIIDA驱动。我前面已经安装了驱动,所以这步已经免了。
下载地址:CUDA Toolkit 9.0
sudo service lightdm stop
以cd命令进入CUDA 9.0的.run安装文件所在文件夹内,比如我的是:cd /home/mengzhuo/ # mengzhuo是我的系统用户名
找到下载文件的路径,键入下面的命令安装:sudo sh cuda_9.0.176_384.81_linux.run
单击回车,直到提示“是否为NVIDIA安装驱动?” 一定要选择否,因为已经安装好驱动程序,其他都是默认。最后,你会看到cuda驱动、sample、tookit已经安装成功,但是缺少一些库。
添加这些库:sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
重新启动图形化界面:sudo service lightdm start
同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。 如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了 .重启电脑,检查Device Node Verification:ls /dev/nvidia*
若结果显示:/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
或显示出类似的信息,应该有三个(包含一个类似/dev/nvidia-nvm的),则安装成功。 如果显示其他情况,则按照Ubuntu16.04安装CUDA9.1、cuDNN7详细教程中方法进行设置。
终端中输入sudo gedit /etc/profile
在打开的文件末尾,添加以下两行: 64位系统:export PATH=/usr/local/cuda-9.0/bin: PATHexportLDLIBRARYPATH=/usr/local/cuda−9.0/lib64: P A T H e x p o r t L D L I B R A R Y P A T H = / u s r / l o c a l / c u d a − 9.0 / l i b 64 : LD_LIBRARY_PATH
32位系统:
export PATH=/usr/local/cuda-9.0/bin: PATHexportLDLIBRARYPATH=/usr/local/cuda−9.0/lib: P A T H e x p o r t L D L I B R A R Y P A T H = / u s r / l o c a l / c u d a − 9.0 / l i b : LD_LIBRARY_PATH
保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。重启电脑,检查上述的环境变量是否设置成功。因为我们在安装cuda时并不需要安装驱动,所以不用按Ctrl+Alt+F1进入字符终端,也不用关闭图化界面。同时,在方法一中,在验证是否安装成功时,make也太复杂了,需要花20+分钟,其实只需要make一个文件就可以,这样只需要几秒就可验证是否安装正确。具体方法如下:
先安装 安装cuda所需的依赖库:sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
输入以下命令:cd /home/mengzhuo/ # mengzhuo是我的系统用户名,该文件夹下存在CUDA9.0的.run安装文件 sudo sh cuda_9.0.176_384.81_linux.run
单击回车,直到提示“是否为NVIDIA安装驱动?” 一定要选择no,因为已经安装好驱动程序,其他都是选择yes。
添加环境变量:sudo gedit /etc/profile
在打开的文件末尾,添加以下两行: 64位系统:
export PATH=/usr/local/cuda-9.0/bin: PATHexportLDLIBRARYPATH=/usr/local/cuda−9.0/lib64: P A T H e x p o r t L D L I B R A R Y P A T H = / u s r / l o c a l / c u d a − 9.0 / l i b 64 : LD_LIBRARY_PATH
保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。重启电脑,检查上述的环境变量是否设置成功。nvcc -V
最后,我们需要尝试编译cuda提供的例子,看cuda能否正常运行,打开终端输入:cd /home/user_name/NVIDIA_CUDA-9.1_Samples make
系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。 如果编译成功,最后会显示Finished building CUDA samples,如下图所示。
运行编译生成的二进制文件。 编译后的二进制文件默认存放在NVIDIA_CUDA-9.1_Samples/bin中。接着在终端中输入 :
cd bin/x86_64/linux/release ./deviceQuery
结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL .最后再检查一下系统和CUDA-Capable device的连接情况 终端输入 :./bandwidthTest
看到类似如下图片中的显示,则代表成功
nvcc -V
我们需要尝试编译cuda提供的例子,看cuda能否正常运行,这里我们不用像方法一一样make所有samples,而只需make一个sample就可以了,这样可以使时间从20多分钟减少到几秒钟,打开终端输入:cd /home/mengzhuo/NVIDIA_CUDA-9.0_Samples/1_Utilities # 进入NVIDIA_CUDA-9.0_Samples中 deviceQuery所在文件夹,mengzhuo是我自己的username make cd /home/mengzhuo/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release ./deviceQuery
结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL 。
tar -xzvf cudnn-9.0-linux-x64-v7.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp cuda/lib64/* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
注意:上面的第三条命令官方方法是:sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ ,但是我在lib64文件夹下并没有看到名为libcudnn的文件夹,所以应该还是用我上面的第三条命令。
为防止破坏软链接,还有必要再输入以下4条命令,反正我按照上面的官方安装方法后测试时是提示我软链接被破坏了:
cd /usr/local/cuda-9.0/lib64 sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 sudo ln -s libcudnn.so.7 libcudnn.so sudo ldconfig -v #改了lib、lib64、 ld.so.conf都要重新运行一下ldconfig,不然系统找不到动态链接库
因为是以tgz文件的形式安装的cudnn所以没办法按照官方教程中一样来验证cudnn是否安装成功,不过我到各个文件目录看了下,确认应该是安装成功了。
虽然我的ubuntu 16系统自带的python是2.7.12,但是Anaconda不仅能够进行包管理,还能进行环境管理,所以用它来进行创建虚拟环境并管理。去Anaconda的官方下载地址或清华anaconda镜像下载对应python版本的Anaconda安装文件。我这里下载的是python3.6的版本:本次使用的是Anaconda3-5.1.0-Linux-x86_64.sh。
主要安装方法见Ubuntu 16.04 安装Anaconda3。另外,也参考了Ubuntu 安装 Anaconda3 详细步骤。方法见Ubuntu 16.04 安装 PyCharm
如果在应用程序中找不到pycharm启动项,可用如下方法: 打开Pycharm—>Tools—>Creat Desktop Entry…—>Ok
完全不必用这种方法:在ubuntu16.4中为pycharm创建桌面快捷启动方式。这种方法不仅复杂,而且我用这种方法后发现程序图标并没有被加载,所以图标变发了一个问号图片。
如果不想利用pycharm创建虚拟环境,并在虚拟环境内安装tensorflow、keras等深度学习框架,而是非要自己在终端手机输入命令来进行,那么可直接跳过本节看下一节“十、在Anaconda创建的虚拟环境内安装tensorflow”,本节和下一节方法是等效的,只是本节方法更简单、更直观而已。
打开pycharm—>Files—>New Project—>Pure python
1.png在New environment using中可选择“Conda”或”Virtualenv”来创建虚拟环境,在Location中把“untitled”改成自定义的虚拟环境名字,Python version中可自己选择想要的版本,这里我选择的是用”Virtualenv”来创建虚拟环境,因为我用“Conda”来创建虚拟环境后发现安装包速率很慢,尽管我在pycharm中已经更换了国内的pip源。
Files—>Settings—>Project Interpreter
可以点击上图中右上角的齿轮图标,来更换项目解释器。
点击右上角“+”,可以看到“Availabe Packages”,并可以搜索安装想要的包。如果前是选择“Conda”来创建虚拟环境,这里就是一片空白,什么都没有。
更换国内pip源:点击上图中的“Manage Repositories”,然后输入源地址,如下图所示。
本节和上一节方法是等效的,只是上一节方法更简单、更直观,如果你已经按照“九、利用pycharm创建虚拟环境,并在虚拟环境内安装tensorflow、keras等深度学习框架”中的方法进行,可跳过本节。
Ubuntu16.04+Anaconda安装+换源+环境创建+tensorflow安装(3)Ubuntu16.04下安装tensorflow(Anaconda3+pycharm+tensorflow+CPU)Ubuntu16.04安装anaconda3+tensorflowUbuntu下使用pycharm add TensorFlow解决每次使用conda创建的虚拟环境都需要激活的问题:如何在Ubuntu下安装Anaconda及搭建环境安装TensorFlow深度学习框架 在虚拟环境中安装tensoflow时不要用conda命令安装,因为我看到conda安装包里面的tensorflow gpu版本已经是4个月前了,不是最新的,所以还是用pip3命令安装吧。conda create -n tensordai python=3.6
tensordai是虚拟环境的名字。
注意:这种方法我没成功,原因是网络老是断掉,所以我更换了国内的pip源,再进行了方法二来安装tensorflow 1.7.0. 所以大家还是直接看方法二吧。
下面是方法1的内容:
根据tensorflow的github官方网站可知python 3的安装命令如下:GPU版:pip install tf-nightly-gpu CPU版:pip install tf-nightly
或者可以先下载好对应版本的安装文件:Linux CPU-only: Python 2 (build history) / Python 3.4 (build history) / Python 3.5 (build history) / Python 3.6 (build history) Linux GPU: Python 2 (build history) / Python 3.4 (build history) / Python 3.5 (build history) / Python 3.6 (build history)
我点击python3.6版本 Python 3.6 (build history) 中的“build history”,然后下载这个文件“tf_nightly_gpu-1.7.0.dev20180222-cp36-cp36m-manylinux1_x86_64.whl”,然后必须把它重命名为“tensorflow-1.7.0-py3-none-linux_x86_64.whl”,否则会出现错误“tf_nightly_gpu-1.7.0.dev20180222-cp36-cp36m-linux_x86_64.whl is not a supported wheel on this platform.” 再利用下面的命令进行安装:
source activate tensordai #激活虚拟环境 cd ~/Download #我是将下载好的东西放在了Download文件夹里 pip3 install –ignore-installed –upgrade tensorflow-1.7.0-py3-none-linux_x86_64.whl
或者
pip install tf-nightly-gpu
参考:如何在 Ubuntu 16.04 上安装并使用 TensorFlow、ubuntu16.04安装TensorFlow的正确步骤
cd ~ mkdir .pip sudo gedit ~/.pip/pip.conf
然后直接编辑文件pip.conf的内容为:
[global] index-url = http://pypi.douban.com/simple/ [install] trusted-host = pypi.douban.com
这样就更换pip源成功了。
运行命令:pip install tf-nightly-gpu
$ python # 进入python环境
import tensorflow as tf hello = tf.constant(‘Hello, TensorFlow!’) sess = tf.Session() sess.run(hello)
a = tf.constant(10) b = tf.constant(32) sess.run(a + b) sess.close()
卸载tensorflowpip uninstall tf-nightly-gpu
本文链接:https://www.jianshu.com/p/a9d458544ca1
win10安装ubuntu-GNOME双系统踩坑综合
我的好兄弟张洞明童鞋对本文的热心帮助与耐心指导!
