์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
THCudaCheck FAIL file=/data/users/soumith/miniconda2/conda-bld/pytorch-0.1.9_1487346124464/work/torch/lib/THC/generic/THCStorage.cu line=66 error=2 : out of memory
Traceback (most recent call last):
File "main_snli.py", line 293, in <module>
experiment=BaseExperiment()
File "main_snli.py", line 74, in __init__
self.model.cuda()
File "/home/bbbian/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 143, in cuda
return self._apply(lambda t: t.cuda(device_id))
File "/home/bbbian/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 114, in _apply
module._apply(fn)
File "/home/bbbian/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 114, in _apply
module._apply(fn)
File "/home/bbbian/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 120, in _apply
param.data = fn(param.data)
File "/home/bbbian/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py", line 143, in <lambda>
return self._apply(lambda t: t.cuda(device_id))
File "/home/bbbian/anaconda3/lib/python3.6/site-packages/torch/_utils.py", line 51, in _cuda
return self.type(getattr(torch.cuda, self.__class__.__name__), async)
File "/home/bbbian/anaconda3/lib/python3.6/site-packages/torch/_utils.py", line 24, in _type
return new_type(self.size()).copy_(self, async)
RuntimeError: cuda runtime error (2) : out of memory at /data/users/soumith/miniconda2/conda-bld/pytorch-0.1.9_1487346124464/work/torch/lib/THC/generic/THCStorage.cu:66
์ด ์ค๋ฅ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์์ต๋๊น?
GPU์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํฉ๋๋ค. ๋ฒ๊ทธ๊ฐ ์๋๋๋ค.
@apaszke
๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด 'out of memory.....' ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉฐ ํ
์คํธ ์
๋ ฅ ๋ฐ์ดํฐ ์ฐจ์์ 49200์
๋๋ค.
๊ทธ๋ฌ๋ 49200์์ 1000์ผ๋ก ๋ ๋ฎ์ ๋ฐ์ดํฐ ์ฐจ์์ ์๋ํ์ ๋ ์ฝ๋๋ ์ ์์ ์ผ๋ก ์คํ๋ฉ๋๋ค.
๋ณ๊ฒฝํด์ผ ํ๋ pytorch์ ๋งค๊ฐ๋ณ์ ์ค์ ์ด ์์ต๋๊น?
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.dropout = nn.Dropout(p=0.2)
self.relu = nn.ReLU()
self.fc1 = nn.Linear(49200, 49200)
self.fc2 = nn.Linear(49200, 49200)
self.fc3 = nn.Linear(49200, 3)
self.out = nn.Sequential(
self.fc1,
self.relu,
self.dropout,
self.fc1,
self.relu,
self.dropout,
self.fc3
)
def forward(self, premise, hypothesis):
return self.out(torch.cat([premise, hypothesis], 1))
net = Net().cuda()
print (net)
premise = Variable(torch.randn(64, 82, 300))
hypothesis = Variable(torch.randn(64, 82, 300))
premise = premise.cuda()
hypothesis = hypothesis.cuda()
out = net(premise.contiguous().view(64,-1), hypothesis.contiguous().view(64,-1))
print(out)
๋ ๊ฐ์ ํฐ FC ๋ ์ด์ด์ ๋งค๊ฐ๋ณ์์ ๊ธฐ์ธ๊ธฐ ์ฌ์ด์์ ๋คํธ์ํฌ(ํฌ๊ธฐ 49200)์๋ 40GB์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค...
@jekbradbury ๊ณ์ฐ์ ์ค๋ช ํ ์ ์์ต๋๊น? ๋งค๊ฐ๋ณ์ ๋ฐ ๊ทธ๋ผ๋์ธํธ์ ๊ด๋ จํ์ฌ ๊ฐ ๋ ์ด์ด๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์ผ๋ง์ ๋๊น? ๊ฐ์ฌ ํด์.
ํด๋น ๋ชจ๋ธ์์ ๋จ์ผ ์ ํ ๋ ์ด์ด์ ๊ฐ์ค์น๋ง ๊ณ ๋ คํ๋ ๊ฒฝ์ฐ. ๋น์ ์ ์ป์
49200^2 = 2ย 420ย 640ย 000
์์ + ๊ฐ ์์๋ 4๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก
2ย 420ย 640ย 000 * 4 / 1024^3 = 9,01GB
๋ฌด๊ฒ๋ง์ ์ํด. ๊ทธ๋ฐ ๋ค์ ๊ทธ๋ผ๋์ธํธ๋ฅผ ์ ์ฅํ๋ ค๋ฉด ์ด ํฌ๊ธฐ์ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฒญํฌ๊ฐ ํ์ํฉ๋๋ค. ๋ํ ๊ทธ๋ผ๋์ธํธ๋ฅผ ๊ณ์ฐํ ์ ์๋๋ก ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํด์ผ ํฉ๋๋ค.
์๋ ํ์ธ์, ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ง ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํด์๋ง ์ค๊ณ ์์ต๋๋ค. ์ ์ฒด ๊ต์ก ๊ณผ์ ์ ์๋ฒฝํ๊ฒ ์ ์๋ํ์ต๋๋ค. Inception v3๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ด ํ์ต์ ํ๋ ค๊ณ ํฉ๋๋ค. ์๋ฌด๋ ๋๋ฅผ ๋์ธ ์ ์์ต๋๊น? ๊ฐ์ฌ ํด์
@tabibusairam ๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ต์ก ํ๋ก์ธ์ค๋ ์ ์๋ํ์ง๋ง(6G cuda ๋ฉ๋ชจ๋ฆฌ์ ๋ด GPU์๋ 12G ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์) ๋์ผํ ๋คํธ์ํฌ๋ฅผ ํต๊ณผํ๋ ํ๊ฐ ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ์ ๋ณด๋ฅผ ๋ฐ์์ต๋๋ค.
THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1503965122592/work/torch/lib/THC/generic/THCStorage.cu line=66 error=2 : out of memory
Traceback (most recent call last):
File "evaluate.py", line 132, in <module>
evaluate(pnet, args)
File "evaluate.py", line 94, in evaluate
predictions = pnet(X_test, initial_states)
File "/home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in __call__
result = self.forward(*input, **kwargs)
File "/home/zcrwind/workspace/pro/predict/zcr/pnet.py", line 497, in forward
output, hidden_states = self.step(A0, hidden_states)
File "/home/zcrwind/workspace/pro/predict/zcr/pnet.py", line 377, in step
forget_gate = hard_sigmoid(self.conv_layers['f'][lay](inputs))
File "/home/zcrwind/workspace/pro/predict/zcr/pnet.py", line 28, in hard_sigmoid
x = F.threshold(-x, 0, 0)
File "/home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site-packages/torch/nn/functional.py", line 459, in threshold
return _functions.thnn.Threshold.apply(input, threshold, value, inplace)
File "/home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site-packages/torch/nn/_functions/thnn/auto.py", line 174, in forward
getattr(ctx._backend, update_output.name)(ctx._backend.library_state, input, output, *args)
RuntimeError: cuda runtime error (2) : out of memory at /opt/conda/conda-bld/pytorch_1503965122592/work/torch/lib/THC/generic/THCStorage.cu:66
์ด๋ํ์ จ๋์? ๊ฐ์ฌ ํด์.
์ ํจ์ฑ ๊ฒ์ฌ ๋์์ ๊ณ์ฐ ๊ทธ๋ํ๋ ๊ธฐ์ฐจ์์์ ๊ฐ์ด ๋ค๋ฆ
๋๋ค.
๋งค๊ฐ๋ณ์๋ ์ ํจ์ฑ ๊ฒ์ฌ์์ ํ๋ จ๋์ง ์์ต๋๋ค. ๋ช
๋ น์ ์ฌ์ฉํด๋ณด์ญ์์ค -
nvidia-smi๋ฅผ ์คํํ์ฌ ์ ํจ์ฑ ๊ฒ์ฌ ์ค์ GPU ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ ํ์ธํฉ๋๋ค.
๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ค์ฌ๋ณด์ญ์์ค(๋จ์ผ GPU์์๋ง ์์
ํ๋ ๊ฒฝ์ฐ).
๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ ๋ฐฐ์น ํฌ๊ธฐ๊ฐ ์์์๋ก ์ ์ต๋๋ค.
2018๋
1์ 14์ผ ์ผ์์ผ ์ค์ 11:17, Chenrui Zhang [email protected]
์ผ๋ค:
@tabibusairam https://github.com/tabibusairam ๋๋ ๋ง๋ฌ๋ค
๋์ผํ ๋ฌธ์ : ๊ต์ก ํ๋ก์ธ์ค๊ฐ ์ ์๋ํ์ต๋๋ค(6G cuda ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๋ด
GPU์๋ 12G ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์) ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น ํ๊ฐ ํ๋ก์ธ์ค
๋คํธ์ํฌ์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ์ ๋ณด๊ฐ ์์ต๋๋ค.THCudaCheck FAIL ํ์ผ=/opt/conda/conda-bld/pytorch_1503965122592/work/torch/lib/THC/generic/THCStorage.cu line=66 error=2 : ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "evaluate.py", 132ํ,
ํ๊ฐ(prednet, ์ธ์)
ํ๊ฐ์์ ํ์ผ "evaluate.py", 94ํ
์์ธก = prednet(X_test, initial_states)
ํ์ผ "/home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site-packages/torch/nn/modules/module.py", 224ํ, __call__
๊ฒฐ๊ณผ = self.forward( ์ ๋ ฅ, * kwargs)
ํ์ผ "/home/zcrwind/workspace/ijcai2018/predict/zcrPredNet/prednet.py", 497ํ, ์์ผ๋ก
์ถ๋ ฅ, hidden_states = self.step(A0, hidden_states)
ํ์ผ "/home/zcrwind/workspace/ijcai2018/predict/zcrPredNet/prednet.py", 377ํ, ๋จ๊ณ์ ์ผ๋ก
forget_gate = hard_sigmoid(self.conv_layers['f'][lay](์ ๋ ฅ))
ํ์ผ "/home/zcrwind/workspace/ijcai2018/predict/zcrPredNet/prednet.py", 28ํ, hard_sigmoid
x = F.threshold(-x, 0, 0)
ํ์ผ "/home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site-packages/torch/nn/functional.py", ๋ผ์ธ 459, ์๊ณ๊ฐ
return _functions.thnn.Threshold.apply(์ ๋ ฅ, ์๊ณ๊ฐ, ๊ฐ, ์ ์๋ฆฌ)
ํ์ผ "/home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site-packages/torch/nn/_functions/thnn/auto.py", 174ํ, ์์ผ๋ก
getattr(ctx._backend, update_output.name)(ctx._backend.library_state, ์ ๋ ฅ, ์ถ๋ ฅ, *args)
RuntimeError: cuda ๋ฐํ์ ์ค๋ฅ(2): /opt/conda/conda-bld/pytorch_1503965122592/work/torch/lib/THC/generic/THCStorage.cu:66์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ด๋ํ์ จ๋์? ๊ฐ์ฌ ํด์.
โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/pytorch/pytorch/issues/958#issuecomment-357490369 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMHzdCQ_jJ9ogDm1jaNSLB6wCbfP08XOks5tKZT8gaJpZM4MW6we
.
@tabibusairam ๊ฐ์ฌํฉ๋๋ค. ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ค์์ผ๋ฉฐ ํ๊ฐ ์ฝ๋๋ ์ด์ ์์ฃผ ์ ์๋ํฉ๋๋ค.
@tabibusairam pytorch.org ์ ์์ ๋ก ์ ์ก ๊ธฐ๋ ์ฝ๋๋ฅผ ์์ฑํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์๊ฐ์ด ์์ต๋๋ค.
์, ๊ทธ ํ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.
๋ํ ๋ชจ๋ธ์ nn.DataParallel์ ์ถ๊ฐํ์ต๋๋ค.
๋ค๋ฅธ ์์ด๋์ด๋ ๋ฐ๋์ ํ์ํฉ๋๋ค
2018๋ 1์ 22์ผ ์ค์ 5์ 32๋ถ์ "Tommeychang" [email protected] ์ด ์์ฑํ์ต๋๋ค.
@tabibusairam https://github.com/tabibusairam
pytorch.org์ ์์ ๋ก ๊ธฐ์ธ๊ธฐ ์ฝ๋๋ฅผ ์ ์กํ์๊ฒ ์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋๋
๊ทธ๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ ๋ค๋ฅธ ์์ด๋์ด.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/pytorch/pytorch/issues/958#issuecomment-359294050 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMHzdN8mRJKNr_0czrXDd-p66-iJImubks5tM9AggaJpZM4MW6we
.
@tabibusairam ๊ฐ์ ์ํฉ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ถ๋ก ์ Variable()์์ "volatile"์ ๋ณ๊ฒฝํ์ฌ ํด๊ฒฐํ์ต๋๋ค. volatile=True๋ก ์ค์ ํ๋ฉด ์ถ๋ก ์ค์ ๊ณ์ฐ ๊ทธ๋ํ๊ฐ ์ ์ง๋ฉ๋๋ค. ์ถ๋ก ์๊ฐ์๋ ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ์ ์งํ ํ์๊ฐ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์๋ชจํฉ๋๋ค.
`Variable(x, volatile=True)'์ ๊ฐ์ด volatile ํ๋๊ทธ๋ฅผ True๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์ด ์์์๋ ํ๋ จ ๋ฐ ๊ฒ์ฆ์ ์ํด ๊ฐ๊ฐ ๋ ๊ฐ์ ๋ชจ๋ธ์ด ์์ฑ๋ฉ๋๋ค. ์ด ์ค์ ์ ์ฌ์ฉํ๋ฉด ์ ํจ์ฑ ๊ฒ์ฌ ์ GPU์์ ๋ค๋ฅธ ๋ชจ๋ธ์ด ์คํ๋๊ณ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ์ดํฐ๋ฅผ volatile ๋งค๊ฐ๋ณ์๋ก ๋ํํ๋๋ผ๋ GPU์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํฉ๋๋ค.
์ ๋ ์ด ๋ฌธ์ ๋ฅผ ํ๋์ ๋ชจ๋ธ๋ง ์ค์ ํ์ฌ ํด๊ฒฐํ๊ณ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ์ดํฐ๋ฅผ volatile ๋งค๊ฐ๋ณ์๋ก ๋ํํ์ฌ ๊ณ์ฐ์ ์ค์
๋๋ค. @tabibusairam
@TommeyChang๋, ๊ฐ์ฌํฉ๋๋ค. ์ ์ด ํ์ต ์ํ์ ํ์ธํ์ง๋ง ๊ฒ์ฆ์์๋ ๋ชจ๋ธ์ด ์ค์ ๋ ์์น๋ฅผ ์ดํดํ ์ ์์์ต๋๋ค. ์ฝ๋์์ ๋ชจ๋ธ์ด ์ค์ ๋ ์์น๋ฅผ ๋ณด์ฌ ์ฃผ์๊ฒ ์ต๋๊น?
์ด ๋ฌธ์ ๋ ์ฝ๋๊ฐ ์๋ pytorch๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ฝ๋๋ ์๋์ ๊ฐ์ต๋๋ค.
๋จ๊ณ == 'ํ๋ จ'์ธ ๊ฒฝ์ฐ:
scheduler.step()
model.train(True) # ๋ชจ๋ธ์ ํ๋ จ ๋ชจ๋๋ก ์ค์
๋ ๋ค๋ฅธ:
model.train(False) # ๋ชจ๋ธ์ ํ๊ฐ ๋ชจ๋๋ก ์ค์
watch -n 1 -d nvidia-smi๋ก GPU ํต๊ณ๋ฅผ ์ถ์ ํ๋ฉด ์ฒซ ๋ฒ์งธ ๊ฒ์ฆ ์ํฌํฌ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
ํ๋ จ๊ณผ ๊ฒ์ฆ ๋ชจ๋์ ๋ํด ๊ฒ์ฆ์ ์ํด ๋์ผํ ๋ชจ๋ธ์ ์ด๋ป๊ฒ ์ ํํ์ต๋๊น?
2018๋ 1์ 27์ผ ์ค์ 11์ 44๋ถ์ "Tommeychang" [email protected] ์ด ์์ฑํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ฝ๋๊ฐ ์๋ pytorch๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค
์๋์:
๋จ๊ณ == 'ํ๋ จ'์ธ ๊ฒฝ์ฐ:
scheduler.step()
model.train(True) # ๋ชจ๋ธ์ ํ๋ จ ๋ชจ๋๋ก ์ค์
๋ ๋ค๋ฅธ:
model.train(False) # ๋ชจ๋ธ์ ํ๊ฐ ๋ชจ๋๋ก ์ค์
watch -n 1 -d nvidia-smi๋ฅผ ์ฌ์ฉํ์ฌ GPU ํต๊ณ๋ฅผ ์ถ์ ํ๋ฉด
์ฒซ ๋ฒ์งธ ์ ํจ์ฑ ๊ฒ์ฌ ์ํฌํฌ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํฉ๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/pytorch/pytorch/issues/958#issuecomment-360963591 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMHzdBKY_UCQ3QMtnUhdHoahxUx-oG4eks5tOr6ugaJpZM4MW6we
.
๋ชจ๋ธ์ ๋ชจ๋๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด ์์์ ํ๋ จ ๋ชจ๋๊ฐ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์ธํธ ๋ผ์ธ์ ํ์ํ์ง ์์ง๋ง ์ ํจ์ฑ ๊ฒ์ฌ ๋จ๊ณ์์ ํ๋ฐ์ฑ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์๋ฅผ ๋ณ์๋ก ๋ํํฉ๋๋ค. ๋ด ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
if phase == 'train':
scheduler.step()
........
for data in dataloaders[phase]: ## Iterate over data.
inputs, labels = data ## get the inputs
if use_gpu: ## pass them into GPU
inputs = inputs.cuda()
labels = labels.cuda()
if phase == 'train': ## wrap them in Variable
inputs, labels = Variable(inputs), Variable(labels)
else:
inputs = Variable(inputs, volatile=True)
labels = Variable(labels, volatile=True)
๊ฐ์ฌ ํด์. ํ์ง๋ง validation ์ค์๋ train flag๋ฅผ False๋ก ์ค์ ํ์ง ์์ผ๋ฉด BatchNormalization๊ณผ Dropout์ด train/validation ๋จ๊ณ์์ ๋ค๋ฅด๊ฒ ๋์ํ๊ธฐ ๋๋ฌธ์ ์ ์ ํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค๋ ๊ฒ์ด ๋๋ ต์ต๋๋ค.
๊ทธ๋ ๋๋ ๋์ ๊ฐ์ ์๊ฐ์ด์ผ. ๊ทธ๋ฆฌ๊ณ ๋๋ ๊ธฐ์ฐจ ํ๋๊ทธ False๋ก ๋ด ๋ชจ๋ธ์ ํ ์คํธํ๊ณ ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค. ์กฐ์ธ ๊ฐ์ฌํฉ๋๋ค.
๋๋ volatile=True
๋ฅผ ์๋ํ๊ณ ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค. @jekbradbury ๋ฅผ ๊ฐ๋ฅด์ณ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
@TommeyChang @tabibusairam ๋๋ ๊ฐ์ ์ค๋ฅ๋ฅผ ์น๊ณ ์์ง๋ง ๋ค๋ฅธ ๊ฒฝ์ฐ์ ๋๋ค. ์ด ํจ์๋ฅผ ํตํด ๋ด ๋ชจ๋ธ์ ์๋ก์ด ์ ๊ทํ ์ฉ์ด๋ฅผ ์ถ๊ฐํ๊ณ ์์ต๋๋ค.
def l2_reg(mdl):
l2_reg = None
for W in mdl.parameters():
if W.ndimension() < 2:
continue
else:
if l2_reg is None:
l2_reg = (torch.max(torch.abs(W)))**2
else:
l2_reg = l2_reg + (torch.max(torch.abs(W)))**2
return l2_reg
๋ด๊ฐ ๊ด์ฐฐํ ๊ฒ์ ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ 128์์ 8๋ก ๋ณ๊ฒฝํ๋๋ผ๋ ์ฒซ ๋ฒ์งธ ์ํฌํฌ ์ดํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ๋จ์ํ ์ ๊ทํ๋ฅผ ๋ณ๊ฒฝํ๊ณ l2 ์ ๊ทํ๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ์
๋๋ค. ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋ชจ๋ ์ ์/์๊ฒฌ์ ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!
@TommeyChang ์ผ๋ฐ์ ์ผ๋ก ์ ๊ทํ ์ฉ์ด๋ฅผ ๊ตฌ๋ณํ๊ธฐ๋ฅผ ์ํ๋ฏ๋ก (๊ฒฐ๊ตญ ๊ทธ๋ผ๋์ธํธ ๊ฐ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์) pu๋ ์๋ง๋ ์ ์ํ๋๋ก ์ํํ๊ณ ์ถ์ง ์์ ๊ฒ์ ๋๋ค.
@apaszke ์๋ ํ์ธ์~ ์ ๋ ๊ฐ์ ์ง๋ฌธ์ ๋ฐ์์ง๋ง ์ฒ์์๋ ๋ชจ๋ธ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋ จ์ํฌ ์ ์์ต๋๋ค. 600๋จ๊ณ ํ์ "RuntimeError: cuda runtime error (2) : out of memory at /opt/conda/conda-bld/pytorch_1518243271935/work/torch/lib/THC/generic/THCStorage.cu:58 " ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. .
ํ๋ จํ๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ๋น์ฉ์ 7G(๋ด GPU๋ 11G)์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ด ์๊ฒฌ์ผ๋ก๋ ์ฒ์์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ต์กํ๋ค๋ ๊ฒ์ ๋ด ์ฝ๋๊ฐ ์ ํํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ง๋์? ์์ผ๋ก ํ๋ จ ๊ณผ์ ์์ ์์ด๋ ๋ค๋ฅธ ๊ฒ๋ค์ด ์์ต๋๊น? ๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค!!
์ผ๋ถ ๋ณ์๊ฐ ๋์ ๋์ด ๋ชจ๋ธ๋ก ์ ์ ๋ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํฉ๋๋ค.
๋ ๋ง์ ํ๋ จ .. ๊ทธ๋ฌํ ๋ณ์๋ฅผ ์ฐพ์๋ณด๊ณ ์ ์ฅํ์ง ์๋์ง ํ์ธํ์ญ์์ค.
์์น ์๋ ๊ฒ๋ค
2018๋ 4์ 21์ผ ํ ์์ผ ์ค์ 7์ 35๋ถ EricKani [email protected] ์ด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ต๋๋ค.
@apaszke https://github.com/apaszke ์๋ ํ์ธ์~ ์ ๋ ๊ฐ์ ์ง๋ฌธ์ ๋ฐ์์ง๋ง
์ฒ์์๋ ๋ชจ๋ธ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋ จํ ์ ์์ต๋๋ค. ์๋ง 600๊ฑธ์ ํ์, ๋๋
"RuntimeError: cuda ๋ฐํ์ ์ค๋ฅ(2): ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ" ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
/opt/conda/conda-bld/pytorch_1518243271935/work/torch/lib/THC/generic/THCStorage.cu:58
".โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/pytorch/pytorch/issues/958#issuecomment-383259455 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMHzdN8KuyZIjewB6gkY1MvswGWuF1QMks5tqpPegaJpZM4MW6we
.
@tabibusairam ๋จผ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ๋ง์ oom ๋ฌธ์ ์ ์ฃผ์ ์์ธ์
๋๋ค. ๊ทธ๋ฌ๋ ๋ด ๋คํธ์ํฌ์ ๋ฌธ์ ๋ฅผ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๊ฒ์ฆ(์ด๋ฏธ์ง ๋ณํ ๋คํธ์ํฌ) ์์ด ๋คํธ์ํฌ๋ฅผ ํ๋ จํ ๋ GPU์ ๋ฉ๋ชจ๋ฆฌ๋ ํญ์ ์์ ์ ์
๋๋ค. ๊ทธ๋ฌ๋ ์ ํจ์ฑ ๊ฒ์ฌ ๋จ๊ณ๊ฐ ์์ ๋ ์ฒซ ๋ฒ์งธ GPU(ํด๋น GPU์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ)์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ ๋ฒ ์ฆ๊ฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ฒซ ๋ฒ์งธ Epoch๊ฐ ์์๋ ๋ ๋ด GPU ๋ฉ๋ชจ๋ฆฌ๋ 7G๋ฅผ ์๋นํ ๋ค์ ์ ํจ์ฑ ๊ฒ์ฌ ์์๊ณผ ํจ๊ป ์ฒซ ๋ฒ์งธ Epoch ์ดํ์ 9G๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๋ ๋ฒ์งธ Epoch์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ ํ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ 10G๊ฐ ๋ฉ๋๋ค. ๊ทธ ์ดํ๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ ํ๋ฉ๋๋ค. ๋ ์์ฒญ ํผ๋์ค๋ฌ์...
volatile
๋ณ์(0.3) ๋๋ torch.no_grad
์ปจํ
์คํธ(๋ง์คํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ)๋ก ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์คํํ๊ณ ์์ต๋๊น?
@apaszke @tabibusairam ์๋
ํ์ธ์, pytorch๋ฅผ ์ฌ์ฉํ์ฌ GP๋ฅผ ์ฌ์ฉํ์ฌ GAN์ ๋น๋ํ ๋ ์ด ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ๊ณ 2์ผ ๋์ ์ฌ๊ธฐ์ ๋ฉ์ท์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ฏธ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๋ํ์ง๋ง ๋ ๋ค ์๋ํ์ง ์์ต๋๋ค. ์ ๋ง ๋์์ด ํ์ํฉ๋๋ค plz.
์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
_RuntimeError: cuda ๋ฐํ์ ์ค๋ฅ(2): xx\torch\lib\thc\generic/THCStorage.cu:66_ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ
๋ด๊ฐ ๊ฑฐ๊พธ๋ก ํ ๋
_ํ์ผ "xxx/train_extractor.py", 128ํ, in
gradient_penalty.backward()
ํ์ผ "xxx\lib\site-packages\torch\autograd\variable.py", 156ํ, ์ญ๋ฐฉํฅ
torch.autograd.backward(self, gradient,retain_graph,create_graph,retain_variables)
ํ์ผ "xxx\lib\site-packages\torch\autograd__init__.py", ์ค 98, ์ญ๋ฐฉํฅ
๋ณ์, grad_variables, ์ ์ง_๊ทธ๋ํ)_
๋งค๋ฒ ํ๋ จ ๊ณผ์ ์ 12๋ฒ์งธ ์ํฌํฌ์ ๋ฐ์ํ๋ฉฐ ์ด๋ฏธ batch_size์ ๋คํธ์ํฌ ํฌ๊ธฐ๋ฅผ ์ค์์ต๋๋ค.
๊ฒ์ฆ ์ ์ฐจ๊ฐ ์์ต๋๋ค.
๋ค์์ ๋ด ์ฝ๋์ ์์ ๋ถ๋ถ์
๋๋ค.
์ํ = ํ ์น.rand(conf.batch_size,1).expand(X.size())
x_hat = autograd.Variable(alpha real.data.cpu()+(1-alpha) (real.data.cpu()+0.5 real.data.std() torch.rand(real.size())), require_grad = ์ฌ์ค)
x_hat = x_hat.cuda() if conf.cuda else x_hat
pred_hat,_ = Dis(x_hat)
๋ ์ด๋ธ = ํ ์น.ones(pred_hat.size())
label = label.cuda() if conf.cuda else ๋ ์ด๋ธ
๊ธฐ์ธ๊ธฐ = autograd.grad(์ถ๋ ฅ = pred_hat, ์
๋ ฅ = x_hat, grad_outputs=label, create_graph=True, ์ ์ง_๊ทธ๋ํ=True,only_inputs=True)[0]
gradient_penalty = conf.gp_lambda ((gradients.norm(2,dim=1)-1) 2).mean()* gradient_penalty.backward()
๋ฐฐ์น ํฌ๊ธฐ๋ฅผ 64์์ 32๋ก ์ค์ด๋ ๊ฒ์ด ํจ๊ณผ์ ์ด์์ต๋๋ค.
@lyakaap ๋ณ์(x, volatile=True). ๋๋ฅผ ์ํ ์ผ์ด์ผ.๊ณ ๋ง์.
@์๋ฆญ์นด๋ ,
์๋
ํ์ธ์, ๋น์ ์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ์ต๋๊น?
๋๋ ๋ํ ๊ฐ์ ์ง๋ฌธ์ ๋ฐ๋๋ค.
๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์ค ์ ์๋์?
@qlwang25 @EricKani ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ํฉ์ ์๋์ ๊ฐ์ด ์์ค์ ๊ณ์ฐํ๋ ๋์ ์ค์๋ก ๊ธฐ์ธ๊ธฐ๊ฐ ๋์ ๋๋ ๊ฒ์ ๋๋ค.
loss = criterion(y_, y)
loss.backward()
loss_meter += loss # incorrect
# loss_meter += loss.item() # correct
@lyakaap
๋จผ์ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
๋ง์ํ์ ๋๋ก ์ฐ๊ณ ์์ต๋๋ค.
๊ฐ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐฐ์น ํ GPU ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ์ฆ๊ฐํ๋ฏ๋ก ๋ค์ ์ด์ฐจ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
THCudaCheck FAIL file=/pytorch/aten/src/THC/generic/THCStorage.cu line=58 error=2 : out of memory
Traceback (most recent call last):
File "train.py", line 290, in <module>
main()
File "train.py", line 263, in main
train(i)
File "train.py", line 152, in train
loss, num_total, num_correct = model.train_model(src, src_len, src_sent_len, tgt, tgt_len, optim)
File "/home/wangqianlong/model/bytecup/models/seq2seq.py", line 110, in train_model
loss.backward()
File "/home/wangqianlong/.local/lib/python3.6/site-packages/torch/tensor.py", line 93, in backward
torch.autograd.backward(self, gradient, retain_graph, create_graph)
File "/home/wangqianlong/.local/lib/python3.6/site-packages/torch/autograd/__init__.py", line 89, in backward
allow_unreachable=True) # allow_unreachable flag
RuntimeError: cuda runtime error (2) : out of memory at /pytorch/aten/src/THC/generic/THCStorage.cu:58
์ผ๋ฐ์ ์ธ ์ฝ๋ ํ๋ฆ:
def train_model(self, data):
outputs = self(data)
loss = self.criterion(outputs, y)
loss.backward()
optim.step()
return loss
def sample(self, data):
src, src_len = data
with torch.no_grad():
bos = torch.ones(src.size(0)).long().fill_(dict.BOS)
if self.use_cuda:
src = src.cuda()
src_len = src_len.cuda()
bos = bos.cuda()
contexts = other_function(src, src_len)
samples = self.decoder.sample([bos], contexts)
return samples
def train(i):
model.train()
global train_dataloader
for data in train_dataloader:
model.zero_grad()
loss = model.train_model(data)
count_loss += loss.item()
if ...:
# not important
print(count_loss)
def eval(i):
model.eval()
for batch in eval_dataloader:
samples = model.sample(data)
print(samples)
def main():
global train_dataloader
for i in range(epoch):
train_dataloader = load(data_(i%9))
train(i)
eval(i)
trainset์ ๋น๊ต์ ์ปค์ 8๊ฐ๋ก ๋๋์์ต๋๋ค(data_0, data_1, ...., data_8).
๋น์ ์ ๋์๊ฒ ๋ช ๊ฐ์ง ์ ์์ ์ค ์ ์์ต๋๊น?
๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค.
@qlwang25 ๊ทํ์ ์ฝ๋๋ฅผ ํ์ธํ์ง๋ง ์ด๋ค ๋ถ๋ถ์ด ์๋ชป๋ ๊ฒ์ธ์ง ์ ์ ์์ต๋๋ค.
๋ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@lyakaap
์ฐ์ ๋๋ฌด ๋นจ๋ฆฌ ๋ต๋ณํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
๋๋ ๋น์ ์ ์ฒซ ๋ฒ์งธ ์์ ์ ์ดํดํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ณ์๋ ๊ฒฐ์ฝ GPU ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ์ง ์์ ๋๋ฅผ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ญ๋๋ค.
์ด๋ค ๋ณ์? ์๋ฅผ ๋ค์ด ์ค ์ ์์ต๋๊น?
์ด๋ฌํ ๋ณ์๋ฅผ ํด์ ํ๋ ๋ฐฉ๋ฒ. torch.cuda.empty_cache() ๊ฐ ์ ์ฉํฉ๋๊น?
@qlwang25
์ด๋ค ๋ณ์๊ฐ ์๋์ง ๋ชจ๋ฅด์ง๋ง src, bos๊ฐ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
AFAIK,torch.cuda.empty_cache()๋ ์ฐธ์กฐ๋ ๋ณ์๋ฅผ ํด์ ํ์ง ์์ต๋๋ค. ์ด ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ์์ธ์ด ๋๋ ๋ณ์๋ฅผ ์ฐพ๊ณ del {var_name}์ ์์ฑํด์ผ ํฉ๋๋ค.
@lyakaap
๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค!
๋๋ ์ด๋ฏธ ๋น์ ์ ์ ์์ ์๊ณ ์์ต๋๋ค.
๊ทํ์ ๋ต๋ณ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@ladyrick
๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค!
๋๋ ์ด๋ฏธ ๋น์ ์ ์ ์์ ์๊ณ ์์ต๋๋ค.
๊ทํ์ ๋ต๋ณ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@lyakaap ๋ง์ ํ์๋ ๊ฒ ๊ฐ์๋ฐ์?
ใ
๋๋ volatile์ ์๋ํ์ง๋ง ์๋ํ์ง ์์๋ค(๋์ค์ ๋ด๊ฐ pytroch 1.01์ ์๊ณ "UserWarning: volatile์ด ์ ๊ฑฐ๋์์ผ๋ฉฐ ์ง๊ธ์ ํจ๊ณผ๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋์ with torch.no_grad():
๋ฅผ ์ฌ์ฉํ์ญ์์ค.")
๊ทธ๋ฌ๋ ๊ฐ๋จํ ๋ค์ ์์์ผ๋ก๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค....
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ด์ ๋ด ๋ชจ๋ธ์ด ํ๋ จํ ์ ์๋ ํ ์ต์๋ก ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ค๊ณ ํ์ต๋๋ค. ๋ํ ์ ํ๋ ์ธก๋ฉด์์ ๊ท ํ์ ์ ์งํ๊ธฐ ์ํด ur epoch, learning rate, training sample์ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ๊ฒ์ฆ ๋ฐ์ดํฐ ์ธํธ์ ํฌ๊ธฐ๊ฐ ์ปค์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ ํํ ๋ค์ ๊ฑฐ๋ํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ ๋ ฅํ์ฌ ํ ์คํธํ ์ ์์ต๋๋ค.
๋งค๊ฐ๋ณ์๊ฐ ๊ฒ์ฆ์์ ํ๋ จ๋์ง ์๊ธฐ ๋๋ฌธ์ ๊ฒ์ฆ ์ค ๊ณ์ฐ ๊ทธ๋ํ๋ ๊ธฐ์ฐจ์์์ ๋ค๋ฆ ๋๋ค. ์ ํจ์ฑ ๊ฒ์ฌ ์ค์ GPU ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ ๋ณด๋ ค๋ฉด - nvidia-smi ๋ช ๋ น์ ์ฌ์ฉํ์ญ์์ค. ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ค์ฌ ๋ณด์ญ์์ค(๋จ์ผ GPU์์๋ง ์์ ํ๋ ๊ฒฝ์ฐ). ๋ฐฐ์น ํฌ๊ธฐ๊ฐ ์์์๋ก ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ด ์ ์ต๋๋ค.
โฆ
2018๋ 1์ 14์ผ ์ผ์์ผ ์ค์ 11:17, Chenrui Zhang @ . * > ์ผ๋ค: @tabibusairam https://github.com/tabibusairam ๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค: ํ๋ จ ๊ณผ์ ์ ์ ์๋ํ์ง๋ง(6G cuda ๋ฉ๋ชจ๋ฆฌ์ ๋ด GPU์๋ 12G ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์) ๋์ผํ ๋คํธ์ํฌ๋ฅผ ํต๊ณผํ๋ ํ๊ฐ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ์ ๋ณด: THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1503965122592/work/torch/lib/THC/generic/THCStorage.cu line=66 error=2 : ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ Traceback(๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง ): ํ์ผ "evaluate.py", 132ํ,ํ๊ฐ(prednet, args) ํ์ผ "evaluate.py", 94ํ, ํ๊ฐ ์์ธก = prednet(X_test, initial_states) ํ์ผ "/home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site- packages/torch/nn/modules/module.py", ๋ผ์ธ 224, __call__ result = self.forward( input, * kwargs) ํ์ผ "/home/zcrwind/workspace/ijcai2018/predict/zcrPredNet/prednet.py", ๋ผ์ธ 497, ์๋ฐฉํฅ ์ถ๋ ฅ์์ โโhidden_states = self.step(A0, hidden_states) ํ์ผ "/home/zcrwind/workspace/ijcai2018/predict/zcrPredNet/prednet.py", ์ค 377, ๋จ๊ณ์์ forget_gate = hard_sigmoid(self.conv_layers[' f'][lay](inputs)) ํ์ผ "/home/zcrwind/workspace/ijcai2018/predict/zcrPredNet/prednet.py", 28ํ, hard_sigmoid x = F.threshold(-x, 0, 0) ํ์ผ " /home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site-packages/torch/nn/functional.py", ๋ผ์ธ 459, ์๊ณ๊ฐ ๋ฐํ _functions.thnn.Threshold.apply(์ ๋ ฅ, ์๊ณ๊ฐ , ๊ฐ, ์ธํ๋ ์ด์ค) ํ์ผ "/home/zcrwind/.conda/envs/condapython3.6/lib/python3.6/site-packages/torch/nn/_functions/thnn/auto. py", 174ํ, ์์ผ๋ก getattr(ctx._backend, update_output.name)(ctx._backend.library_state, input, output, *args) RuntimeError: cuda ๋ฐํ์ ์ค๋ฅ(2): /opt/conda/์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ conda-bld/pytorch_1503965122592/work/torch/lib/THC/generic/THCStorage.cu:66 ์ด๋ํ์ จ๋์? ๊ฐ์ฌ ํด์. โ ๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค. ์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub < #958 (comment) >์์ ํ์ธํ๊ฑฐ๋ https://github.com/notifications/unsubscribe-auth/AMHzdCQ_jJ9ogDm1jaNSLB6wCbfP08XOks5tKZT8gaJpZM4MW6we ์ค๋ ๋๋ฅผ ์์๊ฑฐํ์ญ์์ค.
์ด๊ฒ์ ํจ๊ณผ๊ฐ ์์๋ค. ์ ๋ง ๊ณ ๋ง์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
GPU์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํฉ๋๋ค. ๋ฒ๊ทธ๊ฐ ์๋๋๋ค.