๐ ์ค๋ ํ ์ผ
- ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- ๊ธฐ๋ณธ ๊ณผ์ 1, 2 ์ ์ถ
- ๊ฐ์ ์๊ฐ ๋ฐ ํด์ฆ
- [PyTorch 7๊ฐ]
- [PyTorch 8๊ฐ]
- ํผ์ด์ธ์
- ์คํผ์ค์์
๐ฅ ํผ์ด์ธ์ ์์ฝ
- Further Question (PyTorch 5๊ฐ)
- DataLoader์์ ์ฌ์ฉํ ์ ์๋ ๊ฐ sampler๋ค์ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์์ง ๊ฐ์ด ๋
ผ์ํด๋ณด์ธ์.
- ์ฐธ๊ณ ์๋ฃ: https://subinium.github.io/pytorch-dataloader/
- batch์ data๊ฐ biased ๋์ด ์์ ๋, ๊ท ๋ฑ ๋ถํฌ๋ก ์ถ์ถํ๊ธฐ ์ํด์ ์ฌ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค.
- sampler์ ๋ค๋ฅด๊ฒ shuffle์ ์์ ํ ๋๋ค์ด๋ค.
- shuffle=True ์์ random sampler์ ๊ฐ๋ค.
- ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์ปค์ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ฒ์ ์ฌ๋ฆด ์๊ฐ ์์ ๋ Dataset์์ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋๊ฒ ์ข์์ง ๊ฐ์ด ๋
ผ์ํด๋ณด์ธ์.
- generator๋ฅผ ์ฌ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก, ๋ฐ์ดํฐ๋ฅผ path ๊ฒฝ๋ก๋ก๋ง ์ ์ฅํด๋๊ณ ,
__getitem__
์์์ ํ์ผ์ ๋ถ๋ฌ์ค๋ ์์ผ๋ก ํ๋ค.
- DataLoader์์ ์ฌ์ฉํ ์ ์๋ ๊ฐ sampler๋ค์ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์์ง ๊ฐ์ด ๋
ผ์ํด๋ณด์ธ์.
- ์์
๊ด๋ จ ์ง๋ฌธ & ํ ์
- ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋ค ๋ ํฌ๊ฒ ์ค์ ํ๋๊ฐ? ๊ทธ๋ฆฌ๊ณ swap์ด ์ผ์ด๋ HDD๋ก ๋ด๋ ค๊ฐ๊ฒ ๋๋ฉด, ์๋จ์ ํ๋ก์ธ์ค๊ฐ ์ฃฝ์ด๋ ๊ทธ ๋ฐ์ดํฐ๊ฐ ๋จ์์๋์ง ๊ถ๊ธํ๋ค.
- OS ๋จ์์๋ ๊ฐ๋น์ง ์ฝ๋ ํฐ๊ฐ ์กด์ฌํ๋ค. (์์ฐ๋ memory ์ฃผ๊ธฐ์ ์ผ๋ก kill)
- HDD โ memory ์๋ค๊ฐ๋ค ํ๋ ๊ฒ์ ์์ค์ฝ๋, ํ์ผ ๋ฐ์ดํฐ๋ผ๊ณ ์๊ณ ์๋ค. ๊ทธ ๋ฐ์ดํฐ๋ค์ ํ๋ก์ธ์ค์์ ์ฌ์ฉ์ด ๋๋๋ HDD์ ๋จ์์์ด์ผ ํ๋ค.
- GIL (์ ์ญ ์ธํฐํ๋ฆฌํฐ ๋ฝ)
- ์ค์ํ๋ค.
- ํ์ด์ฌ์ด ๋๋ฆฐ ์ด์ . ํ์ด์ฌ ์ต์ด ๊ตฌํ ๋น์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฝ๊ฒ ํ๊ธฐ ์ํด ํ๋์ ์ค๋ ๋๊ฐ ์์์ ๋ ์ ํ๋ ํํ๋ก ๊ตฌํํ์๋ค. (single process ์ฒ๋ผ ์ฒ๋ฆฌํ๋ค.)
- ๊ทธ ๋น์์๋ CPU ํ๋๋ง ์ผ๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์์ง๋ง, ์ง๊ธ์ ๋ฉํฐ์ฝ์ด๊ฐ ๋น์ฐํ๋ฏ๋ก ์ ์ฝ์ ์ด ๋๋ค.
- DataParallel, DistributedDataParallel์ ์๋์ฐ์์ ์๋์๊ฐ๋ค.
- multi-process ๊ธฐ๋ฐ์ ์๋์ฐ์์ ์ง์ํ์ง ์๋๋ค. (๋ณด์์์ ์ด์ ๋ก fork๋ฅผ ๊ธ์งํ๋ค.)
- Linux๋ฅผ ๋ง์ด ์ฐ๋ ์ด์ ์ด๋ค.
- ๋ชจ๋ธ ๋ณ๋ ฌํ ๊ด๋ จ ์์ ์ฝ๋
- ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋ค ๋ ํฌ๊ฒ ์ค์ ํ๋๊ฐ? ๊ทธ๋ฆฌ๊ณ swap์ด ์ผ์ด๋ HDD๋ก ๋ด๋ ค๊ฐ๊ฒ ๋๋ฉด, ์๋จ์ ํ๋ก์ธ์ค๊ฐ ์ฃฝ์ด๋ ๊ทธ ๋ฐ์ดํฐ๊ฐ ๋จ์์๋์ง ๊ถ๊ธํ๋ค.
๐ ๊ณผ์ ๋ด์ฉ ์ ๋ฆฌ
๋ฐ๋ก Notion์ ์ ๋ฆฌ ์ค์ด๋ค.
๐พ ์ผ์ผ ํ๊ณ
๊ฒฐ๊ตญ ์ด์ ๊ณผ์ ๋ฅผ ํ๋ค๊ฐ ๋ฐค์ ์๋คโฆ. ๐ฅฑ ๋คํํ ๊ณผ์ ๋ฅผ ๋ชจ๋ ์๋ฃํ๊ณ ๋ฌด์ฌํ ์ ์ถํ์์ง๋ง, ํ๋ฃจ์ข ์ผ ์ฒด๋ ฅ์ ์ผ๋ก ๋๋ฌด ํ๋ค์๋ค. 5๊ฐ์ ๋์ ๋ถ์คํธ์บ ํ๋ฅผ ์งํํด์ผ ํ๋๋ฐ, ์์ผ๋ก๋ ์ด๋ ๊ฒ ๋ฐค์ ์๋ ์ผ์ ์๋๋ก ํด์ผํ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ ์ ๋ ์๋ ๊ธฐ๋ณธ ๊ณผ์ ์ ๋ํ ์คํผ์ค์์๊ฐ ์์๋ค. ๊ณผ์ ๋ฅผ ํ๋ฉด์ gather ํจ์๊ฐ ๊ฐ์ฅ ํท๊ฐ๋ ธ์๋๋ฐ, ์คํผ์ค์์์์ gather ํจ์์ ๋ํด ์์ธํ๊ฒ ๋ค๋ค์ฃผ์ ์ ๋์์ด ๋ง์ด ๋์๋ค! ๋ด์ผ๋ถํฐ๋ ๋ค์ ์ ์์ ์ธ ๋ฃจํด์ ์ฐพ์์ผ ๊ฒ ๋ค.
๐ ๋ด์ผ ํ ์ผ
- ๊ฐ์ ์๊ฐ & ํด์ฆ
- [PyTorch 9๊ฐ]
- [PyTorch 10๊ฐ]
- ์คํ์ ํผ์ด์ธ์
- ๋ง์คํฐ ํด๋์ค