python上でビッグデータ(といえるかはわからないけど)を使い機械学習をしていたのですが
メモリーが足りず途中で止まってしまいます
pytochを使っています
思いついたもの データの圧縮 ssdで保存など
データはメモリで保存 (x.to("cpu"))
モデルはGPUで動かしています(x.to("cuda"))
調べても違う物しか出てこず困ってます
メモリ周りの知識がないためどうすればいいか全くわかりません
なにかいい方法はありませんか?
いちよ問題のデータ周りのコード
class Memory:#memory__ def __init__(self, max_size=1000): self.buffer = [deque() for _ in range(5)]#データを入れる配列を定義 self.max_size=(max_size*main.R2D2trin)+main.multireward_steps+main.R2D2trin self.recarent_memory=deque([[] for _ in range(5)]) def cat_buffer(self):#増えすぎた分の削除 if self.max_size < len(self.buffer[4]): while self.max_size < len(self.buffer[4]): self.buffer[0].popleft() self.buffer[1].popleft() self.buffer[2].popleft() self.buffer[3].popleft() self.buffer[4].popleft() def add(self, experience):#データの追加 for _,i in enumerate(experience): self.buffer[_].append(i)
エラーメッセージ
RuntimeError Traceback (most recent call last) <ipython-input-1-6f011859a521> in <module> 826 state_size=state_,action_size=acthon, 827 multireward_steps=main.multireward_steps, --> 828 tau=tau,mord_update=main.mord_update,kappa=main.kappa) 829 memory.cat_buffer() 830 memory_TDerror.cat_buffer() <ipython-input-1-6f011859a521> in Double_R2D2_IQN_pioritized_Nstep_NAF_replay(self, batch_size, gamma, step, state_size, action_size, multireward_steps, tau, mord_update, kappa) 441 #mini_batch 442 hidden,hidden_next,inputs,nexts,rewards=self.R2D2_get(idx_deta,multireward_steps, --> 443 batch_size,age_idx) 444 445 taua=torch.randn(main.R2D2trin*batch_size,self.IQN_D,device ="cuda:0") <ipython-input-1-6f011859a521> in R2D2_get(self, idx, multireward_steps, batch_size, age_idx) 531 inputs=[torch.cat(steta).view(self.R2D2trin,batch_size,3,128,128),# 532 torch.cat(action).view(self.R2D2trin,batch_size,1,-1)]# --> 533 nexts=torch.cat(nexts).view(self.R2D2trin,batch_size,3,128,128)# 534 rewards=torch.cat(rewards).view(self.R2D2trin,batch_size,1,-1)# 535 with torch.no_grad(): RuntimeError: [enforce fail at ..\c10\core\CPUAllocator.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 78643200 bytes. Buy new RAM!
回答2件
あなたの回答
tips
プレビュー