训练时候查看gpu溢出情况

训练时候查看gpu溢出情况


训练时候查看gpu溢出情况
#深度学习/gpu相关代码

pytorch

我可以帮您了解如何在 GPU 溢出的时候给您提示。

  • 使用 try-except 语句来捕获 CUDA out of memory 的异常,并在发生异常时打印提示信息。例如,您可以使用以下代码:
import torch
try:
  # 您的训练代码
  model = torch.nn.Linear(1024, 1024).cuda()
  x = torch.rand(1024, 1024).cuda()
  y = model(x)
except RuntimeError as e:
  if 'out of memory' in str(e):
    print('GPU 溢出了,请调整参数或释放资源')
  else:
    raise e
  • 使用 torch.cuda.memory_summary() 函数来打印 GPU 的内存使用情况,并在每个迭代或周期后检查内存是否有异常增长。例如,您可以使用以下代码:
import torch
model = torch.nn.Linear(1024, 1024).cuda()
x = torch.rand(1024, 1024).cuda()
for i in range(10):
  y = model(x)
  print(f'第 {i+1} 次迭代后的 GPU 内存使用情况:')
  print(torch.cuda.memory_summary())
  • 使用 nvidia-smi 命令来查看 GPU 的状态和占用情况,并在训练前后或中途运行该命令来观察内存是否有异常增长。您可以在命令行中输入该命令,或者在 Python 中使用 os.system() 函数来执行该命令。例如,您可以使用以下代码:
import os
os.system('nvidia-smi')

tensorflow

我可以帮您了解如何查看 GPU 溢出的代码,有以下几种方法:

import tensorflow as tf
try:
  # 您的训练代码
  model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(1024, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
  ])
  model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
  model.fit(trainX, trainY, epochs=95, batch_size=8, validation_data=(testX, testY), verbose=2,shuffle=False)
except RuntimeError as e:
  if 'out of memory' in str(e):
    print('GPU 溢出了,请调整参数或释放资源')
  else:
    raise e
import tensorflow as tf
gpus = tf.config.list_physical_devices('GPU')
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(1024, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
  ])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
for i in range(10):
  model.fit(trainX, trainY, epochs=1, batch_size=8, validation_data=(testX, testY), verbose=2,shuffle=False)
  print(f'第 {i+1} 次迭代后的 GPU 内存使用情况:')
  print(tf.config.experimental.get_memory_info(gpus[0]))
import os
os.system('nvidia-smi')
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值