华为云服务器,4核心8G内存,没有显卡,性能算凑合,赶上双11才不到1000,性价比还可以,打算配置一套训练densenet的环境。

首先自带的python版本是2.7,由于明年开始就不再维护了,所以安装了个conda。

wget https://repo.continuum.io/archive/Anaconda3-5.3.0-Linux-x86_64.sh

https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh 2020-4-9 updated

发现实在太慢,找了个清华的源,快了很多。

wget  https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-4.3.0-Linux-x86_64.sh

Anaconda3-5.3.1-MacOSX-x86_64.sh

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.02-Linux-x86_64.sh

(这里4.3.0可以换成5.3.0,4.3.0的python版本好像是3.6 ,后面再安装pytorch和torchvision的时候可能还需要升级python版本)

chmod 777 anaconda3.4.3.0-Linux-x86_64.sh

./anaconda3.4.3.0-Linux-x86_64.sh

一直yes,安装好后,会提示是否加入系统变量中,点击yes,再执行命令 :source ~/.bachrc

centos 7 配置pytorch运行环境

输入python --version 检查是否版本从2.7升级到3.6

输入conda list,检查conda是否安装好

然后安装pytorch和torchvision

conda config --add channels https://repo.continuum.io/pkgs/free/ 
conda config --add channels https://repo.continuum.io/pkgs/main/ 
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda install pytorch torchvision

也可以conda install pytorch torchvision cudatoolkit=10.0.130,因为没有cuda显卡,所以不用带也没关系。

也可以这样:conda install pytorch -c pytorch  

conda install torchvision -c pytorch

安装好以后,使用测试程序

import torch
train_on_gpu = torch.cuda.is_available()
if not train_on_gpu:
print('Training on CPU ...')
else:
print('Training on GPU ...')

将数据集上传到服务器,开始训练。

1:报了个lr_scheduler的错,升级一下pytorch和torchvision

conda install pytorch==0.4.0

conda upgrade torchvision

2:报了个错,pytorch:ValueError: optimizing a parameter that doesn't require gradients

但是这个错,同样在windows环境和centos7 + python 2.7两种环境下没有出现过。

有两种解决办法,一个是将param.requires_grad = False ➡param.requires_grad = True,但是内存可能扛不住。

还有一个办法是将optimizer = optim.Adadelta(model.parameters()) ➡ optimizer = optim.Adadelta(filter(lambda p: p.requires_grad,model.parameters()))

推荐第二种方法,第一种方法由于求导数还慢占内存。

3:报了个错:json.decoder.JSONDecodeError: Expecting property name enclosed in double quo

好像是json文件最后多了个“,”号,排除这种错看log就搞定了。

 4:也可以直接离线安装 conda install --offline torchvision-0.5.0-py38_cu101.tar.bz2

conda install --offline pytorch-1.4.0-py3.7_cuda10.1.243_cudnn7.6.3_0.tar.bz2

具体参考https://blog.csdn.net/Teeyohuang/article/details/105874065

 https://mirror.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/ninja-1.9.0-py37hfd86e86_0.tar.bz2

https://mirror.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/cudatoolkit-10.1.243-h6bb024c_0.tar.bz2

注意,如果是离线安装的话,需要安装四个包

 如果还是不行,比如报错 ModuleNotFoundError: No module named 'torchvision'

还是执行 conda install torchvision -c pytorch吧

如果还报错 Your PyTorch installation may be too old,则需要安装 conda install pytorch -c pytorch 

package | build
---------------------------|-----------------
pytorch-1.4.0 |py3.7_cuda10.1.243_cudnn7.6.3_0 432.9 MB pytorch
------------------------------------------------------------

如果下载太慢,就直接到清华镜像中去下载 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/

py3.7_cuda10.1.243_cudnn7.6.3_0