Detectron: CPU ๋ฐ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋ฅผ ํฌํ•จํ•œ ์ˆœ์ˆ˜ Caffe2/C++ ์ถ”๋ก  ์ง€์›("์•ˆ๋“œ๋กœ์ด๋“œ์ฒ˜๋Ÿผ ํœด๋Œ€ํฐ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์ธ๊ฐ€์š”?")

์— ๋งŒ๋“  2018๋…„ 01์›” 24์ผ  ยท  16์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebookresearch/Detectron

๋ชจ๋ธ์€ Android์™€ ๊ฐ™์€ ํœด๋Œ€ ์ „ํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

planned feature

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํ–ฅํ›„ ํœด๋Œ€ํฐ์—์„œ Detectron ๋ชจ๋ธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ณ€ํ™˜ ๋„๊ตฌ ๋ฐ ์ง€์นจ์„ ์ œ๊ณตํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  16 ๋Œ“๊ธ€

ํ–ฅํ›„ ํœด๋Œ€ํฐ์—์„œ Detectron ๋ชจ๋ธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ณ€ํ™˜ ๋„๊ตฌ ๋ฐ ์ง€์นจ์„ ์ œ๊ณตํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

CPU ์ „์šฉ ์ถ”๋ก ์„ ์œ„ํ•ด ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•˜๋ฉด caffe2๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GPU ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ˆ„๋ฝ์œผ๋กœ ์ธํ•ด test_spatial_narrow_as_op.py ์‹คํ–‰์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

$ ํŒŒ์ด์ฌ ../tests/test_spatial_narrow_as_op.py
๊ฒฝ๊ณ :๋ฃจํŠธ : ์ด caffe2 python ์‹คํ–‰์—๋Š” GPU๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU ์ „์šฉ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ :๋ฃจํŠธ :๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€: caffe2_pybind11_state_gpu๋ผ๋Š” ๋ชจ๋“ˆ์ด ์—†์Šต๋‹ˆ๋‹ค.
์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):
ํŒŒ์ผ "../tests/test_spatial_narrow_as_op.py", 88ํ–‰,
utils.c2.import_detectron_ops()
import_detectron_ops์˜ ํŒŒ์ผ "/home/user/Detectron/lib/utils/c2.py", 41ํ–‰
detectron_ops_lib = envu.get_detectron_ops_lib()
ํŒŒ์ผ "/home/user/Detectron/lib/utils/env.py", 73ํ–‰, get_detectron_ops_lib
'๋ฒ„์ „์— Detectron ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.').format(detectron_ops_lib)
AssertionError: Detectron ops lib๋ฅผ '/home/user/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so'์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Caffe2 ๋ฒ„์ „์— Detectron ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

@rbgirshick , GPU ์—†์ด ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? @ss32 ์™€ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

CPU ์ „์šฉ ์ถ”๋ก ์„ ์œ„ํ•ด ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•˜๋ฉด caffe2๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GPU ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ˆ„๋ฝ์œผ๋กœ ์ธํ•ด test_spatial_narrow_as_op.py ์‹คํ–‰์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

$ ํŒŒ์ด์ฌ ../tests/test_spatial_narrow_as_op.py
๊ฒฝ๊ณ :๋ฃจํŠธ : ์ด caffe2 python ์‹คํ–‰์—๋Š” GPU๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU ์ „์šฉ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ :๋ฃจํŠธ :๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€: caffe2_pybind11_state_gpu๋ผ๋Š” ๋ชจ๋“ˆ์ด ์—†์Šต๋‹ˆ๋‹ค.
์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):
ํŒŒ์ผ "../tests/test_spatial_narrow_as_op.py", 88ํ–‰,
utils.c2.import_detectron_ops()
import_detectron_ops์˜ ํŒŒ์ผ "/home/user/Detectron/lib/utils/c2.py", 41ํ–‰
detectron_ops_lib = envu.get_detectron_ops_lib()
ํŒŒ์ผ "/home/user/Detectron/lib/utils/env.py", 73ํ–‰, get_detectron_ops_lib
'๋ฒ„์ „์— Detectron ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.').format(detectron_ops_lib)
AssertionError: Detectron ops lib๋ฅผ '/home/user/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so'์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Caffe2 ๋ฒ„์ „์— Detectron ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Mac์—์„œ ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ.

๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. macOS์—์„œ ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์†Œ์Šค์—์„œ caffe2๋ฅผ ๋นŒ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ค๋ฅ˜ ๋กœ๊ทธ ์ฐธ์กฐ).

๋‚ด ๋ชฉํ‘œ๋Š” CPU๋งŒ ์žˆ๋Š” MacO์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹จ๊ณ„: 1) cond๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
2) conda๋กœ caffe2๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
3) ์‹œ์Šคํ…œ pip(python)๋กœ ๊ฐ์ง€๊ธฐ๋ฅผ ์„ค์น˜ํ•œ ๋‹ค์Œ lib ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ PYTHONPATH ๋ณ€์ˆ˜์— ๋„ฃ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ :๋ฃจํŠธ : ์ด caffe2 python ์‹คํ–‰์—๋Š” GPU๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU ์ „์šฉ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ :๋ฃจํŠธ :๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€: caffe2_pybind11_state_gpu๋ผ๋Š” ๋ชจ๋“ˆ์ด ์—†์Šต๋‹ˆ๋‹ค.
E0204 13:06:36.049393 2041434112 init_intrinsics_check.cc:54] CPU ๊ธฐ๋Šฅ avx๊ฐ€ ์ปดํ“จํ„ฐ์— ์žˆ์ง€๋งŒ Caffe2 ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ํ•จ๊ป˜ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU์˜ ์ตœ๋Œ€ ์†๋„๋ฅผ ์–ป์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
E0204 13:06:36.049954 2041434112 init_intrinsics_check.cc:54] CPU ๊ธฐ๋Šฅ avx2๊ฐ€ ์ปดํ“จํ„ฐ์— ์žˆ์ง€๋งŒ Caffe2 ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ํ•จ๊ป˜ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU์˜ ์ตœ๋Œ€ ์†๋„๋ฅผ ์–ป์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
E0204 13:06:36.049964 2041434112 init_intrinsics_check.cc:54] CPU ๊ธฐ๋Šฅ fma๊ฐ€ ์ปดํ“จํ„ฐ์— ์žˆ์ง€๋งŒ Caffe2 ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ํ•จ๊ป˜ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU์˜ ์ตœ๋Œ€ ์†๋„๋ฅผ ์–ป์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):
ํŒŒ์ผ "/tmp/test_spatial_narrow_as_op.py", 88ํ–‰,
utils.c2.import_detectron_ops()
import_detectron_ops์˜ ํŒŒ์ผ "/Users/wangy/python/detectron/lib/utils/c2.py", 41ํ–‰
detectron_ops_lib = envu.get_detectron_ops_lib()
get_detectron_ops_lib์—์„œ ํŒŒ์ผ "/Users/wangy/python/detectron/lib/utils/env.py", 73ํ–‰
'๋ฒ„์ „์— Detectron ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.').format(detectron_ops_lib)
AssertionError: Detectron ops lib๊ฐ€ '/Users/wangy/miniconda2/lib/python2.7/site-packages/lib/libcaffe2_detectron_ops_gpu.so'์— ์—†์Šต๋‹ˆ๋‹ค.

@CancerGenome GPU ์ „์šฉ ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ( INSTALL.md ์ง€์นจ์—์„œ ๋งํ–ˆ๋“ฏ์ด) ๋ชจ๋“ˆ๋กœ detectron๊ณผ ํ•จ๊ป˜ Caffe2 ๋ฒ„์ „์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ์ฐพ์„ ์ˆ˜

@ss32 ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์— caffe1๊ณผ caffe2๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— PYTHONPATH ๋ณ€์ˆ˜์ธ caffe1 ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. caffe2์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค.
gedit ~/.bashrc
์ฝ”๋ฉ˜ํŠธ:

๋‚ด๋ณด๋‚ด๊ธฐ PYTHONPATH=/pathto/caffe/python:$PYTHONPATH

์ด๊ฑฐ ์ถ”๊ฐ€ ํ•ด๋ด:
๋‚ด๋ณด๋‚ด๊ธฐ PYTHONPATH=/๊ฒฝ๋กœ/to/caffe2/build:$PYTHONPATH

๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! ๋‹คํ–‰ํžˆ~

์•ˆ๋…•ํ•˜์„ธ์š” @rbgirshick ์•ฝ 3์ฃผ ์ „, ์ €๋Š” ์ผ์š”์ผ ์˜คํ›„์— Ubuntu 16.04์—์„œ 4Gb CUDA ์ง€์› GPU๊ฐ€ ์žˆ๋Š” dev box์— ์†Œ์Šค์—์„œ caffe2๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ‚น์˜ ํ’ˆ์งˆ. ๊ทธ๋Ÿฌ๋‚˜ GPU ์ „์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋ฐ”์ธ๋”ฉ๋˜์–ด ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

lib/python2.7/site-packages/lib/libcaffe2_detectron_ops_gpu.so

๋”ฐ๋ผ์„œ ํ˜„์žฌ AWS ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์Šคํ‚น์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ์ตœ์‹  CUDA ์ง€์› ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์ด ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

CPU ์ „์šฉ ๊ตฌํ˜„์ด ์–ธ์ œ ์™„๋ฃŒ๋˜๋Š”์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ํƒ€์ž„๋ผ์ธ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด RaspberryPi์— caffe2 ๋ฐ Detectron์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ :๋ฃจํŠธ : ์ด caffe2 python ์‹คํ–‰์—๋Š” GPU๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU ์ „์šฉ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ :๋ฃจํŠธ :๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€: caffe2_pybind11_state_gpu๋ผ๋Š” ๋ชจ๋“ˆ์ด ์—†์Šต๋‹ˆ๋‹ค.
INFO:caffe2.python.net_drawer :๋„คํŠธ์›Œํฌ๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฐ ํ•„์š”ํ•œ pydot์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ "pip install pydot"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ด์ฌ์— ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ pydot์€ ๋„ํŠธ ํŒŒ์ผ์„ pdf๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด graphviz๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ "sudo apt-get install graphviz"๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
net_drawer๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):
ํŒŒ์ผ "test_spatial_narrow_as_op.py", 88ํ–‰,
utils.c2.import_detectron_ops()
import_detectron_ops์˜ ํŒŒ์ผ "/home/pi/detectron/lib/utils/c2.py", 41ํ–‰
detectron_ops_lib = envu.get_detectron_ops_lib()
get_detectron_ops_lib์˜ ํŒŒ์ผ "/home/pi/detectron/lib/utils/env.py", 73ํ–‰
'๋ฒ„์ „์— Detectron ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.').format(detectron_ops_lib)
AssertionError: Detectron ops lib๋ฅผ '/home/pi/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so'์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Caffe2 ๋ฒ„์ „์— Detectron ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๊ฐ™์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. CPU ์ „์šฉ ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? Detectron์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์ง€๋งŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ํ˜ธ์ŠคํŠธ OS๋Š” Windows(Detectron์€ ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ•œ ์ง€์›ํ•˜์ง€ ์•Š์Œ)์ด๊ณ  VM์—์„œ๋Š” GPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์€ ๋งํ•œ๋‹ค:

AssertionError: Detectron ์ž‘์—… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Caffe2 ๋ฒ„์ „์— Detectron ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

@all caffe2/modules/detectron/CMakeLists.txt ์˜ ๋ฉ”๋ชจ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

# Note(ilijar): Since Detectron ops currently have no
# CPU implementation, we only build GPU ops for now.

caffe2์˜ ๊ฐ์ง€๊ธฐ ๋ชจ๋“ˆ์€ GPU ๋ชจ๋“œ ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋ฐฉ๊ธˆ INSTALL.md๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ณด์•˜๊ณ  ์š”๊ตฌ ์‚ฌํ•ญ์˜ ๋ฉ”๋ชจ ์„น์…˜์— "Detectron์—๋Š” ํ˜„์žฌ CPU ๊ตฌํ˜„์ด ์—†์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

#372, #449๋Š” ๋ฌธ์ œ์˜ CPU ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋๋‚œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ด๊ฒƒ์ด ํฌํ•จ๋˜๊ธฐ๋ฅผ ์›ํ•˜์‹ ๋‹ค๋ฉด ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ด ๋‘ ๊ฐ€์ง€ PR์„ ๊ฒ€ํ† ํ•˜๊ณ  ์ฐฌ์„ฑ ํˆฌํ‘œ๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

CPU ์ง€์›์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด #372 ๋ฐ #449์˜ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ฐฌ์„ฑ ํˆฌํ‘œ๋ฅผ ํ•˜๊ณ  ๊ฒ€ํ†  ํ•˜์—ฌ CPU ์ง€์› ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”์‹ : ์ด๊ฒƒ์€ ์ˆœ์ˆ˜ํ•œ Caffe2/PyTorch ์ถ”๋ก  ์—๋„ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋” ๋จผ ๋ฏธ๋ž˜์—๋Š”

@rbgirshick @gadcam ํ˜„์žฌ ๋กœ์„œ๋Š” Android์—์„œ Detectron ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‚˜์š”?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰