Pytorch释放显存占用方式

下面是关于Pytorch如何释放显存占用的完整攻略,包含两条示例说明。

1. 使用with torch.no_grad()释放显存

在Pytorch中,通过with语句使用torch.no_grad()上下文管理器可以释放显存,这个操作对于训练中不需要梯度计算的代码非常有用。

代码示例:

import torch

# 创建一个3000 * 3000的矩阵
tensor = torch.randn((3000, 3000))

# 开启上下文管理器,释放梯度计算
with torch.no_grad():
    # 计算矩阵的逆矩阵
    inv_tensor = torch.inverse(tensor)

# 逆矩阵计算结束后,回到正常计算模式

2. 使用torch.cuda.empty_cache()释放显存

在使用Pytorch训练神经网络时,经常会出现显存占用过高的问题。这时可以使用torch.cuda.empty_cache()释放一些不必要的显存。

代码示例:

import torch

# 创建一个3000 * 3000的矩阵,并将其放到设备上运算
tensor = torch.randn((3000, 3000)).to("cuda")

# 使用矩阵进行计算
result = tensor.matmul(tensor)

# 记录结果值
value = result.mean()

# 释放一些显存
torch.cuda.empty_cache()

# 继续进行后续计算

综上所述,以上是两种有效的Pytorch释放显存占用方式,可以帮助我们更好的管理显存,提高训练过程中的稳定性和效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pytorch释放显存占用方式 - Python技术站

(1)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • pytorch提取神经网络模型层结构和参数初始化

    torch.nn.Module()类有一些重要属性,我们可用其下面几个属性来实现对神经网络层结构的提取: torch.nn.Module.children() torch.nn.Module.modules() torch.nn.Module.named_children() torch.nn.Module.named_moduless() 为方面说明,我们…

    2023年4月8日
    00
  • Pytorch tutorial 之Transfer Learning

    引自官方:  Transfer Learning tutorial Ng在Deeplearning.ai中讲过迁移学习适用于任务A、B有相同输入、任务B比任务A有更少的数据、A任务的低级特征有助于任务B。对于迁移学习,经验规则是如果任务B的数据很小,那可能只需训练最后一层的权重。若有足够多的数据则可以重新训练网络中的所有层。如果重新训练网络中的所有参数,这个…

    2023年4月8日
    00
  • pytorch 学习–60分钟入个门

    pytorch视频教程 标量(Scalar)是只有大小,没有方向的量,如1,2,3等向量(Vector)是有大小和方向的量,其实就是一串数字,如(1,2)矩阵(Matrix)是好几个向量拍成一排合并而成的一堆数字,如[1,2;3,4]其实标量,向量,矩阵它们三个也是张量,标量是零维的张量,向量是一维的张量,矩阵是二维的张量。 简单相加 a+b torch.a…

    PyTorch 2023年4月8日
    00
  • Pytorch入门实例:mnist分类训练

    #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = ‘denny’ __time__ = ‘2017-9-9 9:03’ import torch import torchvision from torch.autograd import Variable import torch.utils…

    PyTorch 2023年4月8日
    00
  • pytorch 中tensor在CPU和GPU之间转换

    1. CPU tensor转GPU tensor: cpu_imgs.cuda()2. GPU tensor 转CPU tensor: gpu_imgs.cpu()3. numpy转为CPU tensor: torch.from_numpy( imgs )4.CPU tensor转为numpy数据: cpu_imgs.numpy()5. note:GPU t…

    PyTorch 2023年4月8日
    00
  • pytorch加载和保存模型

    在模型完成训练后,我们需要将训练好的模型保存为一个文件供测试使用,或者因为一些原因我们需要继续之前的状态训练之前保存的模型,那么如何在PyTorch中保存和恢复模型呢? 方法一(推荐): 第一种方法也是官方推荐的方法,只保存和恢复模型中的参数。 保存     torch.save(the_model.state_dict(), PATH) 恢复 the_mo…

    PyTorch 2023年4月8日
    00
  • Pytorch 中 tensor的维度拼接

    torch.stack() 和 torch.cat() 都可以按照指定的维度进行拼接,但是两者也有区别,torch.satck() 是增加新的维度进行堆叠,即其维度拼接后会增加一个维度;而torch.cat() 是在原维度上进行堆叠,即其维度拼接后的维度个数和原来一致。具体说明如下: torch.stack(input,dim) input: 待拼接的张量序…

    PyTorch 2023年4月8日
    00
  • PyTorch: .add()和.add_(),.mul()和.mul_(),.exp()和.exp_()

    .add()和.add_() .add()和.add_()都能把两个张量加起来,但.add_是in-place操作,比如x.add_(y),x+y的结果会存储到原来的x中。Torch里面所有带”_”的操作,都是in-place的。 .mul()和.mul_() x.mul(y)或x.mul_(y)实现把x和y点对点相乘,其中x.mul_(y)是in-plac…

    2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部