解决方案:炼丹师养成计划 Pytorch+DeepLearning遇见的各种报错与踩坑避坑记录(一)

简介: 解决方案:炼丹师养成计划 Pytorch+DeepLearning遇见的各种报错与踩坑避坑记录(一)

@[TOC]

问题1: load() missing 1 required positional argument: 'Loader'

问题原因:该报错原因提示为load函数缺少必填的Loader参数

解决方案1:使用safe_load()函数代替 load()

import yaml
    with open(filename, 'r') as f:
        yaml_cfg = edict(yaml.safe_load(f))

解决方案2:添加参数 Loader=yaml.FullLoader

import yaml
    with open(filename, 'r') as f:
        yaml_cfg = edict(yaml.load(f,Loader=yaml.FullLoader))

解决方案3:降级pyyaml 版本(亲测有效)

pip install pyyaml==5.4.1

问题2:ModuleNotFoundError: No module named 'dateutil'

问题原因:pip install dateutil失败,因为该模块非常坑,他叫 python-dateutil

解决方案: pip3 install python-dateuti

问题3:RuntimeError: Expected object of backend CPU but got backend CUDA for argument #4 'mat1'

问题原因:期望的对象是在后端CPU,但参数在后端CUDA上面,直白来说,就是模型没有放到cuda上面,但是模型需要的参数或者模型的部分模块被放到了cuda上面。

解决方案:将模型也放到cuda上

# 进行可用设备检测, 有GPU的话将优先使用GPU
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    model = model.to(device) 或 model = model.cuda(device)

问题4:ValueError: not enough values to unpack (expected 3, got 2)

问题原因:期望有三个返回值,但其实函数只有两个返回值

解决方案:定位到错误,检查函数和接收函数返回值的参数个数

# 问题5:Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

问题原因:输入的数据类型为torch.cuda.FloatTensor,说明输入数据在GPU中

模型参数的数据类型为torch.FloatTensor,说明模型还在CPU

解决方案:将对应的模型参数放入cuda

如:

proj = nn.Conv2d(3, 3, 3, 4, 0)
imgs[i] = proj(imgs[i])

出错,说明img[i]在gpu上面,而我们的proj还在cpu上,所以要把proj放到cuda上面去:

proj = nn.Conv2d(3, 3, 3, 4, 0)
proj = proj.cuda()
imgs[i] = proj(imgs[i])
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
9天前
|
人工智能 安全 PyTorch
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
SPDL是Meta AI推出的开源高性能AI模型数据加载解决方案,基于多线程技术和异步事件循环,提供高吞吐量、低资源占用的数据加载功能,支持分布式系统和主流AI框架PyTorch。
42 10
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
|
PyTorch 算法框架/工具
Pytorch中Trying to backward through the graph和one of the variables needed for gradient错误解决方案
Pytorch中Trying to backward through the graph和one of the variables needed for gradient错误解决方案
2207 0
Pytorch中Trying to backward through the graph和one of the variables needed for gradient错误解决方案
|
7月前
|
机器学习/深度学习 并行计算 PyTorch
【多GPU炼丹-绝对有用】PyTorch多GPU并行训练:深度解析与实战代码指南
本文介绍了PyTorch中利用多GPU进行深度学习的三种策略:数据并行、模型并行和两者结合。通过`DataParallel`实现数据拆分、模型不拆分,将数据批次在不同GPU上处理;数据不拆分、模型拆分则将模型组件分配到不同GPU,适用于复杂模型;数据和模型都拆分,适合大型模型,使用`DistributedDataParallel`结合`torch.distributed`进行分布式训练。代码示例展示了如何在实践中应用这些策略。
2031 2
【多GPU炼丹-绝对有用】PyTorch多GPU并行训练:深度解析与实战代码指南
|
机器学习/深度学习 数据采集 自然语言处理
【Deep Learning A情感文本分类实战】2023 Pytorch+Bert、Roberta+TextCNN、BiLstm、Lstm等实现IMDB情感文本分类完整项目(项目已开源)
亮点:代码开源+结构清晰+准确率高+保姆级解析 🍊本项目使用Pytorch框架,使用上游语言模型+下游网络模型的结构实现IMDB情感分析 🍊语言模型可选择Bert、Roberta 🍊神经网络模型可选择BiLstm、LSTM、TextCNN、Rnn、Gru、Fnn共6种 🍊语言模型和网络模型扩展性较好,方便读者自己对模型进行修改
632 0
|
数据采集 自然语言处理 PyTorch
全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!
全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!
全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!
|
PyTorch 算法框架/工具 Python
AttributeError: module ‘distutils‘ has no attribute ‘version‘解决跑pytorch代码报错
AttributeError: module ‘distutils‘ has no attribute ‘version‘解决跑pytorch代码报错
|
并行计算 PyTorch 算法框架/工具
离线下载安装PyTorch的不报错方法
离线下载安装PyTorch的不报错方法
|
机器学习/深度学习 人工智能 数据挖掘
【Deep Learning B图像分类实战】2023 Pytorch搭建AlexNet、VGG16、GoogleNet等共5个模型实现COIL20数据集图像20分类完整项目(项目已开源)
亮点:代码开源+结构清晰规范+准确率高+保姆级解析+易适配自己数据集+附原始论文+适合新手
396 0
|
PyTorch 算法框架/工具 决策智能
改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减(2)
改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减
152 0
|
机器学习/深度学习 人工智能 PyTorch
改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减(1)
改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减
133 0