返回顶部
首页 > 资讯 > 后端开发 > Python >使用Pytorch 2.0训练踩坑
  • 495
分享到

使用Pytorch 2.0训练踩坑

pytorch深度学习python 2023-09-22 15:09:17 495人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

概述 最近博主在跑一个实验,但它在PyTorch 1.8版本下感觉有点慢,刚好又看到Pytorch 2.0版本加速很多,所以准备用Pytorch 2.0版本运行代码。在这个过程中,出现了一些小问题,还

概述

最近博主在跑一个实验,但它在PyTorch 1.8版本下感觉有点慢,刚好又看到Pytorch 2.0版本加速很多,所以准备用Pytorch 2.0版本运行代码。在这个过程中,出现了一些小问题,还有一些warning。为了防止这些错误和warning干扰到实验的结果,我在网上查找了相关办法,并在此记录。

问题

FutureWarning: The module torch.distributed.launch is deprecated and will be removed in future. Use torchrun.Note that --use-env is set by default in torchrun

同时它还会提示你如下信息:

train.py: error: unrecognized arguments: --local-rank=0

我之前是在Pytorch 1.8版本下运行的,对应的运行命令是:

python -m  torch.distributed.launch --master_port 9843  --nproc_per_node=2  train.py

在Pytorch 2.0版本下应该使用如下命令:

Python -m  torch.distributed.launch --master_port 9843  --nproc_per_node=2 --use_env train.py

增加一个--use_env即可。
声明--use_env后,pytorch会将当前进程在本机上的rank添加到环境变量LOCAL_RANK中,而不再添加到args.local_rank

UserWarning: The parameter ‘pretrained’ is deprecated since 0.13 and may be removed in the future, please use ‘weights’ instead.

这是因为torchvision里面的pretrained参数已经在Pytorch 2.0里面过时了,现在使用的是weights参数。
除了上面的警告,还会出现:

UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet50_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet50_Weights.DEFAULT` to get the most up-to-date weights.

我在Pytorch 1.8中使用的语句是:

resnet = models.resnet50(pretrained=True)

解决方法是:

resnet = models.resnet50(weights=torchvision.models.ResNet50_Weights.IMAGENET1K_V1)

使用最新的方法就可以了。

AttributeError: module ‘numpy’ has no attribute ‘int’.

因为在np.int在numpy1.20已经被废弃掉了。具体可以查看: https://numpy.org/devdocs/release/1.20.0-notes.html
我的原语句是:

cls_gt = np.zeros((3, 384, 384), dtype=np.int)

改成:

cls_gt = np.zeros((3, 384, 384), dtype=np.int_)

或者使用np.int32或者np.int64

np.bool was a deprecated alias for the builtin bool. To avoid this error in existing code, use bool by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy Scalar type, use np.bool_ here.

因为在np.bool在numpy1.20已经被废弃掉了。
我的原语句是:

annotation = annotation.astype(np.bool)

改成:

annotation = annotation.astype(np.bool_)

UserWarning: ComplexHalf support is experimental and many operators don’t support it yet

除了警报,还会报错:

RuntimeError: cuFFT only supports dimensions whose sizes are powers of two when computing in half precision

出现这个的原因是我使用了混合精度。
解决办法是将Automatic mixed precision关掉

来源地址:https://blog.csdn.net/qq_41234663/article/details/129896837

--结束END--

本文标题: 使用Pytorch 2.0训练踩坑

本文链接: https://lsjlt.com/news/415492.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用Pytorch 2.0训练踩坑
    概述 最近博主在跑一个实验,但它在Pytorch 1.8版本下感觉有点慢,刚好又看到Pytorch 2.0版本加速很多,所以准备用Pytorch 2.0版本运行代码。在这个过程中,出现了一些小问题,还...
    99+
    2023-09-22
    pytorch 深度学习 python
  • pytorch 如何使用float64训练
    pytorch默认使用单精度float32训练模型, 原因在于: 使用float16训练模型,模型效果会有损失,而使用double(float64)会有2倍的内存压力,且不会带来太多...
    99+
    2024-04-02
  • pytorch怎么用gpu训练
    在PyTorch中使用GPU进行训练非常简单,只需按照以下步骤操作: 检查是否有可用的GPU设备: import torch ...
    99+
    2024-04-08
    pytorch
  • 怎么在pytorch中使用float64训练
    怎么在pytorch中使用float64训练?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。原因在于:使用float16训练模型,模型效果会有损失,而使用double(float...
    99+
    2023-06-15
  • 如何使用Pytorch训练分类器
    如何使用Pytorch训练分类器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、 数据通常来说,当你处理图像,文本,语音或者视频数据时,你可以使用标准python包将数据加载...
    99+
    2023-06-02
  • pytorch 如何使用batch训练lstm网络
    batch的lstm # 导入相应的包 import torch import torch.nn as nn import torch.nn.functional as F im...
    99+
    2024-04-02
  • 使用Pytorch训练two-head网络的操作
    之前有写过一篇如何使用Pytorch实现two-head(多输出)模型 在那篇文章里,基本把two-head网络以及构建讲清楚了(如果不清楚请先移步至那一篇博文)。 但是我后来发现之...
    99+
    2024-04-02
  • PyTorch中如何使用预训练的模型
    在PyTorch中使用预训练的模型可以通过torchvision库中的models模块实现。该模块包含了一些常用的预训练模型,如Re...
    99+
    2024-03-05
    PyTorch
  • pytorch怎么用gpu训练模型
    在PyTorch中使用GPU进行模型训练可以极大地加速训练过程。以下是一些简单的步骤来使用GPU训练模型: 检查是否有可用的GPU...
    99+
    2024-04-02
  • PyTorch使用GPU训练的两种方法实例
    目录Pytorch 使用GPU训练方法一 .cuda()方法二 .to(device)附:一些和GPU有关的基本操作汇总总结Pytorch 使用GPU训练 使用 GPU 训练只需要在...
    99+
    2024-04-02
  • 详解如何使用Pytorch进行多卡训练
    目录1.DP2.DDP2.1Pytorch分布式基础2.2Pytorch分布式训练DEMO当一块GPU不够用时,我们就需要使用多卡进行并行训练。其中多卡并行可分为数据并行和模型并行。...
    99+
    2024-04-02
  • pytorch 如何使用amp进行混合精度训练
    简介 AMP:Automatic mixed precision,自动混合精度,可以在神经网络推理过程中,针对不同的层,采用不同的数据精度进行计算,从而实现节省显存和加快速度的目的。...
    99+
    2024-04-02
  • pytorch如何调用训练好的模型
    要调用训练好的模型,首先需要加载模型的参数,并将其应用到一个 PyTorch 模型中。以下是一个简单的示例代码,展示如何加载模型参数...
    99+
    2024-04-02
  • Pytorch 使用Google Colab训练神经网络深度学习
    目录学习前言什么是Google Colab相关链接利用Colab进行训练一、数据集与预训练权重的上传1、数据集的上传2、预训练权重的上传二、打开Colab并配置环境1、笔记本的创建2...
    99+
    2024-04-02
  • Pytorch怎么使用Google Colab训练神经网络深度
    本篇内容介绍了“Pytorch怎么使用Google Colab训练神经网络深度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是...
    99+
    2023-06-30
  • pytorch 预训练模型读取修改相关参数的填坑问题
    pytorch 预训练模型读取修改相关参数的填坑 修改部分层,仍然调用之前的模型参数。 resnet = resnet50(pretrained=False) resnet.lo...
    99+
    2024-04-02
  • vue使用Swiper踩坑解决避坑
    目录我的Swiper定义:报错信息:保留默认名class:swiper-container查看GitHub我的Swiper定义: Failed to execute 'get...
    99+
    2023-05-20
    vue Swiper踩坑解决 vue Swiper避坑
  • SpringRestTemplate的使用与踩坑
    目录引言项目使用踩坑记录引言 最近的项目需求中有使用到后端发送http请求,在网上寻找资料后发现可以使用spring自带的RestTemplate类实现,故作此记录 项目使用 将下述...
    99+
    2023-02-10
    Spring RestTemplate Spring RestTemplate基本使用
  • 使用PyTorch训练LSTM时出现loss.backward()报错如何解决
    使用PyTorch训练LSTM时出现loss.backward()报错如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。正确做法:LSRM / RNN模...
    99+
    2023-06-15
  • pytorch使用voc分割数据集训练FCN流程讲解
    目录一、FCN理论介绍二、训练过程2.1 voc数据集介绍2.2 网络定义2.3 训练语义分割是对图像中的每一个像素进行分类,从而完成图像分割的过程。分割主要用于医学图像领域和无人驾...
    99+
    2022-12-08
    pytorch训练FCN pytorch voc训练FCN
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作