[python] ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ Process ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ฝ”๋“œ ์˜ˆ์‹œ | multiprocessing.Process | ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ์„œ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ํ• ๋‹น
ยท
๐Ÿ’ป Programming/Python
[python] ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ Pool ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ฝ”๋“œ ์˜ˆ์‹œ | multiprocessing.Pool | python ์†๋„ ํ–ฅ์ƒ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์ž‘์—…ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋ฉฐ, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  (Inter-Process Comvje.tistory.com ํŒŒ์ด์ฌ์—์„œ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด multiprocessing ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ์‹์œผ๋กœ multiprocessing.Pool๊ณผ multiprocessing.Process๊ฐ€ ์žˆ๋‹ค. ์ด์ „ ํฌ์ŠคํŒ…์—์„œ๋Š” Pool์„ ์ค‘์‹ฌ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜๊ณ , ์ด๋ฒˆ์—๋Š” Process๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹๊ณผ ํ•จ๊ป˜ ๋‘ ๋ฐฉ์‹์˜ ์ฐจ์ด์ ์„ ๋น„๊ตํ•ด๋ณด..
[python] ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ Pool ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ฝ”๋“œ ์˜ˆ์‹œ | multiprocessing.Pool | python ์†๋„ ํ–ฅ์ƒ
ยท
๐Ÿ’ป Programming/Python
๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์ž‘์—…ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋ฉฐ, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  (Inter-Process Communication, IPC) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ด์ฌ์—์„œ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์š” ๋ชจ๋“ˆ์€ multiprocessing์ด๋‹ค. multiprocessing ๋ชจ๋“ˆ์€ ํŒŒ์ด์ฌ์—์„œ ๋‹ค์ค‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, threading ๋ชจ๋“ˆ๊ณผ ๋‹ฌ๋ฆฌ Global Interpreter Lock (GIL)์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์œผ๋ฏ€๋กœ CPU-bound ์ž‘์—…์— ํšจ๊ณผ์ ์ด๋‹ค. multiprocessing.Pool multiprocessing.P..
[pytorch] ๋ชจ๋ธ ์ผ๋ถ€๋ถ„๋งŒ ์ €์žฅํ•˜๊ธฐ/๋ถˆ๋Ÿฌ์˜ค๊ธฐ
ยท
๐Ÿ’ป Programming/AI & ML
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..
[PostgreSQL] ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์˜ ์ผ๋ถ€๋ฅผ ์ง€์ •๋œ ๋‹จ์œ„๋กœ ์ž๋ฅด๊ธฐ | 'date_trunc' ํ•จ์ˆ˜ ์„ค๋ช…
ยท
๐Ÿ’ป Programming/Database
PostgreSQL์—์„œ date_trunc ํ•จ์ˆ˜๋Š” ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์˜ ์ผ๋ถ€๋ฅผ ์ง€์ •๋œ ๋‹จ์œ„๋กœ ์ž๋ฅด๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ฃผ์–ด์ง„ ๋‹จ์œ„์— ๋”ฐ๋ผ ์ฃผ์–ด์ง„ ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์˜ ๊ฐ’์„ ๋ฐ˜์˜ฌ๋ฆผ ๋˜๋Š” ๋ฒ„๋ฆผํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค. date_trunc(unit, source); unit: ์ž๋ฅด๊ณ ์ž ํ•˜๋Š” ์‹œ๊ฐ„ ๋˜๋Š” ๋‚ ์งœ์˜ ๋‹จ์œ„๋ฅผ ์ง€์ • source: ์ž๋ฅด๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์ด ๋˜๋Š” ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„ date_trunc ์‚ฌ์šฉ ์˜ˆ์‹œ ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์—์„œ ์‹œ๊ฐ„์„ ์ž๋ฅด๊ธฐ SELECT date_trunc('hour', NOW()); -- ๊ฒฐ๊ณผ: ํ˜„์žฌ ์‹œ๊ฐ„์˜ ์ •๊ฐ๊นŒ์ง€์˜ ๊ฐ’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋‚ ์งœ์—์„œ ์›”์„ ์ž๋ฅด๊ธฐ SELECT date_trunc('month', '2023-03-15'::date); -- ๊ฒฐ๊ณผ: '2023-03-01' (ํ•ด๋‹น ์›”์˜ ์ฒซ ๋ฒˆ์งธ ๋‚ ์งœ..
[Linux] ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค๋ช… | ์‹œ์Šคํ…œ ์ „์ฒด ๋˜๋Š” ํŠน์ • ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์„ค์ • ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜
ยท
๐Ÿ’ป Programming/etc.
๋ฆฌ๋ˆ…์Šค์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋Š” ์‹œ์Šคํ…œ ์ „์ฒด ๋˜๋Š” ํŠน์ • ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์„ค์ • ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋“ค์€ ๋ช…๋ น ์‹คํ–‰ ์‹œ์— ์‚ฌ์šฉ์ž์˜ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ชจ๋‘ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑ๋˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ์„ค์ •๊ฐ’์ด๋‚˜ ๊ฒฝ๋กœ์™€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์ง€์ • ๊ธฐ์กด์— ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋ฅผ ์ง€์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ตฌ๋™ ์ค‘์— ์ฐธ์กฐํ•  ๊ฐ’์„ ๋ฏธ๋ฆฌ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐธ์กฐํ•ด์•ผ ํ•˜๋Š” ๊ฐ’์„ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ํ• ๋‹น ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ž„์‹œ๋กœ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ• ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ž„์‹œ๋กœ ์„ ์–ธํ•˜๋ ค๋ฉด export ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ž„..
[Linux] Redirection (๋ฆฌ๋””๋ ‰์…˜) | ๋ช…๋ น์–ด์˜ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ์„ ํŒŒ์ผ๋กœ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
ยท
๐Ÿ’ป Programming/etc.
๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด์—์„œ ๋ฆฌ๋””๋ ‰์…˜์€ ๋ช…๋ น์˜ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ์„ ํŒŒ์ผ์ด๋‚˜ ๋‹ค๋ฅธ ์žฅ์น˜๋กœ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์•„๋ž˜์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š”ํ•œ ๋ฆฌ๋””๋ ‰์…˜ ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•œ๋‹ค. > (Output Redirection) echo "Hello, Linux" > greeting.txt ๋ช…๋ น์˜ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ํŒŒ์ผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•œ๋‹ค. ์˜ˆ์ œ์—์„œ๋Š” "Hello, Linux"๋ผ๋Š” ํ…์ŠคํŠธ๋ฅผ greeting.txt ํŒŒ์ผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•œ๋‹ค. ๋งŒ์•ฝ greeting.txt ํŒŒ์ผ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด ๋ฎ์–ด์“ฐ๊ณ , ์—†๋‹ค๋ฉด ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. >> (Append Output) echo "Additional text" >> greeting.txt ๋ช…๋ น์˜ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•œ๋‹ค. ์˜ˆ์ œ์—์„œ๋Š” "Additional text"๋ฅผ greeting.txt ํŒŒ์ผ..