๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿ’ป Programming83

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๋ถ„์„์— NumPy์™€ Pandas๊ฐ€ ํ•„์ˆ˜์ธ ์ด์œ !? ์˜ค๋Š˜์€ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹ ํ”„๋กœ์ ํŠธ์—์„œ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๊ฐ€์ง€ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, NumPy์™€ Pandas์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๋ ค๊ณ  ํ•ด์š”. ์™œ ์ด ๋‘ ๊ฐ€์ง€ ํˆด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•˜์ง€ ์•Š๋‚˜์š”? ์™œ NumPy์™€ Pandas๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?ํŒŒ์ด์ฌ์€ ๊ทธ ์ž์ฒด๋กœ ๊ฐ•๋ ฅํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ง€๋งŒ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๋ถ„์„์—๋Š” ์กฐ๊ธˆ ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ์–ด์š”. ์ด๋•Œ NumPy์™€ Pandas๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์™œ ๋งŽ์€ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ์™€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ๋ž‘ํ•˜๋Š”์ง€ ์‚ดํŽด๋ด…์‹œ๋‹ค!๐Ÿ“Œ NumPy: ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ์ˆ˜์น˜ ๊ณ„์‚ฐ!NumPy๋Š” ๊ณ ์„ฑ๋Šฅ ์ˆ˜์น˜ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ํ•„์ˆ˜ ๋„๊ตฌ์˜ˆ์š”. ๊ณ ์„ฑ๋Šฅ ์ˆ˜์น˜ ๊ณ„์‚ฐ๋น ๋ฅธ ์—ฐ์‚ฐ ์†๋„: NumPy๋Š” ๋ฐฐ์—ด ์—ฐ์‚ฐ์„ C๋กœ ๊ตฌํ˜„ํ•ด์„œ ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋ณด๋‹ค ํ›จ์”ฌ .. 2024. 7. 7.
[python] 3์ฐจ์› ๊ณต๊ฐ„ ํšŒ์ „ ๋ณ€ํ™˜ | scipy Rotation scipy์˜ Rotation ํด๋ž˜์Šค๋Š” 3D ๊ณต๊ฐ„์—์„œ์˜ ํšŒ์ „ ๋ณ€ํ™˜์„ ๋‹ค๋ฃจ๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํšŒ์ „์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ–‰๋ ฌ๋กœ๋ถ€ํ„ฐ ํšŒ์ „์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, ํšŒ์ „์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ถ•๊ณผ ๊ฐ๋„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์ „์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์„œ 3D geometry๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘์—๋„ Rotation.apply() ๋ฉ”์„œ๋“œ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด ๋ฉ”์„œ๋“œ๋Š” ํšŒ์ „๋œ ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋Šฅ์€ ๋ฒกํ„ฐ์— ํšŒ์ „ ํ–‰๋ ฌ์„ ๊ณฑํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ์ˆ˜์‹์ ์œผ๋กœ๋Š” ์œ„์™€ ๊ฐ™์ด ๊ธฐ์กด ๋ฒกํ„ฐ์— ํšŒ์ „ํ–‰๋ ฌ(R)์„ ๊ณฑํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ํšŒ์ „ ํ–‰๋ ฌ์„ ๋ฒกํ„ฐ์— ๊ณฑํ•จ์œผ๋กœ์จ ํšŒ์ „๋œ ๋ฒกํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. Rotation.inv().apply() ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํšŒ์ „ ํ–‰๋ ฌ์˜ ์—ญํ–‰๋ ฌ์„ ๋ฒกํ„ฐ์— ์ ์šฉํ•˜์—ฌ ํšŒ์ „ ํ–‰๋ ฌ์˜ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ์ฝ”๋“œ ์˜ˆ์ œ fr.. 2024. 3. 29.
[python] ํŒŒ์ด์ฌ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ | joblib ์‚ฌ์šฉ๋ฒ• | ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ | ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ joblib์€ ํŒŒ์ด์ฌ์—์„œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. Parallel ํด๋ž˜์Šค Parallel ํด๋ž˜์Šค๋Š” ๋ณ‘๋ ฌ๋กœ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ - n_jobs n_jobs ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ž‘์—…์˜ ์ˆ˜๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ CPU์˜ ์ฝ”์–ด ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํšจ๊ณผ์ ์ด๋‹ค. n_jobs=-1์€ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ฝ”์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜๋ผ๋Š” ์˜๋ฏธ - backend ๋ฐฑ์—”๋“œ๋Š” ์–ด๋–ป๊ฒŒ ๋ณ‘๋ ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ•ต์‹ฌ ์—ญํ• ์„ ํ•˜๋ฉฐ, loky ๋ฐฑ์—”๋“œ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. loky (๊ธฐ๋ณธ ๋ฐฑ์—”๋“œ) loky๋Š” ํŒŒ์ด์ฌ์˜ concurrent.futures๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฐฑ์—”๋“œ๋กœ, ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ํ™œ์šฉ ํ”„๋กœ์„ธ์Šค ํ’€๋ง์„ ํ†ตํ•ด ํšจ.. 2024. 1. 19.
[python] ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ Process ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ฝ”๋“œ ์˜ˆ์‹œ | multiprocessing.Process | ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ์„œ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ํ• ๋‹น [python] ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ Pool ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ฝ”๋“œ ์˜ˆ์‹œ | multiprocessing.Pool | python ์†๋„ ํ–ฅ์ƒ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์ž‘์—…ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋ฉฐ, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  (Inter-Process Co mvje.tistory.com ์œ„ ํฌ์ŠคํŒ…์—์„œ ํŒŒ์ด์ฌ์œผ๋กœ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด multiprocessing.Pool ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์‚ดํŽด๋ดค๋‹ค. ์ด๋ฒˆ์—๋Š” multiprocessing.Process๋ฅผ ํ™œ์šฉํ•œ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ ๋ฐฉ๋ฒ•๊ณผ Pool, Process ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. multiprocessing.Pool๊ณผ multiprocessing.Process๋Š”.. 2024. 1. 7.
[python] ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ Pool ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ฝ”๋“œ ์˜ˆ์‹œ | multiprocessing.Pool | python ์†๋„ ํ–ฅ์ƒ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์ž‘์—…ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋ฉฐ, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  (Inter-Process Communication, IPC) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ด์ฌ์—์„œ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์š” ๋ชจ๋“ˆ์€ multiprocessing์ด๋‹ค. multiprocessing ๋ชจ๋“ˆ์€ ํŒŒ์ด์ฌ์—์„œ ๋‹ค์ค‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, threading ๋ชจ๋“ˆ๊ณผ ๋‹ฌ๋ฆฌ Global Interpreter Lock (GIL)์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์œผ๋ฏ€๋กœ CPU-bound ์ž‘์—…์— ํšจ๊ณผ์ ์ด๋‹ค. multiprocessing.Pool multiprocessing.P.. 2024. 1. 7.
[pytorch] ๋ชจ๋ธ ์ผ๋ถ€๋ถ„๋งŒ ์ €์žฅํ•˜๊ธฐ/๋ถˆ๋Ÿฌ์˜ค๊ธฐ PyTorch์—์„œ๋Š” ๋ชจ๋ธ์˜ ์ผ๋ถ€๋ถ„๋งŒ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋ชจ๋ธ์˜ ํŠน์ • ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๊ณ  ๋ชจ๋ธ์˜ ์ผ๋ถ€๋ถ„๋งŒ์„ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. ๋ชจ๋ธ์˜ ํŠน์ • ๋ถ€๋ถ„์„ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด PyTorch์—์„œ๋Š” state_dict์˜ ํŠน์ • ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (state_dict๋Š” ๋ชจ๋ธ์˜ ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ ๋“ฑ์„ ํฌํ•จํ•˜๋Š” ์‚ฌ์ „(dictionary)์ด๋‹ค) ๋‹ค์Œ์€ ๋ชจ๋ธ์˜ ํŠน์ • ๋ถ€๋ถ„์„ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ์ด๋‹ค. import torch import torch.nn as nn # ์˜ˆ์ œ ๋ชจ๋ธ ์ •์˜ class ExampleModel(nn.Module): def __init__(self): super(ExampleModel, self).__init__() self.layer1 = nn.Line.. 2023. 12. 9.
728x90