当前位置:   article > 正文

Ubuntu20.4安装pytorch的笔记和遇到的坑

Ubuntu20.4安装pytorch的笔记和遇到的坑

1。 选择miniconda.

具体方法是下载到

Miniconda3-py311_23.11.0-1-Linux-x86_64.sh

然后执行安装。这里我不累述了。

2。 添加路径到~/.bashrc 中的$PATH

3。 conda deactivate后,conda create -n myenv

具体如下

conda create -n myenv python=3.8
conda activate myenv

为什么要指定为3.8?

这里是一个坑。因为没有装这个包,也可以安装pytorch,但没有这个包,就无法import pytorch。
但只有3.8以下的版本,才能安装numpy.

4. 看清楚源

将原有的源删除:

conda config --remove channels https://repo.continuum.io/pkgs/free

conda config --remove channels nvidia

conda config --remove channels pytorch

添加新的源

conda config --show channels
conda config --remove-key channels
conda config --add channels https://repo.anaconda.com/pkgs/free/linux-64/
conda config --add channels https://repo.anaconda.com/pkgs/main/linux-64/
conda config --set show_channel_urls yes
conda config --show channels

源这里坑有两个被我遇到。

一是网上都说清华源,也不清楚是不是我运气不好,不太灵光。其它的也都不行。

第二是个坑是,这个网站:https://repo.anaconda.com/pkgs/free/linux-64/

网上的文章是 : https://repo.anaconda.com/pkgs/free/win-64/

我也比较马虎,没有看清楚,但越来越觉得不对。

然后直接把这个链接放到web browser,才发现,还有一个 linux-64的路径。

5. 安装cuda
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

安装前,应当确认自己的显卡。

我很久以前买的1050Ti,目前NVDIA还是支持的很好。看来有米还是买Ti版本的。(当前主流为4090X)

要注意应先将显卡驱动装好。然后得到与之对应的CUDA. 如果差距过大,需要卸载驱动,重装cuda.还应当先去 pytorch网站,查看一下,当前最新的 cuda版本是什么。

有人说cuda向下兼容,有人说,最好完全一样。这个看个人喜好。但如果差了大版本,那可能是要出问题。

这也是一个坑。

6。 安装好之后验证:

import torch

>>> print("PyTorch version:", torch.__version__)
PyTorch version: 2.3.0


示例2:

  1. import torch
  2. import time
  3. if torch.cuda.is_available():
  4. device = torch.device('cuda')
  5. else:
  6. device = torch.device('cpu')
  7. print(f"Device: {device}")
  8. # 定义一个较大的张量用于计算
  9. size = (10240, 10240)
  10. input_cpu = torch.randn(size)
  11. input_gpu = input_cpu.to(device)
  12. # 在CPU上执行矩阵乘法(耗时操作)
  13. start_time_cpu = time.time()
  14. output_cpu = torch.mm(input_cpu, input_cpu.t())
  15. duration_cpu = time.time() - start_time_cpu
  16. # 在GPU上执行同样的操作
  17. start_time_gpu = time.time()
  18. output_gpu = torch.mm(input_gpu, input_gpu.t().to(device))
  19. duration_gpu = time.time() - start_time_gpu
  20. # 输出结果和运行时间
  21. print(f"CPU Matrix Multiplication Time: {duration_cpu:.6f} seconds")
  22. print(f"GPU Matrix Multiplication Time: {duration_gpu:.6f} seconds")

输出为:

>>> # 输出结果和运行时间
>>> print(f"CPU Matrix Multiplication Time: {duration_cpu:.6f} seconds")
CPU Matrix Multiplication Time: 2.947035 seconds
>>> print(f"GPU Matrix Multiplication Time: {duration_gpu:.6f} seconds")
GPU Matrix Multiplication Time: 0.329065 seconds
 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/591130
推荐阅读
相关标签
  

闽ICP备14008679号