win10 英伟达显卡MAX150 安装GPU版pytorch(一)选择合适的CUDA、CUDNN和torch

本人深度学习框架小白一枚,在安装使用深度学习框架过程中遇到了不少问题,幸好有师兄的帮助,才得以成功安装。同时也深感对于新入门的小伙伴,在安装pytorch过程中的不易,特此将经验分享一下,如果觉得不错,请点个赞吧。
本人电脑的基本配置是:2018年4月份买的电脑,英伟达显卡MAX150,固态硬盘 256G,Intel i5-8250u, 使用的是python3.7 ,IDLE是pycharm
安装的pytorch 的版本是 :torch-1.0.1-cp37-cp37m-win_amd64
安装的内容:CUDA CUDNN 和torch
具体的安装步骤如下:
1、你的电脑必须有英伟达(NVIDIA)的显卡,这是必备的基本条件。第一步,有的博客说你需要到nvidia的官网查看你的显卡是否支持的CUDA,个人认为是没有必要的。你需要做的是在桌面右键打开控制面板,在这里插入图片描述
点击左下角的“系统信息”→再点击“组件”在这里插入图片描述
这样就查到了你的显卡是否支持CUDA以及适合的版本是哪种。之后就可以去NVIDIA的官网https://developer.nvidia.com/cuda-toolkit-archive下载对应版本。(这是我的显卡支持的版本,但是我不建议使用太新的版本。所以我下载的是9.2版的。)在这里插入图片描述
其次就是下载对应版本的CUDNNhttps://developer.nvidia.com/cudnn。注意,两者的版本一定要对应!在下载CUDNN时需要先进行注册,比较简单一分钟就完事了。之后就下载相应的版本就行了。

### 无NVIDIA显卡环境下的YOLOv5部署 在没有NVIDIA显卡的情况下,可以利用CPU来运行YOLOv5进行推理或训练。尽管性能会受到显著影响,但仍可以通过调整配置文件依赖项实现这目标。 #### 修改PyTorch的设备设置 默认情况下,YOLOv5会在可用时优先使用GPU进行计算。为了强制使用CPU,需修改代码中的设备指定部分。具体来说,在`train.py`或`detect.py`脚本中,将设备参数改为`cpu`: ```python device = 'cpu' ``` 此操作确保所有张量运算都在CPU上执行[^3]。 #### 安装必要的依赖项 即使不使用GPU,仍需安装完整的PyTorch库以支持YOLOv5的功能需求。根据引用[^4],推荐使用的PyTorch本为2.3.1。可通过以下命令安装仅含CPU支持的PyTorch本: ```bash pip install torch==2.3.1+cpu torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu ``` 上述命令专门针对CPU环境优化了安装包的选择。 #### 调整批量大小其他超参数 由于CPU的并行处理能力远低于GPU,因此建议降低批量大小(batch size),以减少内存占用并提高效率。可以在`data/hyps/hyp.scratch-low.yaml`或其他相关配置文件中调整这些参数。例如,将批量大小设为较小值如2或4。 #### 性能预期 需要注意的是,即便成功完成了以上步骤,在纯CPU环境中运行深度学习模型通常非常缓慢。对于复杂的图像检测任务,每秒处理帧数(FPS)可能会降到不可接受的程度。如果条件允许,考虑租用云端服务提供商(如AWS、Google Cloud等)提供的临时GPU实例作为补充解决方案[^2]。 ### 示例代码片段 以下是经过适当修改后的YOLOv5推理入口函数的部分,展示了如何切换至CPU模式: ```python import torch from models.common import DetectMultiBackend from utils.general import check_img_size, non_max_suppression, scale_boxes from utils.torch_utils import select_device weights = './yolov5s.pt' # 权重路径 imgsz = (640, 640) # 输入图片尺寸 conf_thres = 0.25 # 置信度阈值 iou_thres = 0.45 # IOU 阈值 # 强制选择 CPU 设备 device = select_device('cpu') model = DetectMultiBackend(weights, device=device) stride, names, pt = model.stride, model.names, model.pt imgsz = check_img_size(imgsz, s=stride) def run(source='image.jpg'): from PIL import Image img = Image.open(source).convert("RGB") im = letterbox(np.array(img), new_shape=imgsz)[0] im = im.transpose((2, 0, 1))[::-1] im = np.ascontiguousarray(im) im = torch.from_numpy(im).to(device) im = im.half() if model.fp16 else im.float() im /= 255 pred = model(im.unsqueeze(0)) pred = non_max_suppression(pred, conf_thres, iou_thres) for det in pred: if len(det): gn = torch.tensor(img.shape)[[1, 0, 1, 0]] xyxy = scale_boxes(im.shape[1:], det[:, :4], img.size).round() print("Inference completed on CPU.") run() ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值