๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐Ÿงธ TOY-PROJECTS

๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐Ÿงธ TOY-PROJECTS

[ํ† ์ดํ”„๋กœ์ ํŠธ-๊ณต๊ฐ ์ฑ—๋ด‡] ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ด๋ฒˆ์— NLP๋ฅผ ์ฃผ์ œ๋กœ ์ž‘์€ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ, ์ž์‹ ์˜ ์‹ฌ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๊ทธ๊ฒƒ์— ๊ณต๊ฐํ•ด ์ฃผ๊ฑฐ๋‚˜ ์ƒ๋‹ดํ•ด ์ฃผ๋Š” ์ฑ—๋ด‡์„ ๋งŒ๋“ค์–ด๋ดค๋‹ค. ์ฐธ๊ณ ์ž๋ฃŒ: https://wikidocs.net/157001 https://hoit1302.tistory.com/162#[1]kogpt2%EA%B8%B0%EB%B0%98%EC%8B%AC%EB%A6%AC%EC%BC%80%EC%96%B4%EC%B1%97%EB%B4%87 ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” skt์˜ ์ƒ์„ฑ ๋ชจ๋ธ, KoGPT2๋ฅผ fine-tuning ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ์…‹์€ ์œ ๋ช…ํ•œ ์†ก์˜์ˆ™ ๋‹˜์˜ ์ฑ—๋ด‡ ๋ฐ์ดํ„ฐ์…‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. 1. ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์šฐ์„  ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ df์— ์ €์žฅํ•˜๊ณ  df.head()๋ฅผ ์‹คํ–‰ํ•ด ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค: ์—ฌ๊ธฐ์„œ lab..

๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐Ÿงธ TOY-PROJECTS

[DeepLook] 6. ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ, ์ดํ›„ ์—๋Ÿฌ ํ•ธ๋“ค๋ง๊ณผ ๋งˆ๋ฌด๋ฆฌ

์ตœ์ข… ๋ฐฐํฌ ๋งํฌ https://deep-look.vercel.app ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋ฐฑ์—”๋“œ์— ์—ฐ๊ฒฐ์„ ๋งˆ์ณค์„ ๋•Œ์ฏค, ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ ์ž‘์—…์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ๋ชจ๋ธ์— ์‚ฌ์ง„์„ ์—…๋กœ๋“œ ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๊ณ„์† ์ž˜ ์—…๋กœ๋“œ๊ฐ€ ๋˜์ง€ ์•Š์•„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋“ค์ด ๋ฐœ์ƒํ–ˆ๋‹ค. 1. 413 ์—๋Ÿฌ ์ฒซ๋ฒˆ์งธ๋Š”, ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์‹œ, base64๋กœ ์ธ์ฝ”๋”ฉ ๋œ ๊ฐ’์ด ์ „์†ก๋˜๋ฉด์„œ ๋ฐœ์ƒํ•œ 413 ์—๋Ÿฌ์˜€๋‹ค. 413 ์—๋Ÿฌ๋Š” ๋งŽ์ด ๋ณธ ๊ฒฝํ—˜์ด ์—†๋˜ ํ„ฐ๋ผ, ์„œ์นญํ•ด ๋ณด์•˜๋Š”๋ฐ, ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์œ ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋„ˆ๋ฌด ์ปธ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. Nginx์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์š”์ฒญ ์—”ํ‹ฐํ‹ฐ์˜ ํฌ๊ธฐ๋Š” 1MB๋กœ ์ œํ•œ์ด ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, 1MB๊ฐ€ ๋„˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ–ˆ์„ ๋•Œ 413 ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋˜ ๊ฒƒ์ด๋‹ค. ์ด์—, ์ตœ๋Œ€ 50MB๊นŒ์ง€ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก nginx ์„ค์ •์„ ๋ณ€..

๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐Ÿงธ TOY-PROJECTS

[DeepLook] 5. ๋ฐฑ์—”๋“œ ์—ฐ๊ฒฐ

์ด์ „๊นŒ์ง€๋Š” ํ”„๋ก ํŠธ ์ชฝ ์ž‘์—…๋งŒ ๋งก์•„์„œ ํ•˜๊ณ , ๋ฐฑ์—”๋“œ๋Š” node js๋กœ ํ•œ๋ฒˆ ๋ง›๋ณธ ์ƒํƒœ์˜€๋Š”๋ฐ, ๊ฐ‘์ž‘์Šค๋ ˆ ์›น๊ณผ ๋ฐฑ์„ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š” ํƒœ์Šคํฌ๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค. ์‹œ๊ฐ„์ด ์—†๊ณ , ๋ชจ๋ธ์ด ๊ทœ๋ชจ๊ฐ€ ์žˆ๋Š” ๋ชจ๋ธ์€ ์•„๋‹ˆ์–ด์„œ flask๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๋” ์ž์„ธํ•œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์‹ถ์œผ๋ฉด ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค. (์ข€ ๋‚œ์žกํ•  ์ˆ˜ ์žˆ์Œ ์ฃผ์˜) ๋ฐฑ์—”๋“œ ๋ชจ๋ธ๊ณผ ์—ฐ๊ฒฐ ์‹œ ๊ฑฐ์นœ ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค: pickle ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋ชจ๋“  ์—ฐ์˜ˆ์ธ์˜ ์–ผ๊ตด ์ž„๋ฒ ๋”ฉ์„ ์ €์žฅํ•œ๋‹ค. client ์ธก์—์„œ post ์š”์ฒญ์„ ๋ณด๋ƒˆ์„ ๋•Œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ž„๋ฒ ๋”ฉ์„ ์ถ”์ถœํ•œ๋‹ค. ์ถ”์ถœํ•œ ์ž„๋ฒ ๋”ฉ๊ณผ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ์ž„๋ฒ ๋”ฉ์„ pickle ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ๋กœ๋”ฉํ•œ๋‹ค. ์ถ”์ถœ๋œ ์–ผ๊ตด ์ž„๋ฒ ๋”ฉ๊ณผ ์‚ฌ์ „ ํ•™์Šต๋œ ์ž„๋ฒ ๋”ฉ ๊ฐ„์˜ ์œ ์‚ฌ๋„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ์œ ๋ช…์ธ์˜ ์ด๋‹ˆ์…œ๊ณผ ์œ ์‚ฌ๋„๋ฅผ JSON ํ˜•์‹์œผ๋กœ..

๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐Ÿงธ TOY-PROJECTS

[DeepLook] 4. ๋ชจ๋ธ ์„ ์ • ๋ฐ ํ•™์Šต

์‚ฌ์ง„ ์ „์ฒ˜๋ฆฌ ์ดํ›„, ๋ชจ๋ธ์„ ์„ ์ •ํ•˜๊ณ  ํ•™์Šต์‹œํ‚ค๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณค๋‹ค. ๋ชจ๋ธ์˜ ํ›„๋ณด๋Š” ResNet, EfficientNet, Arcface๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ๊ฐ€์žฅ ์–ผ๊ตด ์œ ์‚ฌ๋„ ๋ถ€๋ถ„์—์„œ ํฐ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” Arcface ๋ชจ๋ธ์„ ์„ ์ •ํ–ˆ๋‹ค. ๋” ์ž์„ธํ•œ ๊ณผ์ •์€ ์ฝ”๋žฉ์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 1. CSV ํŒŒ์ผ ์ƒ์„ฑ ์šฐ์„  ์ „์ฒ˜๋ฆฌ๋œ ์‚ฌ์ง„๋“ค์˜ ์ด๋ฆ„(์ด๋ฆ„_์ˆœ๋ฒˆ ํ˜•ํƒœ)๊ณผ ํ•ด๋‹น ์ธ๋ฌผ๋“ค์ด label ๋œ csv ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค. 2. Train, Test dataset ๋ถ„๋ฆฌ ํ•ญ๋ชฉ๋ณ„๋กœ 70%๋Š” train, 30%๋Š” test์˜ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ๋ถ„๋ฆฌํ–ˆ๋‹ค. # ์ด๋‹ˆ์…œ์„ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ๋ชจ์œผ๊ธฐ class_name_list = [] tmp=df.copy() for initial in tmp['class']: if initial not in class_name..

์žฅ์˜์ค€
'๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐Ÿงธ TOY-PROJECTS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก