概述
训练中发生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的解决问题办法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复