Pet问题反馈¶
这里进行两个方面的介绍:
提问与贡献解决方案
pet安装常见问题的示例
提问与贡献解决方案¶
这里我们希望为使用者在安装和使用pet时提供一个解决问题的途径。
关于提问的注意内容¶
安装出现问题时,请先核对环境要求、安装步骤和已存在的解决方案
不要针对一个问题重复提问
提问时,请将自己的环境、执行过程、描述清楚
遇到不同于已有的问题时,创建新的Issue,以问题出现的环节命名
在此,我们也十分欢迎和感谢用户提供自己的解决方案
安装中常见问题的示例¶
这里用来介绍pet安装的常见问题及解决办法,按问题产生的执行步骤划分板块,来汇总错误。
执行“sudo pip3 install -r PytorchEveryThing/requirements.txt”¶
Issue 1:报错信息显示:“no module named gdbm”问题。
解决方案:使用apt-get安装“python3.5-gdbm”模块:
sudo apt-get install python3.5-gdbm
Issue 2:报错信息显示:”python setup.py egg_info”。
解决方案:安装“libpq-dev“和”python3.5-dev”模块:
sudo apt-get install libpq-dev python3.5-dev
在“PytorchEveryThing/pet”下执行“./make”¶
Issue 1:“make: g++: Command not found”
解决方案:更新apt-get,安装与gcc对应版本的g++
sudo apt-get update
sudo apt-get install g++
Issue 2:ImportError: torch.utils.ffi requires the cffi package 解决方案:在python2.7下安装“cffi”模块
sudo pip install cffi
运行SSD时的错误¶
Issue :RuntimeError: randperm is only implemented for CPU¶
File "./tools/ssd/train_net_multi_gpu.py", line 330, in <module>
main()
File "./tools/ssd/train_net_multi_gpu.py", line 299, in main
train_loss = train(model, train_loader, criterion, priors, optimizer, epoch)
File "./tools/ssd/train_net_multi_gpu.py", line 72, in train
for i, (inputs, targets) in enumerate(iterator):
File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/dataloader.py", line 451, in __iter__
return _DataLoaderIter(self)
File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/dataloader.py", line 247, in __init__
self._put_indices()
File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/dataloader.py", line 295, in _put_indices
indices = next(self.sample_iter, None)
File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/sampler.py", line 138, in __iter__
for idx in self.sampler:
File "/usr/local/lib/python3.5/dist-packages/torch/utils/data/sampler.py", line 51, in __iter__
return iter(torch.randperm(len(self.data_source)).tolist())
RuntimeError: randperm is only implemented for CPU
解决方案:修改“python3.6/site-packages/torch/utils/data“路径下的”sampler.py”文件
cd python3.6/site-packages/torch/utils/data
sudo vim sampler.py
(类名称:RandomSampler;函数:iter;51行)将原来的:
def __iter__(self):
return iter(torch.randperm(len(self.data_source)).tolist())
修改为:
def __iter__(self):
cpu = torch.device('cpu')
return iter(torch.randperm(len(self.data_source), device=cpu).tolist())