首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google中gpu中的cuda内存问题

google中gpu中的cuda内存问题
EN

Stack Overflow用户
提问于 2020-11-12 18:26:45
回答 1查看 1.6K关注 0票数 2

我试图运行代码,从flair和bert获得堆叠嵌入,并得到以下错误。其中一项建议是减少批处理大小,但如何将数据分批传递?这是代码和错误。

代码语言:javascript
复制
from tqdm import tqdm ## tracks progress of loop ##
import torch
from flair.data import Sentence
from flair.embeddings import TransformerDocumentEmbeddings

from flair.embeddings import DocumentPoolEmbeddings
bert_embeddings = TransformerDocumentEmbeddings('bert-base-uncased')

### initialize the document embeddings, mode = mean ###
document_embeddings = DocumentPoolEmbeddings([
                                             flair_forward, 
                                             flair_backward,
                                              bert_embeddings 
                                             ])
# Storing Size of embedding #
z = sentence.embedding.size()[0]
print(z)
### Vectorising text ###
# creating a tensor for storing sentence embeddings
sen = torch.zeros(0,z)
print(sen)

# iterating Sentences #
for tweet in tqdm(txt):   
  sentence = Sentence(tweet)
  document_embeddings.embed(sentence)# *****this line is giving error*****
  # Adding Document embeddings to list #
  if(torch.cuda.is_available()):
    sen = sen.cuda()
  sen = torch.cat((sen, sentence.embedding.view(-1,z)),0)

这就是我要犯的错误。

代码语言:javascript
复制
RuntimeError                              Traceback (most recent call last)
<ipython-input-24-1eee00445350> in <module>()
     24 for tweet in tqdm(txt):
     25   sentence = Sentence(tweet)
---> 26   document_embeddings.embed(sentence)
     27   # Adding Document embeddings to list #
     28   if(torch.cuda.is_available()):

7 frames
/usr/local/lib/python3.6/dist-packages/torch/nn/modules/rnn.py in forward(self, input, hx)
    580         if batch_sizes is None:
    581             result = _VF.lstm(input, hx, self._flat_weights, self.bias, self.num_layers,
--> 582                               self.dropout, self.training, self.bidirectional, self.batch_first)
    583         else:
    584             result = _VF.lstm(input, batch_sizes, hx, self._flat_weights, self.bias,

RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 7.43 GiB total capacity; 6.54 GiB already allocated; 10.94 MiB free; 6.70 GiB reserved in total by PyTorch)
EN

回答 1

Stack Overflow用户

发布于 2022-03-31 13:50:12

代码语言:javascript
复制
embeddings = FlairEmbeddings('news-forward', chars_per_chunk=128)

例如:

代码语言:javascript
复制
embedding_types = [
    WordEmbeddings('glove'),
    FlairEmbeddings('news-forward',chars_per_chunk=128),
    FlairEmbeddings('news-backward'),
]

根据flair添加的新函数编辑代码,以避免这样做,以查看它是否有效。根据我自己的经验,Google不适合用于像NER这样的任务的大型变压器模型。

参见github文档,以获得有关特定任务的更多示例!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64809673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档