์๋ ํ์ธ์,
๊ณต์ ์น ํ์ด์ง์์ Python 3.5์ฉ PyTorch pip ํจํค์ง CPU ๋ฒ์ ์ ๋ค์ด๋ก๋ํ์ต๋๋ค. wget ์ ์ฌ์ฉํ์ฌ ๋ค์ด๋ก๋ํ๊ณ Python 3.6์ด ์ค์น๋ ArchLinux์ ํจํค์ง๋ฅผ ์ค์นํ๊ธฐ ์ํด ํจํค์ง ์ด๋ฆ์ ๋ณ๊ฒฝํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ pip install
๋ช
๋ น์ ์ฌ์ฉํ์ฌ ํจํค์ง๋ฅผ ์ค์นํ๋๋ฐ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋์ง ์์ต๋๋ค. torchvision
ํจํค์ง๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์น๋์์ต๋๋ค.
ipython ์ธ์
์ด๋ Python ์ธ์
์์ import torch
๋ฅผ ์ฌ์ฉํ์ฌ torch
๋ชจ๋์ ๊ฐ์ ธ์ค๋ ค๊ณ ํ๋ฉด ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Python 3.6.0 (default, Jan 16 2017, 12:12:55)
[GCC 6.3.1 20170109] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/site-packages/torch/__init__.py", line 45, in <module>
from torch._C import *
ModuleNotFoundError: No module named 'torch._C'
์ด๋ค ์์ด๋์ด?
์น์ ํ๋,
์๋ ์ฐ๋๋ก
๋ฌธ์ ๋ ํฝ์
๋๋ ๋์ผํ ๋๋ ํ ๋ฆฌ์ torch
๋ผ๋ ํด๋๊ฐ ์๋ค๋ ๊ฒ์
๋๋ค. cd ..
(๋๋ ํ ๋ฆฌ ๋ณ๊ฒฝ)๋ฅผ ์ํํ ๋ค์ python
๋ฐ import torch
ํ๋ฉด ์๋ํฉ๋๋ค.
[์ค๋ ๋์ ๋ฌปํ์ง ์๊ณ ์์ ์ค๋ํซ์ ์ถ๊ฐํ๋๋ก ์์ ๋จ]
torch._C
๋ CPython ํ์ฅ์ ์ด๋ฆ์
๋๋ค(์ฆ, python์ ์ํด ๋ก๋๋ C ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ). Python ๋ฒ์ ๊ฐ์ ๋ฐ์ด๋๋ฆฌ ํธํ์ด ๋์ง ์์ ์ ์์ต๋๋ค. ls /usr/lib/python3.6/site-packages/torch/
์ ์ถ๋ ฅ์ ๋ณด์ฌ์ค ์ ์์ต๋๊น?
๊ทธ๋ฐ ์์ผ๋ก ํ ํ ์ ์ด๋ฆ์ ๋ฐ๊พธ๊ณ ์๋ํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ ์๋ ์์ต๋๋ค.
์ด๊ฒ์ C ํ์ฅ์ด ํ์ด์ฌ ๋ฒ์ ์ ํน์ ํ ๋ฐฉ์์ผ๋ก ๋ช
๋ช
๋๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฐ๋ฆฌ๋ ๋ค์ ๋ฆด๋ฆฌ์ค์์ python 3.6์ฉ ํ ํ ์ ํฌํจํ ๊ฒ์ ๋๋ค.
@sumith ๋น์ ์ด ํ์คํ ์ณ์ต๋๋ค. ์ด ์ ์ฐจ๊ฐ TensorFlow์์ ๋งค๋ ฅ์ฒ๋ผ ์๋ํ๊ธฐ ๋๋ฌธ์ ์๋ํด ๋ณด์์ต๋๋ค.
@apaszke ๊ทํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
asuglia<strong i="9">@maximillian</strong> ~ $ ls -ll /usr/lib/python3.6/site-packages/torch/
totale 43360
drwxr-xr-x 4 root root 4096 24 gen 20.15 autograd
drwxr-xr-x 4 root root 4096 24 gen 20.15 backends
-rwxr-xr-x 1 root root 44131377 24 gen 20.15 _C.cpython-35m-x86_64-linux-gnu.so
drwxr-xr-x 3 root root 4096 24 gen 20.15 cuda
-rwxr-xr-x 1 root root 15612 24 gen 20.15 _dl.cpython-35m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root 942 24 gen 20.15 functional.py
-rw-r--r-- 1 root root 7737 24 gen 20.15 __init__.py
drwxr-xr-x 5 root root 4096 24 gen 20.15 legacy
drwxr-xr-x 3 root root 4096 24 gen 20.15 lib
drwxr-xr-x 3 root root 4096 24 gen 20.15 multiprocessing
drwxr-xr-x 7 root root 4096 24 gen 20.15 nn
drwxr-xr-x 3 root root 4096 24 gen 20.15 optim
drwxr-xr-x 2 root root 4096 24 gen 20.15 __pycache__
-rw-r--r-- 1 root root 12520 24 gen 20.15 serialization.py
drwxr-xr-x 3 root root 4096 24 gen 20.15 sparse
-rw-r--r-- 1 root root 3354 24 gen 20.15 storage.py
-rw-r--r-- 1 root root 31721 24 gen 20.15 _tensor_docs.py
-rw-r--r-- 1 root root 16961 24 gen 20.15 tensor.py
-rw-r--r-- 1 root root 10317 24 gen 20.15 _tensor_str.py
drwxr-xr-x 3 root root 4096 24 gen 20.15 _thnn
-rw-r--r-- 1 root root 98275 24 gen 20.15 _torch_docs.py
drwxr-xr-x 7 root root 4096 24 gen 20.15 utils
-rw-r--r-- 1 root root 2532 24 gen 20.15 _utils.py
๋ฌธ์ ์ ๋ํ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ๋ฌธ์ํด ์ฃผ์ธ์. ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
์, _C.cpython-35m
๊ฐ ์์์ ์ ์ ์์ต๋๋ค. ์ด๋ Python 3.5์์๋ง ๋ก๋๋จ์ ์๋ฏธํฉ๋๋ค. ๋น ๋ฅธ ํดํน์ผ๋ก _C
, _dl
๋ฐ _thnn/_THNN
์ ์ผ๋ฐ .so
ํ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค( cpython-version-artch-platform
๋ถ๋ถ ์์ด _C.so
). ํ์ง๋ง ํดํน์
๋๋ค. ์คํจํ ๊ฒฝ์ฐ ์ถ๊ฐ ์ง์์ ์ ๊ณตํ์ง ์์ต๋๋ค ๐
๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์๋ํด๋ณด๊ฒ ์ต๋๋ค :+1:
์๋ ํ์ธ์, Python 2.7.13 ๋ฐ Anaconda 4.3.0(64๋นํธ)๊ณผ ํจ๊ป PyTorch๋ฅผ ์ค์นํ ๋ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํํธ๋ฅผ ์ฃผ์ค๋์?
์ค์น ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ๋ฉ๋๋ค.
์์ ํด๋ก https://github.com/pytorch/pytorch
ํ ์ค์น -r ์๊ตฌ ์ฌํญ.txt
ํ์ด์ฌ setup.py ์ค์น
๊ทธ ํ ์์คํ
์์ PyTorch๊ฐ ์ค์น๋์๋ค๊ณ ๋งํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ๋กฌํํธ ๋ช
๋ น์ค์ 'ํ์ด์ฌ'์ ์ ์์ต๋๋ค. ๋๋์ด python ์ปค๋งจ๋ ๋ผ์ธ์ 'import torch'๊ฐ ์
๋ ฅ๋์์ต๋๋ค. ๋ถํํ๋ ๋ค์ ์ ๋ณด๋ฅผ ์ป์์ต๋๋ค.
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "
ํ์ผ "torch/__init__.py", 45ํ,
ํ ์น์์._C ๊ฐ์ ธ์ค๊ธฐ *
ImportError: _C๋ผ๋ ๋ชจ๋์ด ์์ต๋๋ค.
/usr/lib/python2.7/site-packages ํจํค์ง์๋ ํ ์น ํจํค์ง๊ฐ ์์ต๋๋ค. pytorch์๋ ํจํค์ง ํ ์น๊ฐ ์์ผ๋ฉฐ ๋ค์ ํ์ผ์ด ์์ต๋๋ค.
[ root@AliHPC-M40-434 ํ ์น]# ls -ll
์ด 236
drwxr-xr-x 3 ๋ฃจํธ ๋ฃจํธ 150 2์ 10์ผ 11:54 autograd
drwxr-xr-x 3 ๋ฃจํธ ๋ฃจํธ 48 2์ 10์ผ 11:54 ๋ฐฑ์๋
drwxr-xr-x 9 ๋ฃจํธ ๋ฃจํธ 4096 2์ 10์ผ 11:54 csrc
drwxr-xr-x 2 ๋ฃจํธ ๋ฃจํธ 109 2์ 10์ผ 11:54 cuda
drwxr-xr-x 2 ๋ฃจํธ ๋ฃจํธ 83 2์ 10์ผ 11:54 ๋ฐฐํฌ๋จ
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 2218 2์ 10์ผ 11:54 functional.py
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 7768 2์ 10์ผ 11:54 __init__.py
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 8762 2์ 10์ผ 13:49 __init__.pyc
drwxr-xr-x 4 ๋ฃจํธ ๋ฃจํธ 61 2์ 10์ผ 11:54 ๋ ๊ฑฐ์
drwxr-xr-x 15 ๋ฃจํธ ๋ฃจํธ 4096 2์ 10์ผ 12:00 lib
drwxr-xr-x 2 ๋ฃจํธ ๋ฃจํธ 93 2์ 10์ผ 11:54 ๋ค์ค ์ฒ๋ฆฌ
drwxr-xr-x 6 ๋ฃจํธ ๋ฃจํธ 4096 2์ 10์ผ 11:54 nn
drwxr-xr-x 2 ๋ฃจํธ ๋ฃจํธ 4096 2์ 10์ผ 11:54 ์ต์ ํ
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 12581 2์ 10์ผ 11:54 serialization.py
drwxr-xr-x 2 ๋ฃจํธ ๋ฃจํธ 2์ 32์ผ 2์ 10์ผ 11:54 ์คํ์ค
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 3354 2์ 10์ผ 11:54 storage.py
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 33716 2์ 10์ผ 11:54 _tensor_docs.py
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 17009 2์ 10์ผ 11:54 tensor.py
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 10346 2์ 10์ผ 11:54 _tensor_str.py
drwxr-xr-x 2 ๋ฃจํธ ๋ฃจํธ 71 2์ 10์ผ 11:55 _thnn
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 99370 2์ 10์ผ 11:54 _torch_docs.py
drwxr-xr-x 6 ๋ฃจํธ ๋ฃจํธ 145 2์ 10์ผ 11:54 ์ ํธ๋ฆฌํฐ
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 2532 2์ 10์ผ 11:54 _utils.py
-rw-r--r-- 1 ๋ฃจํธ ๋ฃจํธ 2895 2์ 10์ผ 13:49 _utils.pyc
/usr/lib/python2.7/site-packages
์์ ํจํค์ง๋ฅผ ์ฐพ๊ณ ์์ผ๋ฏ๋ก ์๋์ฝ๋ค ํ์ด์ฌ์ ์ฌ์ฉํ๊ณ ์์ง ์์ต๋๋ค. which python
์ ์ถ๋ ฅ์ ๋ณด๊ณ ์๋์ฝ๋ค ํ์ด์ฌ์ด ์๋ ์ด์ ๋ฅผ ํ์ธํ์ญ์์ค.
' which python'์ ์ถ๋ ฅ์ '/root/anaconda2/bin/python'์
๋๋ค. ๋ฐ๋ก ์ง๊ธ, ๋๋ ๋ช
๋ น์ค์ '/root/anaconda2/bin/python'์ ์ ๊ณ ํ์ด์ฌ ๋ช
๋ น์ค์์ 'import torch'๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๋์ผํฉ๋๋ค.
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "
ํ์ผ "torch/__init__.py", 45ํ,
ํ ์น์์._C ๊ฐ์ ธ์ค๊ธฐ *
ImportError: _C๋ผ๋ ๋ชจ๋์ด ์์ต๋๋ค.
๋ํ pytorch๋ฅผ ์ค์นํ๊ธฐ ์ ์ ๋ค๋ฅธ ํจํค์ง์ ํ ์น 7์ ์ค์นํ์ต๋๋ค. OS๋ ์ผํ ์ค 7์
๋๋ค.
๋ฏธ๋ฆฌ ๋์์ ์ฃผ์ Soumith์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@phenixcx ๋ฌธ์ ๋ ํฝ์
๋๋ ๋์ผํ ๋๋ ํ ๋ฆฌ์ torch
๋ผ๋ ํด๋๊ฐ ์๋ค๋ ๊ฒ์
๋๋ค. cd ..
(๋๋ ํ ๋ฆฌ ๋ณ๊ฒฝ)๋ฅผ ์ํํ ๋ค์ python
๋ฐ import torch
ํ๋ฉด ์๋ํฉ๋๋ค.
์์ฒญ๋! ์ ๋ง ํจ๊ณผ๊ฐ ์์ต๋๋ค. ๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค. ํจํค์ง ์์น๋ pytorch๋ฅผ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ญ๋๋ค.
@sumith ์ฒ์ฌ ๊ด์ฐฐ!
@soumith ๊ทํ์ ์ ์์ ์ ๋ง ๋์์ด ๋ฉ๋๋ค! ์ด ๋ฌธ์ ๋ก ์ค๋ซ๋์ ํผ๋์ค๋ฌ์ํ์ต๋๋ค. ๊ฐ์ ๋ฌธ์ ๊ฐ ์๋ ๋ชจ๋ ์ฌ๋์ด ์ด ์๋ฃจ์ ์ ์ฑ๊ณต์ ์ผ๋ก ์ฐพ์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@soumith ์ ๋ง ๊ฐ์ฌํฉ๋๋ค ์ด ์ค๋ฅ์ ๋ฏธ์ณ๊ฐ๊ณ ์์์ต๋๋ค
@soumith ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
๋ด ๋ฌธ์ ๋ ํด๊ฒฐํ์ต๋๋ค! @sumith ๊ฐ์ฌ
Gah, ๋๋ ์ง๊ธ๊น์ง ์ด ์ง์ ์ ๋ ๋ฒ ์ณค๋ค :-P . ๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ์๋ฌด์ ์ผ๋ก ํ ๋๋ ํ ๋ฆฌ๋ก cd๋ฅผ ํด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง ์คํฌ๋ฆฝํธ ์์ฒด๋ ๋ณต์ ๋ pytorch
ํด๋์ ์์ต๋๋ค.
์ธ์์, ๊ทธ๊ฒ ๋ค์์ด
์ผํ๋ค!
์ผํ๋ค!
๋ธ๋์น v0.3.0์ ์์ค์์ ๋น๋ํ ํ์๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋ด ์์คํ
์ OSX10.12์ด๊ณ ํ์ด์ฌ ๋ฒ์ ์ 3.6.1์
๋๋ค. ๋๋ ์๋์ฝ๋ค ํ์ด์ฌ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. pip3๋ฅผ ํตํด ๋ชจ๋ ์ ํ์ ์ข
์์ฑ์ ์ค์นํ์ต๋๋ค. export NO_CUDA=1
CUDA ์ง์์ ๋นํ์ฑํํ์ต๋๋ค.
๋ด ์์คํ
์ ๋ง๊ฒ ์ค์น ๋ช
๋ น์ ์ฝ๊ฐ ๋ณ๊ฒฝํ์ต๋๋ค.
Jon (v0.3.0) pytorch $ MACOSX_DEPLOYMENT_TARGET=10.12 CC=clang CXX=clang++ python3 setup.py install
๊ฑด๋ฌผ ์ค๊ฐ์ 7๊ฐ์ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ต๋๋ค.
~~/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:14:29: ๊ฒฝ๊ณ : 'THDTensorDescriptor_newFromTHDoubleTensor'์ C ์ฐ๊ฒฐ์ด ์ง์ ๋์์ง๋ง ์ฌ์ฉ์ ์ ์ ์ ํ์ ๋ฐํํฉ๋๋ค.C์ ํธํ๋์ง ์๋ 'THDTensorDescriptor'(์ผ๋ช
'at::Tensor') [-Wreturn-type-c-linkage]THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHDoubleTensor(THDoubleTensor *ํ
์);^^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:15:29: ๊ฒฝ๊ณ : 'THDTensorDescriptor_newFromTHFloatTensor'์ C-๋งํฌ๊ฐ ์ง์ ๋์์ง๋ง ์ฌ์ฉ์ ์ ์ ์ ํ์ ๋ฐํํฉ๋๋ค.C์ ํธํ๋์ง ์๋ 'THDTensorDescriptor'(์ผ๋ช
'at::Tensor') [-Wreturn-type-c-linkage]THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHFloatTensor(THFloatTensor *tensor);^^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:16:29: ๊ฒฝ๊ณ : 'THDTensorDescriptor_newFromTHLongTensor'์ C-๋งํฌ๊ฐ ์ง์ ๋์์ง๋ง ์ฌ์ฉ์ ์ ์ ์ ํ์ ๋ฐํํฉ๋๋ค.C์ ํธํ๋์ง ์๋ 'THDTensorDescriptor'(์ผ๋ช
'at::Tensor') [-Wreturn-type-c-linkage]THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHLongTensor(THLongTensor *ํ
์);^^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:17:29: ๊ฒฝ๊ณ : 'THDTensorDescriptor_newFromTHIntTensor'์ C ์ฐ๊ฒฐ์ด ์ง์ ๋์์ง๋ง ์ฌ์ฉ์ ์ ์ ์ ํ์ ๋ฐํํฉ๋๋ค.C์ ํธํ๋์ง ์๋ 'THDTensorDescriptor'(์ผ๋ช
'at::Tensor') [-Wreturn-type-c-linkage]THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHIntTensor(THIntTensor *ํ
์);^^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:18:29: ๊ฒฝ๊ณ : 'THDTensorDescriptor_newFromTHShortTensor'์ C ์ฐ๊ฒฐ์ด ์ง์ ๋์์ง๋ง ์ฌ์ฉ์ ์ ์ ์ ํ์ ๋ฐํํฉ๋๋ค.C์ ํธํ๋์ง ์๋ 'THDTensorDescriptor'(์ผ๋ช
'at::Tensor') [-Wreturn-type-c-linkage]THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHShortTensor(THShortTensor *ํ
์);^^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:19:29: ๊ฒฝ๊ณ : 'THDTensorDescriptor_newFromTHCharTensor'์ C ์ฐ๊ฒฐ์ด ์ง์ ๋์์ง๋ง ์ฌ์ฉ์ ์ ์ ์ ํ์ ๋ฐํํฉ๋๋ค.C์ ํธํ๋์ง ์๋ 'THDTensorDescriptor'(์ผ๋ช
'at::Tensor') [-Wreturn-type-c-linkage]THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHCharTensor(THCharTensor *tensor);^^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:20:29: ๊ฒฝ๊ณ : 'THDTensorDescriptor_newFromTHByteTensor'์ C ์ฐ๊ฒฐ์ด ์ง์ ๋์์ง๋ง ์ฌ์ฉ์ ์ ์ ์ ํ์ ๋ฐํํฉ๋๋ค.C์ ํธํ๋์ง ์๋ 'THDTensorDescriptor'(์ผ๋ช
'at::Tensor') [-Wreturn-type-c-linkage]THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHByteTensor(THByteTensor *ํ
์);^^7๊ฐ์ ๊ฒฝ๊ณ ๊ฐ ์์ฑ๋์์ต๋๋ค.~ ~
์ด๋ฌํ ๊ฒฝ๊ณ ์ธ์๋ ์ค์น๊ฐ ๊ด์ฐฎ์ ๋ณด์
๋๋ค.
pytorch ์์ค๋ ~/pytorch/
๋๋ ํ ๋ฆฌ์ ์์ต๋๋ค. ์ ๋ ~/Desktop
์์ python์ ์คํํ์ต๋๋ค.
์ด ๊ฐ์ ธ์ค๊ธฐ ์คํจ์ ์์ธ์ด ๋ฌด์์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
@Jonbean ์๋ ํ์ธ์, ๋ฐฉ๊ธ ๋ง์คํฐ ๋ธ๋์น์์ pytorch์ ์ต์ ๋ฒ์ ์ ๋ณต์ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ์ต๋๋ค. ์ ๋ง์คํฐ ๋ธ๋์น๋ฅผ ์๋ํ์ง ์์ต๋๊น?
๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ImportErrorTraceback(๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง)
----> 1 ์์
ํ ์น
ImportError: 'torch'๋ผ๋ ๋ชจ๋์ด ์์ต๋๋ค.
pytorch๋ฅผ ์ค์นํ ํ jupyter ๋
ธํธ๋ถ์ ์ฌ์ฉํ๊ณ ์๋๋ฐ ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ฐธ๊ณ : ์ด ๋ฌธ์ ์์ด tensorflow๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ๋๊ธ์ ๋ ์ ๋ณด์ด๊ฒ ํด์ฃผ์ค ์ ์๋์?
https://github.com/pytorch/pytorch/issues/574#issuecomment -278879701
์: ์ด ์ค๋ ๋์์ ์ธ ๋ฒ์งธ ๊ฒ์๋ฌผ์ ํธ์งํ์ฌ @sumith ?
์ด ์ค๋ ๋์ ๋์ฐฉํ ๊ฒ์ ๋ ๋ฒ์งธ์ด๊ณ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ ๋ฒ์งธ์ ๋๋ค...
@talesa ๋ ์ค๋ ๋์ ๋ ๋ฒ์งธ ๊ฒ์๋ฌผ์ ์๋ฃจ์ ์ ์ถ๊ฐํ์ต๋๋ค. https://github.com/pytorch/pytorch/issues/574#issuecomment -274911281
๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์๋ฃจ์ ์ ์ ์๊ฒ ํจ๊ณผ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๋ http://course.fast.ai/ ์์ Practical Deep Learning for Coders ๊ณผ์ ์ ๋ฐ๋ฅด๊ธฐ ์์ํ์ต๋๋ค
์์ ์์ ์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ํํ๋ฉด ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
~\Documents\Fast AI\fastai\courses\dl1\fastai\torch_imports.py in <module>()
1 import os
----> 2 import torch, torchvision, torchtext
3 from torch import nn, cuda, backends, FloatTensor, LongTensor, optim
4 import torch.nn.functional as F
5 from torch.autograd import Variable
C:\ProgramData\Anaconda3\envs\fastai\lib\site-packages\torch\__init__.py in <module>()
74 pass
75
---> 76 from torch._C import *
77
78 __all__ += [name for name in dir(_C)
ImportError: DLL load failed: The specified procedure could not be found.
๋ํ Jupyter Notebook ์ธ๋ถ์ python์์ import torch
๋ฅผ ์๋ํ์ต๋๋ค.
(fastai) C:\Users\PJvG\Documents\Fast AI\fastai>python
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bi
t (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\ProgramData\Anaconda3\envs\fastai\lib\site-packages\torch\__init__.py
", line 76, in <module>
from torch._C import *
ImportError: DLL load failed: The specified procedure could not be found.
>>> which python
File "<stdin>", line 1
which python
^
SyntaxError: invalid syntax
cd ..
์๋ํ์ง๋ง ์๋ฌด๋ฐ ๋ณํ๊ฐ ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด fastai ์ฑ๋์ ๋นํ์ฑํํ ํ ์๋ํ์ต๋๋ค.
(base) C:\Users\PJvG\Documents>python
Python 3.6.4 |Anaconda custom (64-bit)| (default, Jan 16 2018, 10:22:32) [MSC v.
1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'torch'
๋๊ตฐ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๋์์ค ์ ์์ต๋๊น?
@PJvG ์ด๊ฒ์ Windows ๊ด๋ จ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. https://github.com/pytorch/pytorch/issues/494 ์์ ๋ฌป๋ ๊ฒ์ด ๋ ๋์ ์ ์์ต๋๋ค.
@PJvG ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์
์๋, ๋ ๋ชปํด
2018-03-18 0:23 GMT-03:00 karanmurthy7 ์๋ฆผ @github.com :
@PJvG https://github.com/pjvg ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ์ผ์ จ์ต๋๊น?
โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/pytorch/pytorch/issues/574#issuecomment-373969927 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AWEPqcNsVyhzPm5yfm8enhRUce22vLLtks5tfdMUgaJpZM4Lsrr6
.
Anaconda๋ฅผ ์ฌ์ฉํ์ฌ Windows 10์์ Pytorch๋ฅผ ์๋์ํค๋ ค๊ณ ํฉ๋๋ค. ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ์ด์ ๊ฐ์ ธ ์ค๋ ค๊ณ ํ ๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\conner\Anaconda3\Lib\site-packages\torch\__init__.py", line 76, in <module>
from torch._C import *
ImportError: DLL load failed: The specified module could not be found.
๋๋ cd ..๋ฅผ ์๋ํ๊ณ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ๋๋ ํ ๋ฆฌ์์ python์ ์์ํ์ต๋๋ค. ๋๋ ๋ํ ์๋ํ๋ค
@apaszke ์ถ์ฒ:
์, _C.cpython-35m์ด ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ด๋ Python 3.5์์๋ง ๋ก๋๋จ์ ์๋ฏธํฉ๋๋ค. ๋น ๋ฅธ ํดํน์ผ๋ก _C, _dl ๋ฐ _thnn/_THNN์ ์ด๋ฆ์ ์ผ๋ฐ .so ํ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค(cpython-version-artch-platform ๋ถ๋ถ ์์ด _C.so๋ง). ํ์ง๋ง ํดํน์ ๋๋ค. ์คํจํ ๊ฒฝ์ฐ ์ถ๊ฐ ์ง์์ ์ ๊ณตํ์ง ์์ต๋๋ค ๐
๋ค์์ ํ ์น ๋๋ ํ ๋ฆฌ์ ์๋ ๋ด์ฉ์ ๋๋ค.
Directory of C:\Users\conner\Anaconda3\Lib\site-packages\torch
05/05/2018 07:52 PM <DIR> .
05/05/2018 07:52 PM <DIR> ..
05/05/2018 07:29 PM <DIR> autograd
05/05/2018 07:29 PM <DIR> backends
05/05/2018 07:29 PM <DIR> contrib
05/05/2018 07:29 PM <DIR> cuda
05/05/2018 07:29 PM <DIR> distributed
02/24/2018 05:49 AM 6,208 distributions.py
05/05/2018 07:29 PM <DIR> for_onnx
02/24/2018 05:49 AM 9,714 functional.py
05/05/2018 07:29 PM <DIR> jit
05/05/2018 07:29 PM <DIR> legacy
05/05/2018 07:29 PM <DIR> lib
05/05/2018 07:29 PM <DIR> multiprocessing
05/05/2018 07:29 PM <DIR> nn
05/05/2018 07:29 PM <DIR> onnx
05/05/2018 07:29 PM <DIR> optim
11/09/2017 07:38 PM 4,130 random.py
02/24/2018 05:49 AM 16,759 serialization.py
05/05/2018 07:29 PM <DIR> sparse
02/24/2018 05:49 AM 4,016 storage.py
02/24/2018 05:49 AM 14,497 tensor.py
05/05/2018 07:29 PM <DIR> utils
02/24/2018 01:46 PM 58 version.py
02/24/2018 01:52 PM 22,208,512 _C.pyd
02/24/2018 01:52 PM 10,240 _nvrtc.cp36-win_amd64.pyd
10/27/2017 09:31 PM 3,044 _six.py
09/17/2017 08:09 AM 1,164 _storage_docs.py
02/24/2018 05:49 AM 39,842 _tensor_docs.py
02/24/2018 05:49 AM 11,024 _tensor_str.py
05/05/2018 07:29 PM <DIR> _thnn
02/24/2018 05:49 AM 127,125 _torch_docs.py
02/24/2018 05:49 AM 9,201 _utils.py
02/24/2018 05:49 AM 9,313 __init__.py
05/05/2018 07:29 PM <DIR> __pycache__
16 File(s) 22,474,847 bytes
19 Dir(s) 318,658,211,840 bytes free
pytorch๋ฅผ ์๋์ํค๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น?
์ฌ๋ฌ๋ถ, ์๋
ํ์ธ์,
์ ๋ Pytorch๋ฅผ ์ฒ์ ์ ํ๊ณ Anaconda์ ์ค์นํ์ต๋๋ค. ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ cd ...
๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ด ์ ํํ ๋ฌด์์ ์๋ฏธํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค! ์๋ฌด๋ ๋ด๊ฐ Anaconda์์ ์ด๊ฒ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค ์ ์์ต๋๊น? ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฌด์์ผ๋ก ๋ณ๊ฒฝํฉ๋๊น? ๋๋ ์์ ํ ํผ๋์ค๋ฝ๋ค.
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค
๋ด ํ์ด์ฌ ๋น์ ์ 3.6.2์ ๋๋ค. ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์์ ํ ์น
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "", 1ํ, ์์
ํ์ผ "C:UsershpAppDataLocalProgramsPythonPython36libsite-packagestor
ch__init__.py", 78ํ, in
ํ ์น์์._C ๊ฐ์ ธ์ค๊ธฐ *
ImportError: DLL ๋ก๋ ์คํจ: ๆพไธๅฐๆๅฎ็ๆจกๅใ
๋์์ฃผ์ธ์, @connermcb @PJvG @apaszke
์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ, ์ ๋ ์ Mac ์์คํ
์ python 2.7์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค(ํ์ฌ ํ์ด์ฌ์ด ์๋)
๋๋์ด ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ํด๊ฒฐ์ฑ
์ ์ป์์ต๋๋ค.
์ด ๋ช
๋ น์ ์คํํ๊ธฐ๋ง ํ๋ฉด ํ๊ฒฝ์ ๋ง๊ฒ ์กฐ์ ํ์ญ์์ค ๐
sudo install_name_tool -change @rpath/libc++.1.dylib /usr/lib/libc++.1.dylib /Library/Python/2.7/site-packages/torch/_C.so
@phenixcx ๋ฌธ์ ๋ ํฝ์ ๋๋ ๋์ผํ ๋๋ ํ ๋ฆฌ์
torch
๋ผ๋ ํด๋๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.cd ..
(๋๋ ํ ๋ฆฌ ๋ณ๊ฒฝ)๋ฅผ ์ํํ ๋ค์python
๋ฐimport torch
ํ๋ฉด ์๋ํฉ๋๋ค.
๋๋ Windows์ ์๊ณ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ฌธ์ :
ํ ์น์์._C ๊ฐ์ ธ์ค๊ธฐ *
ImportError: 'torch._C'๋ผ๋ ๋ชจ๋์ด ์์ต๋๋ค.
ํ๊ฒฝ:
3.5.6 |์๋์ฝ๋ค, Inc.| (๊ธฐ๋ณธ๊ฐ, 2018๋
8์ 26์ผ, 16:05:27) [MSC v.1900 64๋นํธ(AMD64)]
ํด๊ฒฐํ๋ค:
pip3์ผ๋ก ํ ์น๋ฅผ ๋ค์ ์ค์นํ๋ฉด ์๋ํฉ๋๋ค.
pip3 install torch==1.2.0+cpu torchvision==0.4.0+cpu -f https://download.pytorch.org/whl/torch_stable.html
@phenixcx ๋ฌธ์ ๋ ํฝ์ ๋๋ ๋์ผํ ๋๋ ํ ๋ฆฌ์
torch
๋ผ๋ ํด๋๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.cd ..
(๋๋ ํ ๋ฆฌ ๋ณ๊ฒฝ)๋ฅผ ์ํํ ๋ค์python
๋ฐimport torch
ํ๋ฉด ์๋ํฉ๋๋ค.๋๋ Windows์ ์๊ณ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๊น?
์ฌ๋ฌ๋ถ, ์๋
ํ์ธ์!
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ง๋ง ์๋ฃจ์
์ด ์ ํฉํ์ง ์์ต๋๋ค.
๋๋ Raspberry pi 3 ๋ชจ๋ธ B๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋๋ ํ ๋ฆฌ๋ฅผ ์ข
๋ฃํด๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์ต๋๋ค.
์ฌ๋ฌ๋ถ, ์๋ ํ์ธ์!
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ง๋ง ์๋ฃจ์ ์ด ์ ํฉํ์ง ์์ต๋๋ค.
๋๋ Raspberry pi 3 ๋ชจ๋ธ B๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋๋ ํ ๋ฆฌ๋ฅผ ์ข ๋ฃํด๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์ต๋๋ค.
์ด @BulNik ์ ์ฒ๋ฆฌํ๋์ง ํ์คํ์ง ์์ง๋ง ์ผ๋จ ํ ์ ๋น๋ํ๋ฉด pytorch/dist
ํด๋(whl ํ์ฅ์)์ ์์ต๋๋ค. ๊ฒฝ๋ก์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฐ๊ฒฐํ๋ ค๋ฉด ๋ค์์ ์ํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
pip3 install pytorch/dist/torch-1.6.0a0+68f23d5-cp37-cp37m-linux_armv7l.whl
_ํ ํ์ผ์ ์ด๋ฆ์ ๊ทํ์ ์ด๋ฆ์ผ๋ก ๊ต์ฒด_
์ ์ด๋ ๋ด Raspberry Pi 4 Model B์์ ์๋ํฉ๋๋ค. ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์๋ ค์ฃผ์ธ์!
cd... ์ ๊ทผ ๋ฐฉ์์ ์ํํ ํ ์ด์ํ๊ฒ๋ ๋ด Google colabs์์ ๋ชจ๋ ๋ค์ ์์ํ๊ณ ์ฌ์ค์ ํ๋ฉด ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ์ด๊ฒ์ ๋จผ์ ์๋ํ๋ฉด ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค. ์ด์ ๋ ํ์คํ์ง ์์ง๋ง
['torch._C'๋ผ๋ ๋ชจ๋์ด ์์ต๋๋ค.]
์,
_C.cpython-35m
๊ฐ ์์์ ์ ์ ์์ต๋๋ค. ์ด๋ Python 3.5์์๋ง ๋ก๋๋จ์ ์๋ฏธํฉ๋๋ค. ๋น ๋ฅธ ํดํน์ผ๋ก_C
,_dl
๋ฐ_thnn/_THNN
์ ์ผ๋ฐ.so
ํ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค(cpython-version-artch-platform
๋ถ๋ถ ์์ด_C.so
). ํ์ง๋ง ํดํน์ ๋๋ค. ์คํจํ ๊ฒฝ์ฐ ์ถ๊ฐ ์ง์์ ์ ๊ณตํ์ง ์์ต๋๋ค.
์๋ ํ์ธ์, ์ ๊ฐ ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ์๋ก์ด ์ค๋ฅ๊ฐ ์์ต๋๋ค :(
์์
ํ ์น
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "
ํ์ผ "/home/pi/.local/lib/python3.7/site-packages/torch/__init__.py", 79ํ,
ํ ์น์์._C ๊ฐ์ ธ์ค๊ธฐ *
ImportError: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: ๋ฒ์ `GLIBCXX_3.4.26'์ ์ฐพ์ ์ ์์(/home/pi/.local/lib/python3.7/site-packages/torch/์ ํ์ํจ lib/libtorch_python.so)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@phenixcx ๋ฌธ์ ๋ ํฝ์ ๋๋ ๋์ผํ ๋๋ ํ ๋ฆฌ์
torch
๋ผ๋ ํด๋๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.cd ..
(๋๋ ํ ๋ฆฌ ๋ณ๊ฒฝ)๋ฅผ ์ํํ ๋ค์python
๋ฐimport torch
ํ๋ฉด ์๋ํฉ๋๋ค.