我是靠谱客的博主 活泼乌龟,最近开发中收集的这篇文章主要介绍训练之中发生OOM的解决问题办法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

训练中发生OOM很有可能是一个批次对应的数据过长,导致一次GPU不能够完全地容纳地下
比如如下的情况:

for token_ids,segment_ids in tqdm(self.sample(random)):
#传入的数据在下面定义train_generator = data_generator(train_data, batch_size)
    batch_token_ids.append(token_ids)
    batch_segment_ids.append(segment_ids)

此时由于批次之中有数据过长,因此会发生OOM的情况,修改的方法很简单,将对应内容改为下面的内容即可

for token_ids,segment_ids in tqdm(self.sample(random)):
#传入的数据在下面定义train_generator = data_generator(train_data, batch_size)
    if len(token_ids) > self.maxlen:
        token_ids = token_ids[:self.maxlen]
        segment_ids = segment_ids[:self.maxlen]
    batch_token_ids.append(token_ids)
    batch_segment_ids.append(segment_ids)

最后

以上就是活泼乌龟为你收集整理的训练之中发生OOM的解决问题办法的全部内容,希望文章能够帮你解决训练之中发生OOM的解决问题办法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部