์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- ํ๋ฆฐ์ธ์ค๋ฉ์ด์ปค
- ๋์๋
- ์ ๊ธ์ฌ๊ดํ๊ต
- ๋ฏธ๋ํ๋ก์ ํธ
- ๊ฒ์๊ฐ๋ฐ
- ์๊ณ ํ์
- Bootstrap4
- Unseen
- Express
- ๋ ๋ฒ ์นด
- ์นด๋
- JWT
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ง์ธํฌ๋ํํธ๋ฎค์ง์ปฌ
- ํ๋ฉ
- ์ค๋ง์ผ๊ฒ์ดํธ
- ์ธ๋ฆฌ์ผํ๋ก๊ทธ๋๋จธ
- ์คํฐ๋
- flask
- Ajax
- Enhanced Input System
- R
- ์ผ
- Jinja2
- EnhancedInput
- ์ธ๋ฆฌ์ผ
- ํ์ด์ฌ์๋ฒ
- VUE
- node
- ์ธ๋ฆฌ์ผ๋ฎค์ง์ปฌ
- Today
- Total
๋ชฉ๋ก2024/10 (12)
Today, I will
M1 Mac์ฉ PyTorch ์ค์น ๊ฐ์ด๋๋ฅผ ์์ฑํด๋ณธ๋ค.M1 ๋ฐ M2์ ๊ฐ์ Apple Silicon์์ PyTorch๋ฅผ MPS ๊ฐ์(Metal Performance Shaders)์ ์ฌ์ฉํ๊ณ ์ ํ์๋ค.Apple Silicon(M1, M2) Mac์์ PyTorch ์ค์น ๋ฐ ์ค์ ํ๊ธฐ2022๋ 7์ ์ดํ PyTorch๋ Apple Silicon(M1, M2) Mac์์ Metal Performance Shaders(MPS)๋ฅผ ํตํ GPU ๊ฐ์์ ์ง์ํ๋ค. ์ด๋ฅผ ํตํด ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ Apple GPU์์ ๋์ฑ ๋น ๋ฅด๊ฒ ํ์ตํ ์ ์๋ค. ์๋๋ MPS ์ง์์ ์ํ PyTorch ์ค์น ๊ณผ์ ์ด๋ค.์ฌ์ ์ค๋นmacOS ๋ฒ์ ์ด Monterey 12.3 ์ด์์ด์ด์ผ MPS ๊ฐ์์ ์ฌ์ฉํ ์ ์๋ค.์ค์น ๋ช ๋ น์ด# ์๋ชป ์ค์นํ์ ๊ฒฝ..
์ด ๊ธ์์๋ TensorFlow๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ์ ํ ํ๊ท ๋ชจ๋ธ์ ๊ตฌํํ๊ณ ํ์ต์ํค๋ ๊ณผ์ ์ ์ค๋ช ํ๋ค.TensorFlow v1.x์ ๊ธฐ์ด์ ์ธ ํ์ฉ๋ฒ๊ณผ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ๊ฐ๋ ์ ์ตํ๋ ์์ ๋ฅผ ๋ค๋ฃฌ๋ค. ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์ฌ์ฉํ์ฌ RMSE ๊ฐ์ ์ต์ํํ๋ฉด์ ์ต์ ์ ๊ธฐ์ธ๊ธฐ์ ์ ํธ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ์ทจํ๋ค.TensorFlow v1.x๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ ์์ ๋ก, TensorFlow v2.x ํ๊ฒฝ์์๋ compat.v1 ๋ชจ๋์ ํตํด v1.x ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.์ ์ฒด ์ฝ๋#import tensorflow as tfimport tensorflow.compat.v1 as tftf.compat.v1.disable_v2_behavior()# x, y์ ๋ฐ์ดํฐ ๊ฐdata = [[2, 81], [4, 93], [6, 91], [8, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/247k8/btsKpgYJWQX/0K2bNxyhb2gT6dKg8n3w81/img.png)
์ด๋ฒ ๊ธ์์๋ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์ด์ฉํด ์ ํ ํ๊ท ๋ชจ๋ธ์ ํ์ตํ๋ ๋ฐฉ๋ฒ๊ณผ ์ฝ๋ ์์ ๋ฅผ ์์ฑํด๋ณด๋๋ก ํ๋ค. ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ๋ชจ๋ธ์ ์ค์ฐจ๋ฅผ ์ค์ด๊ธฐ ์ํด ํ๋ผ๋ฏธํฐ(๊ธฐ์ธ๊ธฐ์ ์ ํธ)๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์ฌ์ฉํด ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๊ฐ์ฅ ์ ๋ง๋ ์ง์ ์ ์ฐพ์๊ฐ๋ ์์ ๋ฅผ ์ดํด๋ณธ๋ค.1. ๋ฐ์ดํฐ ์ค๋น๋จผ์ ๊ณต๋ถ ์๊ฐ๊ณผ ์ ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๊ฐ๋จํ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํ๋ค. import numpy as npimport matplotlib.pyplot as plt# ๊ณต๋ถ์๊ฐ X์ ์ฑ์ Y์ ๋ฆฌ์คํธdata = [[2, 81], [4, 93], [6, 91], [8, 97]]x = [i[0] for i in data]y = [i[1] for i in data]# ๊ทธ๋ํ๋ก ๋ํ๋ด๋ณด๊ธฐplt.figure..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bMhmaT/btsKkvB3Iup/4thHsIKzvFmJcO1wYGDg40/img.jpg)
๋๊ธฐAI์ ๋ฐ์ ์ ํ์ธํ๋ฉฐ ์ธ๊ฐ์ ๋ชจ๋ฐฉํ์ฌ ํ๋จํ๊ณ ๋ถ์ํ๋ ๋ฅ๋ ฅ, ๋ก๋ด๊ณผ ๊ฒฐํฉ์ ์ธ๊ฐ์ ์ ์ฒด ๋ฅ๋ ฅ์ ๋ชจ๋ฐฉํ๊ฑฐ๋(๋ก๋ด ํ ๋๋ก์, ๋ก๋ด ์ฟ ํน), ์ปดํจํฐ ๋น์ ๊ณผ ์ตํฉํ์ฌ ์ธ๊ฐ์ ์๊ฐ ๊ธฐ๋ฅ์ ๋ชจ๋ฐฉํ ์ ์๋ค๋ ์ ์์ ๋๋ ์ด AI์ ๋ฌด๊ถ๋ฌด์งํ ๊ฐ๋ฅ์ฑ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๊ฒ ๋๋ค. ํ์ง๋ง AI๊ฐ ์ค์ค๋ก ์ธ์์ ํตํด ์์ ์ฑ์ ๋ฐํํ๋ ๊ฒฝ์ง๊น์ง ๊ฐ ์ ์์์ง์ ๋ํ ๊ถ๊ธ์ฆ์ด ์๊ฒผ๋ค. ํนํ ์์ ์ ์์ ์ ํํํ๋ ์๋จ์ผ๋ก ์์๋ฅผ ๋๋ฌ๋ด๋ ์์ ์ด๋ค. ์ธ๊ฐ ์์ ์ฌ์์ ‘์ํ์’์ ์์ ์ ์ธ์ํ๊ณ ํํํ๋ ์ค์ํ ๋งค์ฒด๋ก ์ฌ๊ฒจ์ก๋ค. ์ด์ ๋ฐ๋ผ, AI๊ฐ ์ค์ค๋ก๋ฅผ ์ด๋ป๊ฒ ์ธ์ํ๊ณ ํํํ ์ง ์์๋ณด๊ธฐ ์ํด AI์๊ฒ ์ํ์์ ๊ทธ๋ ค๋ณด๊ฒ ํ์๋ค. AI๊ฐ ๊ณผ์ฐ ์ด๋ ํ ๋ฐฉ์์ผ๋ก ์์ ์ ํํํ ์ง ์ด๋ฅผ ํตํด AI๊ฐ ์์ ์ฑ๊ณผ ์๊ธฐ ์ธ์์ ๊ฐ์ง๊ณ ์๋..
๋ฐ์ดํฐ ํด๋ฌ์คํฐ๋ง๊ณผ ์ฐจ์ ์ถ์๋ ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ๋ ์ฝ๊ฒ ์ดํดํ๊ณ ๋ถ์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ค์ํ ๋ฐ์ดํฐ ๋ถ์ ๊ธฐ๋ฒ์ด๋ค. ์ด ๋ ๊ฐ์ง ๊ธฐ๋ฒ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ฉด ๋ฐ์ดํฐ ์์ ์จ๊ฒจ์ง ๊ฐ์น๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋ ๋์ ์์ฌ๊ฒฐ์ ์ ํ ์ ์๋ค.๋ง์น ๋ณต์กํ ๋ ๊ณ ๋ธ๋ก๋ค์ ์ข ๋ฅ๋ณ๋ก ๋ถ๋ฅํ๊ณ , ๊ทธ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ ํ๋์ ๋ณด๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ๊ฒ๊ณผ ๋น์ทํ๋ค.๋ฐ์ดํฐ ํด๋ฌ์คํฐ๋ง์ด๋?์ ์: ๋น์ทํ ํน์ง์ ๊ฐ์ง ๋ฐ์ดํฐ๋ค์ ๋ฌถ์ด์ ๊ทธ๋ฃน(ํด๋ฌ์คํฐ)์ ๋ง๋๋ ์์ ์์:๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ์ฌ ๊ตฌ๋งค ํจํด์ด ๋น์ทํ ๊ณ ๊ฐ๋ค์ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด ๊ฐ ๊ทธ๋ฃน์ ๋ง๋ ๋ง์ผํ ์ ๋ต์ ์๋ฆฝํ๋ค.๋ฌธ์๋ค์ ๋ด์ฉ์ด ๋น์ทํ ๊ฒ๋ผ๋ฆฌ ๋ฌถ์ด์ ์ฃผ์ ๋ฅผ ํ์ ํ ์ ์๋ค.๋ชฉ์ :๋ฐ์ดํฐ ์์ ์จ๊ฒจ์ง ๊ตฌ์กฐ๋ฅผ ์ฐพ์๋๋ฐ์ดํฐ๋ฅผ ์์ฝํ๊ณ ์๊ฐํํ์ฌ ์ดํด๋ฅผ ๋๊ธฐ์ด์์น๋ฅผ ํ์งํ๊ธฐ์ฐจ์ ์ถ์๋?์ ์: ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/6zAYc/btsJ78ZDBe2/6NknmyKaPOfAAHKLPqkYqk/img.png)
`transforms.Normalize`์ ์ญํ ๊ณผ ์ค์์ฑ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ํ์ตํ ๋, ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ ์ฒ๋ฆฌ๋ ๋งค์ฐ ์ค์ํ ๋จ๊ณ ์ค ํ๋์ด๋ค. ํนํ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋, `Normalize`๋ผ๋ ๊ณผ์ ์ ๋ฐ์ดํฐ์ ๋ถํฌ๋ฅผ ์กฐ์ ํ์ฌ ํ์ต ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ค. `torchvision.transforms.Normalize`๋ ์ด๋ฐ ์ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์ค์ํ ์ญํ ์ ํ๋ค.`transforms.Normalize`๋?`transforms.Normalize`๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ๊ฐ ์ฑ๋์ ๋ํด ํ๊ท ๊ณผ ํ์คํธ์ฐจ๋ฅผ ์ฌ์ฉํด ์ ๊ทํ๋ฅผ ์ํํ๋ ํจ์์ด๋ค. ์ด ํจ์๋ ์ ๋ ฅ ์ด๋ฏธ์ง์ ํฝ์ ๊ฐ๋ค์ ํ๊ท ์ ๊ธฐ์ค์ผ๋ก 0์ ๊ฐ๊น์ด ๊ฐ์ผ๋ก ๋ง๋ค๊ณ , ํ์คํธ์ฐจ๋ฅผ ์ฌ์ฉํด ๋ถํฌ๋ฅผ ์ผ์ ํ๊ฒ ์กฐ์ ํด์ค๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ธ์ด ํ์ตํ ๋ ๋ฐ์ดํฐ์ ๋ถ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ciXsRd/btsJ6jnH6Tr/6ovB3T0erhRGn8Vr49oWj1/img.png)
LSE๋ Least Squares Estimation(์ต์ ์ ๊ณฑ ์ถ์ )์ ์ฝ์์ด๋ค. LSE๋ ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๊ฐ์ฅ ์ ๋ง๋ ์ ํ ๋ชจ๋ธ์ ์ฐพ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ก, ๋ฐ์ดํฐ ํฌ์ธํธ์ ๋ชจ๋ธ์ ์์ธก ๊ฐ ์ฌ์ด์ ์ฐจ์ด(์ค์ฐจ)๋ฅผ ์ต์ํํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค. ์ฌ๊ธฐ์ ์ต์ํํ๋ ๊ฒ์ ์ค์ฐจ์ ์ ๊ณฑํฉ์ด๋ค. 1. SSE (Sum of Squared Errors , ์ค์ฐจ ์ ๊ณฑํฉ )SSE๋ ๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ์์ ์ค์ ๊ฐ๊ณผ ์์ธก ๊ฐ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ์ ๊ณฑํ ๋ค ๋ชจ๋ ๋ํ ๊ฐ์ด๋ค. SSE๋ฅผ ์ต์ํํ๋ ๊ฒ์ด LSE์ ๋ชฉํ์ด๋ค. 2. ๋ฏธ๋ถ์ ํตํด ์ต์ ํw์ b๋ฅผ ๊ตฌํ๊ธฐ ์ํด, ์ค์ฐจ๋ฅผ ์ต์ํํ๋ ค๋ฉด SSE๋ฅผ ๋ฏธ๋ถํ๊ณ ์ด๋ฅผ 0์ผ๋ก ๋ง๋๋ ๊ฐ์ ์ฐพ์์ผ ํ๋ค. ์ด๋ ๋ฏธ๋ถ์ด ๊ทธ๋ํ์์ ์ต์๊ฐ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์๋ ์์์ ๋ณด์ฌ์ฃผ๋ฏ์ด, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cs7wJh/btsJ7uuOu0W/YMgxKMMPP6RBAy8tNrtWA0/img.png)
์ ๊ท ๋ถํฌ์ ํ๋ฅ ๋ฐ๋ ํจ์(PDF, Probability Density Function)๋ ํต๊ณํ์์ ์์ฃผ ์ค์ํ ๊ฐ๋ ์ด๋ค. ์ ๊ท ๋ถํฌ๋ ์ฃผ๋ก ์ฐ๋ฆฌ๊ฐ ์ผ์์์ ๊ด์ฐฐํ๋ ๋ง์ ์์ฐํ์๊ณผ ๋ฐ์ดํฐ๊ฐ 'ํ๊ท ์ฃผ๋ณ์ ๋ง์ด ๋ชฐ๋ ค ์๊ณ , ๊ทน๋จ์ ์ผ๋ก ํฐ ๊ฐ์ด๋ ์์ ๊ฐ์ ์ ๋ค'๋ ํจํด์ ๋ฐ๋ฅผ ๋ ์ ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๋๋ค์ ํค, ์ํ ์ ์, ์ ํ์ ์์ฐ ํ์ง ๋ฑ์ด ์ด๋ฐ ์ ๊ท ๋ถํฌ๋ฅผ ๋ฐ๋ฅผ ์ ์๋ค.1. ์ ๊ท ๋ถํฌ๋?์ ๊ท ๋ถํฌ๋ ํต๊ณ์์ ๋ฐ์ดํฐ๊ฐ ํ๊ท ์ ์ค์ฌ์ผ๋ก ๋์นญ์ ์ผ๋ก ๋ถํฌํ๋ ํํ๋ฅผ ๋งํ๋ค. ์ด๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ณด๋ฉด ์ข ๋ชจ์์ ๊ทธ๋ํ๋ฅผ ๋ ์ฌ๋ฆฌ๋ฉด ๋๋ค. ๊ฐ์ฅ ํํ ๋ฐ์ํ๋ ๊ฐ๋ค์ด ๊ฐ์ด๋ฐ ์ง์ค๋์ด ์๊ณ , ํ๊ท ์์ ๋ฉ์ด์ง์๋ก ๋ฐ์ ๋น๋๊ฐ ์ค์ด๋๋ ํํ๋ค.์ ๊ท ๋ถํฌ๋ ๋ ๊ฐ์ง ์ค์ํ ํน์ฑ์ธ ํ๊ท ๊ณผ ํ์คํธ์ฐจ๋ก ์ ์๋๋ค:ํ๊ท ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/s1P1m/btsJ1P0G6lC/pG0FHaEcpGvtq4pRqEzHg1/img.png)
์ค๋์ PyTorch๋ฅผ ์ฌ์ฉํ์ฌ MNIST ๋ฐ์ดํฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ฐ๊ฒฐ ์ ๊ฒฝ๋ง(fully-connected neural network)์ ํ์ตํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณธ๋ค. MNIST ๋ฐ์ดํฐ์ ์ ์์ผ๋ก ์ด ์ซ์ ์ด๋ฏธ์ง๋ก ๊ตฌ์ฑ๋์ด ์์ด ๋จธ์ ๋ฌ๋ ๋ฐ ๋ฅ๋ฌ๋ ํ์ต์ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ์ ์ด๋ค. ์ฐ์ PyTorch์ torchvision์ ์ฌ์ฉํ์ฌ MNIST ๋ฐ์ดํฐ์ ์ ๋ก๋ํ๊ณ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ๊ณ ๋ฐฐ์น ์ฒ๋ฆฌํ๋๋ก ํ๋ค. 1. ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ ์ํฌํธํ๊ธฐ๋จผ์ , torchvision ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ผ ํ๋ค. ์ด๋ฅผ ์ํด ์๋์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค. !pip install torchvision ๊ทธ ํ, ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํฌํธํ๋ค. import torchimport torchvisionMNI..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/boQo4C/btsJVJtJ1Qk/coQVZK8s68WRIspWaomAfK/img.png)
์ด๋ฒ ํฌ์คํธ์์๋ sklearn ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ load_digits ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ๋ถ์๊ณผ ๋ถ๋ฅ ๋ชจ๋ธ์ ํ์ตํ๋ ๊ณผ์ ์ ์ดํด๋ณธ๋ค. load_digits ๋ฐ์ดํฐ๋ ์์ผ๋ก ์ด ์ซ์ ์ด๋ฏธ์ง๋ฅผ 8x8 ํฌ๊ธฐ์ ํ๋ ฌ๋ก ํํํ ๊ฒ์ผ๋ก, ๊ฐ ์ซ์๋ 0์์ 9๊น์ง์ ๊ฐ์ ๊ฐ๋๋ค. ์ด๋ฅผ ํตํด ์ซ์๋ฅผ ๋ถ๋ฅํ๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๋ง๋ค์ด๋ณธ๋ค.from sklearn import treefrom sklearn import datasetsimport pandas as pdimport seaborn as snsimport numpy as npfrom matplotlib import pyplot as plt%matplotlib inline1. ๋ฐ์ดํฐ ๋ก๋ ๋ฐ ๊ตฌ์กฐ ํ์ธdata = datasets.load_dig..