华为云服务器,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
输入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就搞定了。