2021-10-19 PyTorch教程之Tensors(一)

本文介绍了如何使用PyTorch创建Tensor对象,展示基本的数学运算,如加法、大小获取,以及切片操作。通过实例演示了`torch.Tensor`的创建、元素级操作和维度处理,适合初学者理解Tensors的核心概念。
部署运行你感兴趣的模型镜像

PyTorch教程之Tensors

>>> import torch
>>> x = torch.Tensor(2,3)
>>> x
tensor([[0., 0., 0.],
        [0., 0., 0.]])
>>> y=torch.rand(3,4)
>>> y
tensor([[0.4464, 0.8380, 0.2633, 0.6285],
        [0.9167, 0.4549, 0.4253, 0.6597],
        [0.0015, 0.4274, 0.2199, 0.3969]])
>>> y.size()
torch.Size([3, 4])
>>> a = y.size()[0]
>>> a
3
>>> b = y.size()[1]
>>> b
4
>>> z = torch.rand(3,4)
>>> z
tensor([[0.3165, 0.9564, 0.0270, 0.6598],
        [0.6044, 0.8573, 0.3340, 0.8657],
        [0.0120, 0.6371, 0.1377, 0.8685]])
>>> y+z
tensor([[0.7629, 1.7944, 0.2903, 1.2883],
        [1.5211, 1.3122, 0.7593, 1.5254],
        [0.0136, 1.0645, 0.3576, 1.2654]])
>>> torch.add(y,z)
tensor([[0.7629, 1.7944, 0.2903, 1.2883],
        [1.5211, 1.3122, 0.7593, 1.5254],
        [0.0136, 1.0645, 0.3576, 1.2654]])
>>> y.add_(z)
tensor([[0.7629, 1.7944, 0.2903, 1.2883],
        [1.5211, 1.3122, 0.7593, 1.5254],
        [0.0136, 1.0645, 0.3576, 1.2654]])
>>> y
tensor([[0.7629, 1.7944, 0.2903, 1.2883],
        [1.5211, 1.3122, 0.7593, 1.5254],
        [0.0136, 1.0645, 0.3576, 1.2654]])
>>> y[:,1]
tensor([1.7944, 1.3122, 1.0645])
>>> y[1,:]
tensor([1.5211, 1.3122, 0.7593, 1.5254])
>>>

 

您可能感兴趣的与本文相关的镜像

PyTorch 2.7

PyTorch 2.7

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

<think>嗯,用户遇到了在Windows环境下使用PyTorch时出现的DLL加载失败问题,具体是OSError: [WinError 182]。根据用户的描述和提供的引用内容,这个问题可能与CUDA版本或依赖项不匹配有关,特别是用户提到使用的是torch 1.8.1和CUDA 11.3。我需要结合之前的对话和用户的引用内容来给出解决方案。 首先,用户提供的引用[1]提到版本不匹配是导致问题的原因,用户之前处理过类似问题,通过调整torch-geometric等相关库的版本解决了问题。引用[2]展示了用户卸载并重新安装相关模块的过程,而引用[3]则提到安装PyTorch 1.8.1时遇到的坑点,建议从官网安装并注意国内源的问题。 用户当前的错误是OSError: [WinError 182],这通常意味着系统架构不兼容或DLL文件缺失/损坏。结合用户使用的torch 1.8.1和CUDA 11.3,需要确认这两个版本是否兼容。根据PyTorch官方文档,torch 1.8.1对应的CUDA版本应该是11.1,而不是11.3,因此可能存在版本不匹配的问题。 接下来,我需要检查用户是否安装了正确的PyTorch版本与CUDA工具包。用户可能错误地安装了与CUDA 11.3不兼容的torch 1.8.1版本。此外,用户可能没有安装必要的系统依赖,如Microsoft Visual C++ Redistributable,或者环境变量中缺少CUDA路径。 另外,引用[2]中提到用户卸载了torch-cluster、torch-sparse等库,并重新安装,这可能意味着用户在使用PyTorch Geometric等扩展库时遇到了问题,这些库需要与PyTorch和CUDA版本严格匹配。因此,除了PyTorch本身,这些扩展库的版本也需要对应。 解决方案方面,首先需要指导用户确认Python架构是否为64位,然后检查PyTorch与CUDA版本的兼容性,重新安装正确版本的PyTorch和CUDA工具包。同时,确保系统依赖项如VC++ Redistributable已安装,并正确设置环境变量。对于扩展库如torch-geometric,需要安装与PyTorch和CUDA版本匹配的版本。 用户可能需要逐步卸载现有的PyTorch和相关库,清理环境,然后按照官方推荐命令重新安装。此外,用户可能在使用conda或pip时混用导致冲突,建议使用conda进行安装以避免依赖问题。如果用户处于内网环境,可能需要手动下载离线包安装。 最后,需要验证安装后的环境是否正常工作,包括检查torch.cuda.is_available()是否为True,并确保所有扩展库正确安装。可能还需要调整虚拟内存设置,尤其是在处理大型模型时避免内存不足的问题。</think>### 基于您提供的环境(torch 1.8.1 + CUDA 11.3)和错误特征,以下是针对性的解决方案: --- #### **1. 版本匹配核心原则** ```markdown PyTorch 1.8.1 官方编译版本仅支持 CUDA 11.1,与您当前的 CUDA 11.3 存在直接冲突[^1] ``` | 组件 | 必须匹配的版本 | 官方验证方法 | |-----------------|--------------------------|--------------------------------| | PyTorch | 1.8.1 | `print(torch.__version__)` | | CUDA Toolkit | **11.1**(非11.3) | `nvcc --version` | | torch-geometric | 1.7.0 ~ 1.7.2 | `print(torch_geometric.__version__)` | --- #### **2. 分步修复流程** ##### **步骤1:完全卸载冲突组件** ```powershell # 强制卸载所有torch相关库 pip uninstall -y torch torchvision torchaudio torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric # 清理残留文件(关键!) Remove-Item -Recurse -Force $env:USERPROFILE\.cache\torch Remove-Item -Recurse -Force $env:LOCALAPPDATA\Programs\Python\Python39\Lib\site-packages\torch* ``` ##### **步骤2:安装精准匹配版本** ```powershell # 使用conda安装PyTorch 1.8.1 + CUDA 11.1 conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=11.1 -c pytorch -c conda-forge # 安装对应几何库版本(必须顺序安装) pip install torch-scatter==2.0.7 -f https://data.pyg.org/whl/torch-1.8.0+cu111.html pip install torch-sparse==0.6.12 -f https://data.pyg.org/whl/torch-1.8.0+cu111.html pip install torch-cluster==1.5.9 -f https://data.pyg.org/whl/torch-1.8.0+cu111.html pip install torch-geometric==1.7.2 -f https://data.pyg.org/whl/torch-1.8.0+cu111.html ``` ##### **步骤3:验证DLL加载能力** ```python import torch # 检查CUDA状态 assert torch.cuda.is_available(), "CUDA不可用!" print(f"PyTorch版本: {torch.__version__}") # 应显示1.8.1 print(f"CUDA工具包版本: {torch.version.cuda}") # 应显示11.1 # 强制加载问题DLL验证 from ctypes import CDLL CDLL(r"D:\Anaconda\envs\your_env\Lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll") # 替换实际路径 ``` --- #### **3. 关键依赖修复** 1. **安装VC++ 2019 Redistributable** 下载地址:[vc_redist.x64.exe](https://aka.ms/vs/16/release/VC_redist.x64.exe) ```cmd :: 静默安装并验证 vc_redist.x64.exe /install /quiet /norestart reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" /v Version ``` 2. **更新NVIDIA驱动到CUDA 11.1兼容版本** - 推荐驱动版本:472.12+([驱动下载](https://www.nvidia.cn/Download/index.aspx)- 验证方法: ```powershell nvidia-smi --query-gpu=driver_version --format=csv ``` --- #### **4. 环境变量修复** ```powershell # 以管理员身份运行 [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin;C:\Program Files\NVIDIA Corporation\NVSMI", "Machine") ``` --- ### **验证流程图** ```mermaid graph TD A[加载DLL失败] --> B{检查torch与CUDA版本} B -->|不匹配| C[卸载重装精准版本] B -->|匹配| D{检查VC++ Redist} D -->|缺失| E[安装VC++ 2019] D -->|已安装| F{检查NVIDIA驱动} F -->|过时| G[更新驱动至472.12+] F -->|最新| H[验证环境变量] H -->|错误| I[手动添加CUDA路径] H -->|正确| J[运行DLL加载测试] ``` --- ### **相关问题** 1. **如何确认PyTorch是否真正在使用CUDA 11.1?** ```python print(torch.version.cuda) # 应返回'11.1' ``` 2. **torch-geometric安装时出现`No matching distribution`错误怎么办?** 使用`-f`参数指定精确的二进制仓库地址,例如: ```bash pip install torch-geometric==1.7.2 -f https://data.pyg.org/whl/torch-1.8.0+cu111.html ``` 3. **如何彻底清理PyTorch残留注册表项?** 使用`regedit`删除以下路径: ``` HKEY_CURRENT_USER\Software\Python\PythonCore\3.9\Modules\torch HKEY_LOCAL_MACHINE\SOFTWARE\Python\PyTorch ``` [^1]: PyTorch官方版本兼容性表 [^2]: CUDA工具包与驱动版本对应关系 [^3]: Windows环境变量管理指南
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值