[Pytorch] ์†Œ๊ฐœ

[์›๋ณธ ๋งํฌ]

Pytorch๋Š” ๋ฉ”ํƒ€์—์„œ 2016๋…„์— ๊ณต๊ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค ML ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค.
Tensorflow, JAX์™€ ๋”๋ถˆ์–ด์„œ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ธ ML ํ™˜๊ฒฝ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ์—ฐ๊ตฌ๋ถ€ํ„ฐ ์‹ค์ œ ๋ชจ๋ธ ๋ฐฐํฌ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ™˜๊ฒฝ์ด๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ML ํ™˜๊ฒฝ์ด ๊ทธ๋ ‡๋“ฏ์ด cuda ๊ธฐ๋ฐ˜์ด๋ฉฐ, ์ฝ”์–ด๋Š” C++๋กœ ๋งŒ๋“ค์–ด์ ธ์žˆ๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๋งŒ Python์ด๋‹ค.




vs Tensorflow

pytorch์˜ ๊ฐ€์žฅ ํฐ ๋Œ€์ ์ž๋Š” ์•„๋ฌด๋ž˜๋„ tensorflow์˜€๋‹ค.
ํ›„๋ฐœ์ฃผ์ž๋ผ์„œ ์ฒ˜์Œ์—๋Š” ๋ฐ€๋ ธ์ง€๋งŒ, ์ด์ œ๋Š” pytorch ์‚ฌ์šฉ ๋น„์œจ์ด tensorflow๋ฅผ ์ถ”์›”ํ•œ ๋ชจ์–‘์ƒˆ๋‹ค.

pytorch๊ฐ€ tensorflow์— ๋น„ํ•ด์„œ ๊ฐ€์ง€๋Š” ๊ฐ€์žฅ ํฐ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š”, ์‚ฌ์šฉ์ด ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•˜๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.
tensorflow๋Š” ๋ณต์žกํ•˜๊ณ  ๋‚œํ•ดํ•œ ์‚ฌ์šฉ๋ฒ•์œผ๋กœ ์•…๋ช…์ด ๋†’์•˜๋‹ค. keras ๋“ฑ์˜ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์“ฐ๋ฉด ๋‚˜์•„์ง€๊ธด ํ•˜๋Š”๋ฐ, ๋ญ”๊ฐ€ ์• ๋งคํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

๋‚œ์ด๋„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํ™˜๊ฒฝ๋„ ์ „๋ฐ˜์ ์œผ๋กœ pytorch์— ์œ ๋ฆฌํ•œ ํ™˜๊ฒฝ์ด ๋˜์—ˆ๋‹ค.
ML ์—”์ง€๋‹ˆ์–ด๋“ค์€ ๋Œ€์ฒด๋กœ ๋ชจ๋ธ์„ ์ž์ฒด์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋…ผ๋ฌธ์„ ์ฐธ๊ณ ํ•ด์„œ ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ์žฌํ˜„ํ•ด๋ณด๋ฉฐ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ณค ํ•˜๋Š”๋ฐ, ๊ทผ๋ž˜์— ๋‚˜์˜ค๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋”ฅ๋Ÿฌ๋‹ ์—ฐ๊ตฌ๋“ค์ด pytorch๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ๋„ ์‚ฌ์šฉ ๋น„์œจ์— ํฐ ์˜ํ–ฅ์„ ์คฌ๋‹ค๊ณ  ํ• ์ˆ˜ ์žˆ๊ฒ ๋‹ค.
์ƒˆ๋กœ ๋‚˜์˜ค๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋…ผ๋ฌธ์˜ 80%~90% ์ •๋„๋Š” pytorch ๊ธฐ๋ฐ˜์ธ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ž„๋ฒ ๋””๋“œ๋ฅผ ๋น„๋กฏํ•œ ํŠน์ • ์˜์—ญ์—์„œ๋Š” ์—ฌ์ „ํžˆ tensorflow๊ฐ€ ๊ฐ•์„ธ๋ฅผ ๋ณด์ด๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ Tensorflow๋ฅผ ๋งŒ๋“  ๊ตฌ๊ธ€์กฐ์ฐจ๋„ JAX๋กœ ์ด๋™ํ•˜๋ ค๋Š” ๋ชจ์Šต์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฏธ๋ž˜๋Š” ์ข€ ์–ด๋‘ก๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.



์ฐธ์กฐ
https://ko.wikipedia.org/wiki/PyTorch
https://www.reddit.com/r/MLQuestions/comments/112sege/pytorch_vs_tensorflow/