ImportError: DLL load failed: 找不到指定的程序
参考
/shuiyixin/article/details/90370588
C:\ProgramData\Anaconda3\python.exe "C:\Program Files\JetBrains\PyCharm .3.1\plugins\python\helpers\pydev\pydevconsole.py" --mode=client --port=61583
import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend(['C:\\Users\\pc\\PycharmProjects\\seq2seq', 'C:/Users/pc/PycharmProjects/seq2seq'])
Python 3.7.5 (default, Oct 31 , 15:18:51) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.
PyDev console: using IPython 7.9.0
Python 3.7.5 (default, Oct 31 , 15:18:51) [MSC v.1916 64 bit (AMD64)] on win32
runfile('C:/Users/pc/PycharmProjects/seq2seq/RnnSeqLenAndBatchSize.py', wdir='C:/Users/pc/PycharmProjects/seq2seq')
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-e3646211eb52>", line 1, in <module>
runfile('C:/Users/pc/PycharmProjects/seq2seq/RnnSeqLenAndBatchSize.py', wdir='C:/Users/pc/PycharmProjects/seq2seq')
File "C:\Program Files\JetBrains\PyCharm .3.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "C:\Program Files\JetBrains\PyCharm .3.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/pc/PycharmProjects/seq2seq/RnnSeqLenAndBatchSize.py", line 6, in <module>
import torchvision.transforms as transforms
File "C:\Program Files\JetBrains\PyCharm .3.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\torchvision\__init__.py", line 1, in <module>
from torchvision import models
File "C:\Program Files\JetBrains\PyCharm .3.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\torchvision\models\__init__.py", line 11, in <module>
解决办法重装 torchvision
1 卸载
C:\Users\pc>pip uninstall torchvision
Found existing installation: torchvision 0.3.0
Uninstalling torchvision-0.3.0:
Would remove:
c:\programdata\anaconda3\lib\site-packages\torchvision
c:\programdata\anaconda3\lib\site-packages\torchvision-0.3.0-py3.7.egg-info
Proceed (y/n)? y
Successfully uninstalled torchvision-0.3.0
2 安装torchvision0.7.0 查看torch用的是1.6.0版本,而对应得torchvision==0.7.0
直接用pip install torchvision==0.7.0 用的是清华的镜像,报告找不到对应包,可能是清华镜像地址比较老原因
直接下载轮子安装
轮子地址
/whl/torch_stable.html
安装命令(切到whl的下载目录中执行)
pip install "torchvision-0.7.0+cpu-cp37-cp37m-win_amd64.whl"
Looking in indexes: https://pypi.tuna./simple
Processing c:\users\pc\downloads\torchvision-0.7.0+cpu-cp37-cp37m-win_amd64.whl
Requirement already satisfied: pillow>=4.1.1 in c:\programdata\anaconda3\lib\sit
e-packages (from torchvision==0.7.0+cpu) (6.2.1)
Requirement already satisfied: numpy in c:\programdata\anaconda3\lib\site-packag
es (from torchvision==0.7.0+cpu) (1.17.4)
Requirement already satisfied: torch==1.6.0 in c:\programdata\anaconda3\lib\site
-packages (from torchvision==0.7.0+cpu) (1.6.0)
Requirement already satisfied: future in c:\programdata\anaconda3\lib\site-packa
ges (from torch==1.6.0->torchvision==0.7.0+cpu) (0.18.2)
Installing collected packages: torchvision
Successfully installed torchvision-0.7.0+cpu
验证
import torchvision as tv
print(tv.__version__)
0.7.0+cpu
#然后执行py代码并附结果如下,表明安装的该包可以正常运行
# -*- coding: utf-8 -*-import torchimport torch.utils.data as Dataimport torch.nn as nnimport torchvision.transforms as transformsimport numpy as np### Demo datasetdata_ = [[1, 10, 11, 15, 9, 100],[2, 11, 12, 16, 9, 100],[3, 12, 13, 17, 9, 100],[4, 13, 14, 18, 9, 100],[5, 14, 15, 19, 9, 100],[6, 15, 16, 10, 9, 100],[7, 15, 16, 10, 9, 100],[8, 15, 16, 10, 9, 100],[9, 15, 16, 10, 9, 100],[10, 15, 16, 10, 9, 100]]### Demo Dataset classclass DemoDatasetLSTM(Data.Dataset):"""Support class for the loading and batching of sequences of samplesArgs:dataset (Tensor): Tensor containing all the samplessequence_length (int): length of the analyzed sequence by the LSTMtransforms (object torchvision.transform): Pytorch's transforms used to process the data"""## Constructordef __init__(self, dataset, sequence_length=1, transforms=None):self.dataset = datasetself.seq_len = sequence_lengthself.transforms = transforms## Override total dataset's length getterdef __len__(self):return self.dataset.__len__()## Override single items' getterdef __getitem__(self, idx):if idx + self.seq_len > self.__len__():if self.transforms is not None:item = torch.zeros(self.seq_len, self.dataset[0].__len__())item[:self.__len__()-idx] = self.transforms(self.dataset[idx:])return item, itemelse:item = []item[:self.__len__()-idx] = self.dataset[idx:]return item, itemelse:if self.transforms is not None:return self.transforms(self.dataset[idx:idx+self.seq_len]), self.transforms(self.dataset[idx:idx+self.seq_len])else:return self.dataset[idx:idx+self.seq_len], self.dataset[idx:idx+self.seq_len]### Helper for transforming the data from a list to Tensordef listToTensor(list):tensor = torch.empty(list.__len__(), list[0].__len__())for i in range(list.__len__()):tensor[i, :] = torch.FloatTensor(list[i])return tensor### Dataloader instantiation# Parametersseq_len = 3batch_size = 2data_transform = transforms.Lambda(lambda x: listToTensor(x))dataset = DemoDatasetLSTM(data_, seq_len, transforms=data_transform)data_loader = Data.DataLoader(dataset, batch_size, shuffle=False)for data in data_loader:x, _ = dataprint(x)print('\n')
#结果如下
tensor([[[ 1., 10., 11., 15., 9., 100.],
[ 2., 11., 12., 16., 9., 100.],
[ 3., 12., 13., 17., 9., 100.]],
[[ 2., 11., 12., 16., 9., 100.],
[ 3., 12., 13., 17., 9., 100.],
[ 4., 13., 14., 18., 9., 100.]]])
tensor([[[ 3., 12., 13., 17., 9., 100.],
[ 4., 13., 14., 18., 9., 100.],
[ 5., 14., 15., 19., 9., 100.]],
[[ 4., 13., 14., 18., 9., 100.],
[ 5., 14., 15., 19., 9., 100.],
[ 6., 15., 16., 10., 9., 100.]]])
tensor([[[ 5., 14., 15., 19., 9., 100.],
[ 6., 15., 16., 10., 9., 100.],
[ 7., 15., 16., 10., 9., 100.]],
[[ 6., 15., 16., 10., 9., 100.],
[ 7., 15., 16., 10., 9., 100.],
[ 8., 15., 16., 10., 9., 100.]]])