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

๐Ÿ’ป Programming87

[pandas] DataFrame ์„ค๋ช… | ๋ฐ์ดํ„ฐ ์กฐ์ž‘, ํ•„ํ„ฐ๋ง, ์‹œ๊ฐํ™”, ํ†ต๊ณ„ ๋ถ„์„ ํŒ๋‹ค์Šค(Pandas) ํŒ๋‹ค์Šค(Pandas)๋Š” ํŒŒ์ด์ฌ์—์„œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘๊ณผ ๋ถ„์„์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ํŠนํžˆ ํ‘œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ์— ์šฉ์ดํ•˜๋‹ค. ํŒ๋‹ค์Šค์˜ ์ฃผ์š” ์ž๋ฃŒ๊ตฌ์กฐ์ธ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„(DataFrame)์€ ํ–‰๊ณผ ์—ด๋กœ ์ด๋ฃจ์–ด์ง„ ํ…Œ์ด๋ธ” ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค. ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ƒ์„ฑ import pandas as pd # 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ƒ์„ฑ data = [ ['Alice', 25, 'New York'], ['Bob', 30, 'San Francisco'], ['Charlie', 35, 'Los Angeles'] ] df = pd.DataFrame(data, columns=['Name', 'Age', 'City']) ํŒ๋‹ค์Šค์˜ pd.DataFrame() ํ•จ์ˆ˜๋ฅผ.. 2023. 11. 16.
[pandas] 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ | pd.DataFrame ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ์ฝค๋งˆ๋‚˜ ํƒญ์œผ๋กœ ๊ตฌ๋ถ„๋œ csv, tsv ๋“ฑ์˜ ํŒŒ์ผ ํ˜•ํƒœ์ด๋ฉด, pd.read_csv(file_path) ๋˜๋Š” pd.read_table(file_path, sep='\t') ์„ ํŒŒ์ผ์„ ์ฝ์–ด ๋ฐ”๋กœ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐ„ํ˜น ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ๊ฐ€๊ณต ํ›„ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค. pd.DataFrame()์„ ์‚ฌ์šฉํ•˜๊ณ , columns ๋งŒ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 2์ฐจ์› ๋ฆฌ์ŠคํŠธ → ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋ณ€ํ™˜ ์˜ˆ์‹œ import pandas as pd # 2์ฐจ์› ๋ฆฌ์ŠคํŠธ data = [ ['Alice', 25, 'New York'], ['Bob', 30, 'San Francisco'], ['Charlie', 35, 'Los Angeles'] ] # .. 2023. 11. 16.
[ONNX] ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ ONNX Runtime์œผ๋กœ CPU ํ™˜๊ฒฝ์—์„œ ๊ฐ€์†ํ™”ํ•˜๊ธฐ ์š”์ฆ˜์€ ์–ด์ง€๊ฐ„ํ•œ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ GPU ์—†์ด ๋Œ๋ฆฌ๊ธฐ ์–ด๋ ต์ง€๋งŒ, ๋˜ ์˜์™ธ๋กœ ๊ฐ€๋ฒผ์šด ๋ชจ๋ธ๋“ค์€ CPU ๋งŒ์œผ๋กœ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ํด๋ผ์šฐ๋“œ ๋น„์šฉ๋„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์˜จ๋ผ์ธ ์˜ˆ์ธก์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด CPU ํ™˜๊ฒฝ์—์„œ ์ธํผ๋Ÿฐ์Šคํ•˜๋Š” ๊ฒƒ๋„ ๊ณ ๋ คํ•ด ๋ณผ ๋งŒํ•˜๋‹ค. ๋ฌผ๋ก  CPU๋กœ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ ์ธํผ๋Ÿฐ์Šค๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์ƒ๋‹นํžˆ ๋Š๋ฆฌ๋‹ค. ๋•Œ๋ฌธ์— ONNX ๋ชจ๋ธ ๋ณ€ํ™˜์„ ํ•˜๊ณ , ONNX runtime์œผ๋กœ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์กฐ๊ธˆ์ด๋ผ๋„ ๋ชจ๋ธ ์ธํผ๋Ÿฐ์Šค ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ TensorRT์™€ ๋‹ฌ๋ฆฌ ONNX ๋ชจ๋ธ ๋ณ€ํ™˜์˜ ๊ฒฝ์šฐ ์ž…๋ ฅ ํ…์„œ ํฌ๊ธฐ ๋˜ํ•œ ๋™์ ์œผ๋กœ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๋ฌผ๋ก  ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์— ๋”ฐ๋ผ, ๋ชจ๋ธ์— ๋”ฐ๋ผ, ์ž…๋ ฅ ํ…์„œ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์†๋„ ํ–ฅ์ƒ์˜ ์ •๋„๊ฐ€ ๋‹ค๋ฅด๊ฑฐ๋‚˜, ์˜คํžˆ๋ ค ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด.. 2023. 11. 16.
[PostgreSQL/Python] DB ํŠธ๋žœ์žญ์…˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ | asyncio, asyncpg | ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ’€ ๋งŒ๋“ค๊ธฐ asyncio asyncio๋Š” Python์˜ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ด๋ฒคํŠธ ๋ฃจํ”„์™€ ์ฝ”๋ฃจํ‹ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋น„๋™๊ธฐ ์ฝ”๋“œ ๊ด€๋ฆฌ: asyncio๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์Šค์ผ€์ค„๋ง์ด ๊ฐ€๋Šฅ. ์ด๋ฒคํŠธ ๋ฃจํ”„: asyncio์˜ ํ•ต์‹ฌ ์š”์†Œ๋Š” ์ด๋ฒคํŠธ ๋ฃจํ”„๋กœ, ๋น„๋™๊ธฐ ์ž‘์—…์˜ ์Šค์ผ€์ค„๋ง๊ณผ ์‹คํ–‰์„ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด์„œ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌ. ์ฝ”๋ฃจํ‹ด ์ง€์›: asyncio๋Š” ์ฝ”๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅ. async def๋กœ ์ •์˜๋œ ์ฝ”๋ฃจํ‹ด ํ•จ์ˆ˜๋Š” await ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ž‘์—…์„ ์ผ์‹œ ์ค‘๋‹จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ. ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ: asyncio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ.. 2023. 11. 3.
[Model Inference] Pytorch 2.0 Compile ์‚ฌ์šฉ ํ›„๊ธฐ ๋ฐ ์žฅ๋‹จ์  | pytorch compile ๋ชจ๋ธ ์ถ”๋ก  ์†๋„ ๊ฐœ์„  ํ…Œ์ŠคํŠธ Pytorch Compile ํŠœํ† ๋ฆฌ์–ผ Pytorch 2.0 Overview Pytorch 2.0 compiled_model = torch.compile(model) ๊ธด ์„ค๋ช…ํ•  ๊ฒƒ ์—†์ด Pytorch 2.0 ์ดํ›„ compile ์ด๋ผ๋Š” ๊ฒƒ์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”๋ฐ, ์œ„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ torch.comile(model)์ด๋ผ๋Š” ์งง์€ ์ฝ”๋“œ ํ•œ ์ค„๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชจ๋ธ ์ธํผ๋Ÿฐ์Šค ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด A100 GPU์—์„œ ๋ชจ๋ธ ํ•™์Šต ์†๋„๋Š” 43% ํ–ฅ์ƒ๋˜๊ณ , ๋ชจ๋ธ ์ธํผ๋Ÿฐ์Šค ์†๋„๋Š” Float32 precision์—์„œ 21%, AMP precision์—์„œ 51% ์ •๋„ ํ–ฅ์ƒ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. Pytorch 2.0 Compile ๋ชจ๋ธ ์ธํผ๋Ÿฐ์Šค ํ…Œ์ŠคํŠธ torchvision์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ชจ๋ธ์ธ resnet50์œผ๋กœ p.. 2023. 10. 7.
[Model Inference] Torch-TensorRT ์‚ฌ์šฉ๋ฒ• | ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ ์ตœ์ ํ™” ๋ฐ ์ธํผ๋Ÿฐ์Šค ๊ฐ€์†ํ™” Torch-TensorRT๋Š” PyTorch์™€ NVIDIA์˜ TensorRT๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ๊ฐ€์†ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” PyTorch/TorchScript/FX์šฉ ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค. Torch-TensorRT๋Š” PyTorch ์ต์Šคํ…์…˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ JIT(Just In Time) ๋Ÿฐํƒ€์ž„์— ์›ํ• ํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜๋Š” ๋ชจ๋“ˆ์„ ์ปดํŒŒ์ผํ•œ๋‹ค. NVIDIA TensorRT๋Š” NVIDIA GPU์—์„œ ๋ชจ๋ธ์„ ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ํ™”๋œ ๋Ÿฐํƒ€์ž„ ์—”์ง„์œผ๋กœ, ํŠนํžˆ ๋”ฅ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ ๋” ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์ถ”๋ก (inference) ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ๊ธฐ์กด์— ํŒŒ์ด์ฌ์œผ๋กœ TensorRT๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐœ๋ฐœํ•œ torch2trt ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ด์„œ pytorch ๋ชจ๋ธ์„ tenso.. 2023. 10. 2.
728x90