CUDA和Pytorch(GPU版)安装问题解决

参考教程:

miniconda官网下载链接:Miniconda — conda documentation

pytorch官网下载链接:Start Locally | PyTorch

CUDA官网:CUDA Toolkit 11.7 Update 1 Downloads | NVIDIA Developer

B站Up跟李沐学AI的vedio:Windows 下安装 CUDA 和 Pytorch 跑深度学习 - 动手学深度学习v2_哔哩哔哩_bilibili

在下载Pytorch过程中遇到如下报错:

ERROR: Exception:
Traceback (most recent call last):
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 438, in _error_catcher
    yield
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 519, in read
    data = self._fp.read(amt) if not fp_closed else b""
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 62, in read
    data = self.__fp.read(amt)
  File "C:\Users\67349\miniconda3\lib\http\client.py", line 459, in read
    n = self.readinto(b)
  File "C:\Users\67349\miniconda3\lib\http\client.py", line 503, in readinto
    n = self.fp.readinto(b)
  File "C:\Users\67349\miniconda3\lib\socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "C:\Users\67349\miniconda3\lib\ssl.py", line 1241, in recv_into
    return self.read(nbytes, buffer)
  File "C:\Users\67349\miniconda3\lib\ssl.py", line 1099, in read
    return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\cli\base_command.py", line 173, in _main
    status = self.run(options, args)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\cli\req_command.py", line 203, in wrapper
    return func(self, options, args)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\commands\install.py", line 315, in run
    requirement_set = resolver.resolve(
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 94, in resolve
    result = self._result = resolver.resolve(
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 472, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 341, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 172, in _add_to_criteria
    if not criterion.candidates:
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\resolvelib\structs.py", line 151, in __bool__
    return bool(self._sequence)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 140, in __bool__
    return any(self)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 128, in 
    return (c for c in iterator if id(c) not in self._incompatible_ids)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 32, in _iter_built
    candidate = func()
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 204, in _make_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 295, in __init__
    super().__init__(
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 156, in __init__
    self.dist = self._prepare()
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 227, in _prepare
    dist = self._prepare_distribution()
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 305, in _prepare_distribution
    return self._factory.preparer.prepare_linked_requirement(
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\operations\prepare.py", line 508, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\operations\prepare.py", line 550, in _prepare_linked_requirement
    local_file = unpack_url(
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\operations\prepare.py", line 239, in unpack_url
    file = get_http_url(
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\operations\prepare.py", line 102, in get_http_url
    from_path, content_type = download(link, temp_dir.path)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\network\download.py", line 145, in __call__
    for chunk in chunks:
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\cli\progress_bars.py", line 144, in iter
    for x in it:
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_internal\network\utils.py", line 63, in response_chunks
    for chunk in response.raw.stream(
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 576, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 541, in read
    raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
  File "C:\Users\67349\miniconda3\lib\contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Users\67349\miniconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 443, in _error_catcher
    raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='download.pytorch.org', port=443): Read timed out.

解决方法:

python -m pip install -U --force-reinstall pip

再重新执行Pytorch安装命令:需要注意自己的python版本和pytorch版本的匹配

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

成功下载即可

CUDA和Pytorch(GPU版)安装问题解决_第1张图片

 最后附上pytorch检验方法:

>>> import torch
>>> a = torch.ones((3,1))
>>> a = a.cuda(0)
>>> b = torch.ones((3,1)).cuda(0)
>>> a + b
tensor([[2.],
        [2.],
        [2.]], device='cuda:0')

你可能感兴趣的:(pytorch,深度学习,python)