自己搭深度学习环境踩坑的血泪史
- 从一个沮丧的事情开始
- 问题1 : 强行更新了一次win10后, 双系统里的ubuntu的启动项就没了,直接进入win10系统
- 问题2 : sudo apt-get update 总是超时
- 问题3 : conda install 和 pip install 总是超时
- 问题4 : conda 里的环境不会管理,各种包多版本下一个环境里,同类多个版本冲突, 异类多个版本不兼容,怎么都运行不通,最后心态爆炸
- 问题5 : torch.cuda.is_available() 总是false, 明明以前还可以true
- 问题6 : ubuntu18.04 wifi 莫名其妙网速很慢或者图标变成问号
- 问题7 : python opencv>=4.0 怎么下载?
- 问题8: apt-get update 对英伟达的源超时
- 问题9: github上clone 或者wget太慢了
- 問題10: TX2 或者 arm 架構下如何配置ubuntu的源
- 完整的搭建过程与参考链接
从一个沮丧的事情开始
本人去年留学刚毕业进一家小公司做视觉算法,小公司的特点就是没有爸爸带,所以只能秉持着只要头够铁,坑和墙就拦不住你的心态去面对问题,最开始的就是头疼的配环境了.在这里总结一下,时间宝贵,这种坑不值得跳的.只看配环境步骤去文末.
问题1 : 强行更新了一次win10后, 双系统里的ubuntu的启动项就没了,直接进入win10系统
总的思路:做个ubuntu启动usb,然后使用boot-repair 是我见过最low但最好操作的方法了
step1:在[ubuntu的官网](https://ubuntu.com/download#download)上下载一个系统的镜像文件: ubuntu-18.04-desktop-amd64.iso step2:在[rufus的官网](https://rufus.ie/)上下载rufus这个启动盘制作的程序 rufus-3.10.exe step3:制作ubuntu启动盘如图(盗个图)
step4: 只做好了以后重启电脑(我的电脑是dell的)所以看见dell标志的时候疯狂按f12进入bios, 然后把启动UEFI点上就好了搞好就妥了, 然后退出,你电脑就会重新启动,进入到启动盘的ubuntu系统里
step5: 点try ubuntu,然后就进去了一个空荡荡的ubuntu 系统里
step6: 连上wifi, ctrl+alt+t 打开终端(terminal), 输入
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
等他下载完,要启动它,输入
boot-repair
step7:出现这张图
点击 Recommended repair 等它运行完,重启电脑,看见dell 的时候疯狂按F12,会进入启动选项,里面就有ubuntu 和 windows 了,貌似如果不选,默认会进入ubuntu 或者 grub启动选项,问题解决.
问题2 : sudo apt-get update 总是超时
原因估计是国内墙的问题,没有办法访问到国外源(保存更新内容的服务器),所以你更新的时候会一直超时(基本国内所有超时问题都是这个情况),所以要换别的源来访问(国内有些大公司会拿服务器专门保存这些内容,比如阿里)
1.首先查看自己的ubuntu系统的codename,直接导致你更新的源是否对你的系统起效果,查看方法:
这里的codename 就是版本代号的意思(就像你听过的各种行动代号什么红海啊,猎鹰啊,战狼啊,刺蛇啊),我这里就是bionic (还有很多别的代号如devel, focal, trusty什么的很中二),但它确保了你到底要对哪个版本的系统来更新
uname -m && cat /etc/*release
查看基本信息用这个命令也是可以的也很齐全了
-
点开这个网页:http://mirrors.aliyun.com/ubuntu/dists/
该网页显示了阿里云支持的ubuntu系统下各个Codename版本,确保自己的Codename在该网页中存在(基本不会漏的)
-
备份系统源:
cd /etc/apt
sudo mv sources.list sources.list_bak
这个mv就是剪切的意思,把你原来的写着源的地址的文件(sources.list)保存到 sources.list_bak文件里一方哪天阿里云没了(狗头)你还能用上原来的
- 添加新的源文件:
sudo gedit sources.list
会打开一个空文本
并添加以下内容:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
注意,每一行的trusty应该用第一步查看得到的Codename来代替,这个是最关键的,因为如果你自己上网查的话可能会查到些过期的教程,直接让你改成他那个年代版本代号的源地址,就比如下面的这个trusty,你照做了还是崩.千万注意.
- 保存并且输入
sudo apt-get update
更新成功,而且基本所有apt-get 的命令都可以用了,它目测只和ubuntu的源有关
- 说说大概的理解
这个/etc/apt/sources.list是一个普通可编辑的文本文件,保存了ubuntu软件更新的源服务器的地址.
deb是Unix系统(其实主要是Linux)下的安装包,基于 tar 包,每一行的开头是deb或者deb-src,分别表示直接通过.deb文件进行安装和通过源文件的方式进行安装。deb或者deb-src字段之后,是一段URL,之后是五个用空格隔开的字符串,分别对应相应的目录结构。在浏览器中输入http://mirrors.aliyun.com/ubuntu/,并进入dists目录,可以发现有5个目录和前述sources.list文件中的第三列字段相对应。任选其中一个目录进入,可以看到和sources.list后四列相对应的目录结构。其实就在服务器(网盘上根据目录结构找文件罢了)更多内容可以使用man source.list获得。
下面贴我查过的链接:
这个大佬的教程贼6, 无缝连招,照做就对了:
@Michel4Liu: https://blog.csdn.net/Michel4Liu/article/details/80744312
另一些资源:
@JeanCheng: https://blog.csdn.net/gatieme/article/details/52829907
@juejiang: https://www.cnblogs.com/jiangz/p/4076811.html
问题3 : conda install 和 pip install 总是超时
这个和问题2的原因一样,你上不了国外的网,但别担心总有人默默的为你准备好了一切,换个清华给你开放的源(亲测可以用)
-
conda换清华源
对于conda我们使用清华大学的TUNA提供的Anaconda 仓库的镜像.TUNA仓库官方地址(里面也有教程~): https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
在已经下载好Anaconda的情况下,打开终端输入如下代码:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
搞定,起飞!所有的conda install 立马可以用了.
最后,回首了解一下一些conda 的命令:
conda config --show
能够显示出所有conda的config信息,当然这也写在了.condarc
文件里.
换回默认源(删除所有添加的源):conda config --remove-key channels
参考文献:
@dale丶无双 https://blog.csdn.net/weixin_39278265/article/details/84782550
@SauryGo https://blog.csdn.net/sean2100/article/details/80998643
-
为pip更换阿里源,或者豆瓣源
首先先执行
mkdir ~/.pip
首先执行
mkdir ~/.pip
之后执行
cat > ~/.pip/pip.conf << EOF
然后依次输入下面4行(2选1)
阿里:
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
EOF
豆瓣:
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple
EOF
效果图如下图所示: 盗个大佬的图~
问题解决
问题4 : conda 里的环境不会管理,各种包多版本下一个环境里,同类多个版本冲突, 异类多个版本不兼容,怎么都运行不通,最后心态爆炸
这里有个conda 和 pip 的常识介绍,当小说看,多个理解就好了David 9的博客
最重要的一句话是: pip可以允许你在任何环境中安装python包(跨平台的python工具管理器),而conda允许你在conda环境中安装任何语言包(包括c语言或者python)(指定环境下的通用工具管理器)。
剩下就是大白话说说怎么解决环境冲突的问题,利用conda 可以新建一个虚拟的环境,然后在这个环境里配置你想要的各种包.
例子:
你要跑这个https://github.com/MaybeShewill-CV/lanenet-lane-detection
先创建一个虚拟环境:
conda create -n lanenet python==3.5
进入这个环境:
conda activate lanenet
查看有哪些包:
conda list
看看anaconda里有没有打包好的包,如cuda9.0:
conda search cuda
有哦~
那么开始下载:
conda install cudatoolkit==9.0
conda install cudnn==7.0.5
发现conda 下不来的那么我们用pip下
pip install -r \
tensorflow==1.10.0
numpy==1.15.1
tqdm==4.28.1
glog==0.3.1
easydict==1.9
tensorflow_gpu==1.15.2
matplotlib==3.0.2
opencv==4.0.0
scikit_learn==0.21.1
下好了以后查看这个环境里的包有哪些:
conda list
弄错了弄乱了 fuck it 了,删除环境
conda remove -n lanenet --all
各种操作可以在这个大佬这里找到:
@王诗翔 https://www.jianshu.com/p/f0602213f400
问题5 : torch.cuda.is_available() 总是false, 明明以前还可以true
百分之99碰到这个问题的都是因为你的英伟达显卡驱动过期了(因为当时自己查了好一阵,答案就只有这个,是不是很恐怖),但是有些人会问,不对啊,我之前一直用这个驱动就没动过,显卡也是原来的显卡,nvidia-smi
一样可以显示
那么很可能是你在更新anaconda 的时候不小心把相应的包如cudnn cudatoolkit pytorch什么更新了,在新一版本的包上,你的显卡驱动可能就不适配了,但是你可以更新一下你的驱动去更新的版本去适配.
之前找到一个很像这个链接的一个博客写的超棒的,查记录现在找不到了,找到一个类似的,我用的就是这第一个链接里的方法二,驱动从435 升到了440, 但是貌似这里没有关于删除旧驱动的步骤
@Linux社区 https://www.linuxidc.com/Linux/2019-02/157170.htm
@聚散流沙 https://www.cnblogs.com/youpeng/p/10887346.html
问题6 : ubuntu18.04 wifi 莫名其妙网速很慢或者图标变成问号
- 在终端运行:
sudo gedit /etc/modprobe.d/iwlwifi.conf
- 在打开的这个配置文件中空白处添加:options iwlwifi 11n_disable=8
- 保存文件并重启。
问题7 : python opencv>=4.0 怎么下载?
默认pip下的opencv 就已经是4.0+了,所以直接
pip install opencv-python
搞定
问题8: apt-get update 对英伟达的源超时
add-apt-repository ppa:graphics-drivers/ppa
apt-get update
问题9: github上clone 或者wget太慢了
把github的地址换成github.com.cnpmjs.org
这个网址
当然还有别的备选:
hub.fastgit.org
github.qichifun.workers.dev
例子:
git clone https://github.com.cnpmjs.org/AlexeyAB/darknet.git
变成
git clone https://github.com.cnpmjs.org/AlexeyAB/darknet.git
wget 也是一样就行
問題10: TX2 或者 arm 架構下如何配置ubuntu的源
哇在tx2下打字賊難受,sb 谷歌拼音只有繁體我也是福了
其實和上面的配置源過程差不多, 只需要注意arm64架構下有一個專門的國內源的地址:
- 备份系统源:
cd /etc/apt
sudo mv sources.list sources.list_bak
这个mv就是剪切的意思,把你原来的写着源的地址的文件(sources.list)保存到 sources.list_bak文件里一方哪天阿里云没了(狗头)你还能用上原来的
- 添加新的源文件:
sudo gedit sources.list
会打开一个空文本
并添加以下内容:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
依然,每一行的bionic
其實也是所謂的codename, 应该用第一步查看得到的Codename来代替,这个是最关键的,因为如果你自己上网查的话可能会查到些过期的教程,直接让你改成他那个年代版本代号的源地址,就比如下面的这个trusty,你照做了还是崩.千万注意.
完整的搭建过程与参考链接
这个大佬的回答亲测哪怕从中间开始跟(没必要重装系统)都可以一遍搭好,非常细腻清爽,这里放上链接
https://zhuanlan.zhihu.com/p/51373519
下面是参考资料:
https://help.ubuntu.com/community/Boot-Repair
https://askubuntu.com/questions/655011/windows-10-upgrade-kills-grub-and-boot-repair-doesnt-help
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)