์ถ์ถํ ์ผ๊ตด ์๋ฒ ๋ฉ numpy array๋ฅผ S3์ ์ ๋ก๋ํ๊ณ , ํ์ํ ๋ ๋ค์ด๋ก๋ํด์ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด๋ค.์ฐธ๊ณ ๋ก, ๋ก์ปฌ์ ๋ค์ด๋ก๋๋๋ ๋ฐฉ์์ ํผํ๊ธฐ ์ํด boto3์ upload_fileobj์ download_fileobj ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ๊ธฐ์กด์ numpy ar
์ด๋ฏธ์ง๊ฐ ์๋ฆฌ์ง ์๊ฒ ํ์ ์ํค๊ณ ์ถ๋ค๋ฉด imutils ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ rotate_bound ํจ์๋ฅผ ์ฌ์ฉํ์.
ํ๋ก์ ํธ์์ ๋ชจ๋ธ ์๋น ํ๋ ์์ํฌ๋ก BentoML์ ์ฌ์ฉํ๊ณ ์๊ณ , boto3๋ฅผ ์ฌ์ฉํด์ AWS S3์ ๊ฐ์ฒด๋ฅผ ์ ๋ก๋ ํ๊ณ ์ ํ๋ค. ํ๋ผ์ด๋น ๋ฒํท์ ์ ๊ทผํ๊ธฐ ์ํด์ AWS credentials์ Bento์ ์ ๋ฌํด์ผ ํ๊ณ , ์๋์ ๊ฐ์ด BentoML์ ๋์์๋ ๋ฐฉ์์ผ๋ก
EC2/Linux Anaconda Python3.7 ์ง์ ๋ฒ์
insightface์์ 9์ 22์ผ์ web์์๋ ์ฝ๊ฒ ๋ชจ๋ธ์ ํ ์คํธ ํ ์ ์๋๋ก ๋ฐ๋ชจ๋ฅผ ์ ๊ณตํ๋ค.
๐๋ฌธ์ ํ์ธํ๋ฌ๊ฐ๊ธฐ!๐is_printed : ์์ฒญํ location์ ์๋ ๋ฌธ์๊ฐ ์ธ์๋๋ ์๊ฐ returnํ๊ณ ์ข ๋ฃํ ๊ฒ์ด๋ฏ๋ก ์์ฒญ ๋ฌธ์๊ฐ ์ธ์๋์๋์ง์ ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ๋ณ์data : enumerate๋ฅผ ์ด์ฉํด์ ๊ฐ์ฅ ์ฒ์ ๋๊ธฐ ๋ชฉ๋ก์ ๋ช ๋ฒ์งธ ๋ฌธ์๊ฐ ์ด๋ค ์ฐ์ ์
ํ์ด์ฌ์์ ์ง์ํ๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์ค๋นํ๋ฉด์ ๊ผญ ์์์ผ ํ๋ 6๊ฐ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด์ ์ ์ด๋ณด๊ณ ์ ํ๋ค.zip()์์ด๊ณผ ์กฐํฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค.ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ฐ์ ์์ ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์ด์งํ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด
ํด๋น ๊ธ์ ํ์ด์ฌ ๋ฌธ๋ฒ์ ๋๋๋น๋์ ์ฑ ์ธ "์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค"์ ๋ถ๋ก A๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ ๋ฆฌํ๊ฒ์ด๋ค. round(์ค์, ๋ฐ์ฌ๋ฆผ์์น-1)/ : ๋๋ ๊ฒฐ๊ณผ๋ฅผ ์ค์๋ก ๋ชจ๋ ํํํ๋ค.// : ๋ชซ์ ๋ฐํ% : ๋๋จธ์ง๋ฅผ ๋ฐํํ์ด์ฌ์ ๋ฆฌ์คํธ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ์
1. ๋ฌธ์ -ํ์ด (1) ๋ฌธ์ ๐๋ฌธ์ ํ์ธ๐ ๋ฌธ์ ์ดํด๋ถํฐ ์กฐ๊ธ ๋ฒ๋ฒ ๊ฑฐ๋ ธ๋ ๋ฌธ์ ์๋ค. ์ฒ์์ ์ด๋ค์์ผ๋ก ํ์ง ๋จธ๋ฆฟ์์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ฉด์ ๋ณต์กํด์ง๋ค ๋ณด๋ ์์ดํจ๋์ ์ด๋ค์์ผ๋ก ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ์ฐ๊ฒฐ์ฐ๊ฒฐ ์ํฌ๊ฑด์ง ๋์ถฉ ๊ทธ๋ฆฌ๋ฉด์ ํ์๋ค. ์ฐธ๊ณ ๋ก ์ด ๋ฌธ์ ๋, ํ๋ก๊ทธ๋
1. Classic Network (1) LeNet - 5 LeNet - 5 ์ ๊ฒฝ๋ง์ ๋ชฉ์ ์ ํ๋ฐฑ์ผ๋ก ๋ ์๊ธ์จ๊ธ ์ธ์ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋งจ ์ฒ์ ์ ๋ ฅ์ด๋ฏธ์ง์ ์ฑ๋ ์๊ฐ 1๊ฐ ์ด๋ค. (2) AlexNet LeNet๋ณด๋ค ํจ์ฌ ํฐ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ํน์ง์ด ์๋ค. LeNetํ
์ผ๋ฐ์ ์ผ๋ก ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง(Convolutional Neural Networks)์๋ 3์ข ๋ฅ์ ์ธต์ด ์๋ค.Convolution Layer (CONV) Pooling Layer (POOL) Fully connected Layer (FC)ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง์ ํฌ๊ธฐ๋ ์ธต์ด ๋์ด๋
1. axios๋ก API ํธ์ถํด์ ๋ฐ์ดํฐ ๋ฐ์์ค๊ธฐ axios๋ ์๋ฐ์คํฌ๋ฆฝํธ HTTP ํด๋ผ์ด์ธํธ์ด๋ค. axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ HTTP์์ฒญ์ Promise ๊ธฐ๋ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ค. ์ฐธ๊ณ ๋ก Promise๋ ์ฝ๋ฐฑ์ง์ฅ ์ฝ๋๊ฐ ์์ฑ๋์ง ์๋๋กํ๋ ๊ธฐ๋ฅ์ด๋ค. > // axios ๋ผ์ด
๋ฆฌ์กํธ ๋ผ์ฐํฐ๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์์ ๋ผ์ฐํ ์ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋๋ก ๋์์ค๋ค. >// ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น $ yarn add react-router-dom 1. ๋ผ์ฐํฐ ์ ์ฉ ํ๋ก์ ํธ index.jsํ์ผ์์ react-router-dom์ BrowseRouter ์ปดํฌ๋ํธ
์ปดํฌ๋ํธ์์ ์ํ๋ฅผ ์ ๋ฐ์ดํธ ํ ๋๋ ๋ถ๋ณ์ฑ์ ์ ์งํ๋ฉด์ ์ํ๋ฅผ ์ ๋ฐ์ดํธ ํ๋๊ฒ์ด ์ค์ํ๋ค. ๋ถ๋ณ์ฑ์ด ์ง์ผ์ง์ง ์์ผ๋ฉด ๊ฐ์ฒด ๋ด๋ถ์ ๊ฐ์ด ๋ฐ๊ปด๋ ๊ฐ์ง๋ฅผ ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค. // immer ์ค์น$ yarn add immer์ฌํ๊น์ง๋ ๊ธฐ์กด์ ๊ฐ์ ์ ์งํ๋ฉด์ ์ํ๋ ๊ฐ์ ์๋ก ์ง
10์ฅ์์ ๋ง๋ค์๋ To-do App์์ ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋๋ ค์ง ๊ฒ์ด๋ค. App.jsํ์ผ์ ์ข ์์ ํด์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋ง ํด๋ณด์!useState์ ๊ธฐ๋ณธ๊ฐ์ createBulkTodos()๋ก ์ง์ ํ๋ฉด, ๋ฆฌ๋ ๋๋ง ๋ ๋๋ง๋ค createBulkTodosํจ์
โ ์ ํฌ๋ฒ ์์ฝ๋์ ์์์ ์ฐธ๊ณ ํ๋ค!๊ธฐ์กด MVCํจํด์ ์น ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํด์ ์น์ ๊ฐ๋ฐํ ๋, ์์ฌ์ด์ ์ด ํฌ๊ฒ ์๋์ ๊ฐ์ด 2๊ฐ์ง๊ฐ ์์๋ค.์๋ฅผ ๋ค์ด, ์ธ์คํ๊ทธ๋จ์์ ์ข์์ ๋ฒํผ ํ๋๋ง ๋๋ฌ๋ ํ์ด์ง ์ ์ฒด๊ฐ ์๋ก ๋ก๋ฉ๋๋ ๋ถํธํจ์ ๋งํ๋ค.์๋ฒ ์ ์ฅ์์ ์น ํ์ด์ง์ ๋์
1. ๊ฐ์๋จธ์ vs ๋์ปค ์ปจํ ์ด๋ (1) ๊ฐ์๋จธ์ ๊ธฐ์กด ๊ฐ์ํ๊ธฐ์ ์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ด์ฉํด ์ฌ๋ฌ๊ฐ์ ์ด์์ฒด์ (os)๋ฅผ ํ๋์ ํธ์คํธ์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด์๋ค. ์ฌ๊ธฐ์ ์ฌ๋ฌ๊ฐ์ ์ด์์ฒด์ ๋ ๊ฐ์ ๋จธ์ ์ด๋ผ๋ ๋จ์๋ก ๊ตฌ๋ถ๋๋ค. ์ด๋ ๊ฒ ๊ฐ์ข ์์คํ ์์์ ๊ฐ์ํํ๊ณ ๋ ๋ฆฝ๋ ๊ณต๊ฐ์
์ฝ๋ฉํ ์คํธ๋ฅผ ์ค๋นํ๋ฉด์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๊ณ ์๋๋ฐ, ์์ฃผ ๊น๋จน๊ฑฐ๋ ์๋กญ๊ฒ ์๊ฒ๋๋ ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.์๋ํ๋ฉด, ํ ๋ฒ ํท๊ฐ๋ฆฐ ๋ถ๋ถ์ ๊ณ์ ํท๊ฐ๋ฆฌ๋ ๋ณ์ ๊ฑธ๋ ธ๊ธฐ ๋๋ฌธ...ํธ๋ ๋ชจ๋ ๋ฌธ์ ์ ๋ํ ํ์ด๋ฅผ ์ฌ๋ฆฌ๋ ๊ฒ์ ์๋๊ณ , ํ๋ฉด์ ์๋กญ๊ฒ ๋ฐฐ์ฐ๊ฒ ๋๊ฒ์ด ์๊ฑฐ๋ ์์ฃผ
์ฒ์์ ๋ณ ์๊ฐ์์ด ์ฌ๊ทํจ์๋ก ์์ฑํด์ ์ ์ถํ๋๋ฐ ์๊ฐ ์ด๊ณผ๋ก ๋์๋ค. ๊ตฌ๊ธ๋ง ํด๋ณด๋๊น ์ฌ๊ทํจ์๋ O(n^2)์ด ๊ฑธ๋ ค์ ์ค๋๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํ๋ค. ๋์ ํ ๋น, ์ด๋ฐ ์๊ณ ๋ฆฌ์ฆ๋ ์์๋๋ฐ, ๋ด๊ฐ ์์ง ๊ณต๋ถ๋ฅผ ์ํด์ ์๊พธ ์์จ๋จน๋๋ค... ์ธ์ ์์ํ ๊ฑฐ
์ปดํฌ๋ํธ ์ ์ธ๋ฐฉ์์ ํด๋์คํ ์ปดํฌ๋ํธ์ ํจ์ํ ์ปดํฌ๋ํธ๊ฐ ์๋ค. rcc + enter -> ํด๋์คํ ์ปดํฌ๋ํธ ์์ฑ ์ฝ๋ ์์ฑ rsc + enter -> ํจ์ํ ์ปดํฌ๋ํธ ์์ฑ ์ฝ๋ ์์ฑ 1.