11. Tensorflow2 ๋น ๋ฅธ ๊ธฐ์ด 2 : ํค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ์์ธกํ๋ ค๋ฉด (Linear Regression)
- ํค๋ก ์ ๋ฐ์ฌ์ด์ฆ ์ถ๋ก ํด๋ณด๊ธฐ
#ํค๋ก ์ ๋ฐ์ฌ์ด์ฆ๋ฅผ ์ถ๋ก ํด๋ณด์
import tensorflow as tf
ํค = 170
์ ๋ฐ = 260
#์ ๋ฐ = ํค * a + b
a = tf.Variable(0.1) #w๊ฐ์ ์์๋ก ์ ์๋ด๋ฆฐ ๊ฒ.
b = tf.Variable(0.2)
def ์์คํจ์() :
์์ธก๊ฐ = ํค * a + b
return tf.square(260 - ์์ธก๊ฐ) #์ค์ฐจ(์ค์ ๊ฐ - ์์ธก๊ฐ)๋ ์ ๊ณฑ์ผ๋ก ๋ฆฌํดํจ.
opt = tf.keras.optimizers.Adam(learning_rate=0.1) #๊ฒฝ์ฌํ๊ฐ๋ฒ์ผ๋ก a, b๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธ ํ๋ ๊ฒ.
#gradient๋ฅผ ์์์ ์ค๋งํธํ๊ฒ ๋ฐ๊ฟ์ฃผ๋ optimizer์ด Adam
#learning_rate๋ ์ง์ ํ์ง ์์๋ ์๋์ผ๋ก ๋จ(0.0001)
for i in range(300) :
opt.minimize(์์คํจ์, var_list=[a,b])
print(a.numpy(),b.numpy())
- ์ฌ๋ฌ๊ฐ์ ๊ฐ ์ฌ์ด์ ๊ด๊ณ ์ถ๋ก ํ๊ธฐ(๋ฆฌ์คํธ)
import tensorflow as tf
train_x = [1,2,3,4,5,6,7]
train_y = [3,5,7,9,11,13,15]
#step1 : ๋ชจ๋ธ ๋ง๋ค๊ธฐ
a = tf.Variable(0.1) #๋ณดํต ์ด๊ธฐ๊ฐ์ ๋๋ค์ผ๋ก ์ง์ด๋ฃ์.
b = tf.Variable(0.1)
def ์์คํจ์() : #์ ์๋ฅผ ๊ตฌํ ๋๋ mean squared error๋ก ์์คํจ์ ๊ตฌํํ๋ฉด ๋จ.
์์ธก_y = train_x * a + b
return tf.keras.losses.mse(train_y, ์์ธก_y)
#step 2 : optimizer, ์์คํจ์ ์ ํ๊ธฐ
opt = tf.keras.optimizers.Adam(learning_rate = 0.01) #learning_rate๋ ์ ๋์ฌ๋๊น์ง ์คํ์ ์ผ๋ก ์๋ํด์ผํจ.
#step 3: ํ์ตํ๊ธฐ(๊ฒฝ์ฌํ๊ฐ์ผ๋ก ๋ณ์๊ฐ ์
๋ฐ์ดํธ ํ๊ธฐ)
for i in range(900) :
opt.minimize(์์คํจ์, var_list=[a,b])
print(a.numpy(), b.numpy())
์ค์ ๊ฐ์ธ [2,1]์ ์ ์ ๊ฐ๊น์์ง๊ณ ์์.
- ์ด๋ฐ๊ฑด ๋ฅ๋ฌ๋์ ์๋. ํ๋ ๋ ์ด์ด๋ ์๊ณ , ํ์ฑํจ์๋ ์ฌ์ฉํ์ง ์๊ณ ์์.
๊ทธ๋ฅ ํ์ต์.
'๐ฅ ๊ธฐ์ > ์ธ๊ณต์ง๋ฅ ๋ฐ ๋ฐ์ดํฐ ์ฌ์ด์ธ์ค(AI, ์ปดํจํฐ ๋น์ , ๋ฅ๋ฌ๋)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AI ์คํฐ๋]-3 Project 2 : ์ด๋ฏธ์ง ํ์ต๊ณผ CNN (0) | 2022.06.07 |
---|---|
[AI ์คํฐ๋]-2 Project 1 : ๋ํ์๋ถ์ ํ๋ฅ ์ ์์ธกํด๋ณด์ (0) | 2022.06.07 |
[AI ์คํฐ๋]-1 ๋ฅ๋ฌ๋ ์ด๋ก (2) (0) | 2022.06.06 |