๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ ํ”„๋กœ๊ทธ๋ž˜๋ฐ·๊ฐœ๋ฐœ/๐Ÿ”ธ๋จธ์‹ ๋Ÿฌ๋‹

[Tensorflow] Tensorflow 101(1-12)

by Jenny:! 2024. 5. 15.

โœ… ๋จธ์‹ ๋Ÿฌ๋‹ ๊ฐœ์š”

1. ๋จธ์‹ ๋Ÿฌ๋‹

  • ์ •์˜
    • ๊ธฐ๊ณ„๋ฅผ ํ•™์Šต์‹œ์ผœ์„œ ํŒ๋‹จ๋Šฅ๋ ฅ์„ ์œ„์ž„ํ•˜๋Š” ๊ธฐ์ˆ 
  • ์ข…๋ฅ˜
    • ์ง€๋„ ํ•™์Šต
      • ๋ถ„๋ฅ˜
      • ํšŒ๊ท€
    • ๋น„์ง€๋„ ํ•™์Šต
      • ๊ตฐ์ง‘ํ™”
      • ๋ณ€ํ™˜
      • ์—ฐ๊ด€
    • ๊ฐ•ํ™” ํ•™์Šต

2. ์ง€๋„ ํ•™์Šต / ๋น„์ง€๋„ ํ•™์Šต / ๊ฐ•ํ™”ํ•™์Šต

  • Tensorflow๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜๋Š” ์˜์—ญ์€ ์ง€๋„ ํ•™์Šต
    • ์ง€๋„ ํ•™์Šต์ด ๋‹ค๋ฃจ๋Š”(ํ•ด๊ฒฐํ•˜๋Š”) ๋ฌธ์ œ 
      • ํšŒ๊ท€ : ์ˆซ์ž๋กœ ๋œ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธก
      • ๋ถ„๋ฅ˜ : ๋ฒ”์ฃผํ˜•, ์นดํ…Œ๊ณ ๋ฆฌ ํ˜•ํƒœ์˜ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธก

3. ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • Decision Tree
  • Random Forest
  • KNN
  • SVM
  • Neural Network

4. Neural Network = ์ธ๊ณต ์‹ ๊ฒฝ๋ง = Deep learning

  • Deep learning์„ ๋•๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • TensorFlow
    • PyTorch
    • Caffe2
    • theano

5. ๋”ฅ๋Ÿฌ๋‹ ํ•™์Šต ์ ˆ์ฐจ

  1. ํŒŒ์ด์ฌ ๊ธฐ์ดˆ
  2. ๋ฐ์ดํ„ฐ ํ•ด์„
  3. ๋จธ์‹ ๋Ÿฌ๋‹ ์ดํ•ด
  4. ๋”ฅ๋Ÿฌ๋‹ ์›๋ฆฌ
  5. ๋”ฅ๋Ÿฌ๋‹ ๊ตฌํ˜„

 

โœ…์ง€๋„ ํ•™์Šต ์ ˆ์ฐจ

1. ๊ณผ๊ฑฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•œ๋‹ค

  • ๊ณผ๊ฑฐ์˜ ๋ฐ์ดํ„ฐ ์†์—์„œ ์›์ธ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ฒƒ
  • ์›์ธ - ๋…๋ฆฝ ๋ณ€์ˆ˜
  • ๊ฒฐ๊ณผ - ์ข…์† ๋ณ€์ˆ˜

2. ๋ชจ๋ธ์˜ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ ๋‹ค

3. ๋ฐ์ดํ„ฐ๋กœ ๋ชจ๋ธ์„ ํ•™์Šต(FIT)ํ•œ๋‹ค

 

โœ…ํ™˜๊ฒฝ์„ค์ •(Google Colaboratory)

1. Google Colaboratory ์‚ฌ์šฉ๋ฒ•

  • ์‹ ๊ทœ > ๋”๋ณด๊ธฐ > ์—ฐ๊ฒฐํ•  ์•ฑ ๋”๋ณด๊ธฐ > Colaboratory ๊ฒ€์ƒ‰ ํ›„ ์„ค์น˜

  • ์‹ ๊ทœ > ๋”๋ณด๊ธฐ > Google Colaboratory

  • ctrl + enter : ์‹คํ–‰ ํ›„ ์…€ ์•ˆ์— ๋จธ๋ฌด๋ฆ„
  • shift + enter : ์‹คํ–‰ ํ›„ ๋‹ค์Œ ์ฝ”๋“œ ์…€๋กœ ๋„˜์–ด๊ฐ

 

โœ…ํ‘œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋„๊ตฌ - Pandas

import pandas as pd

 

#๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
ํŒŒ์ผ๊ฒฝ๋กœ = 'lemonade.csv'
๋ฐ์ดํ„ฐ = pd.read_csv(ํŒŒ์ผ๊ฒฝ๋กœ)

#๋…๋ฆฝ๋ณ€์ˆ˜์™€ ์ข…์†๋ณ€์ˆ˜์˜ ๋ถ„๋ฆฌ
๋…๋ฆฝ = ๋ฐ์ดํ„ฐ[['์˜จ๋„']]
์ข…์† = ๋ฐ์ดํ„ฐ[['ํŒ๋งค๋Ÿ‰']]

#๋ฐ์ดํ„ฐ ๋ชจ์–‘ ํ™•์ธ
print(๋…๋ฆฝ.shape, ์ข…์†.shape)

 

1. ํŒŒ์ผ ์ฝ์–ด์˜ค๊ธฐ

  • pd.read_csv('/๊ฒฝ๋กœ/ํŒŒ์ผ๋ช….csv')

2. ๋ชจ์–‘ ํ™•์ธํ•˜๊ธฐ

  • print(๋ฐ์ดํ„ฐ.shape)

lemonade.csv

3. ์ปฌ๋Ÿผ ์„ ํƒํ•˜๊ธฐ

  • ๋ฐ์ดํ„ฐ[['์นผ๋Ÿผ๋ช…1', '์นผ๋Ÿผ๋ช…2', '์นผ๋Ÿผ๋ช…3']]

4. ์นผ๋Ÿผ ์ด๋ฆ„ ์ถœ๋ ฅํ•˜๊ธฐ

  • print(๋ฐ์ดํ„ฐ.columns)

5. ๋งจ ์œ„ 5๊ฐœ ๊ด€์ธก์น˜ ์ถœ๋ ฅํ•˜๊ธฐ

  • ๋ฐ์ดํ„ฐ.head()

 

โœ…Loss

  • ํ•™์Šต์ด ์–ผ๋งˆ๋‚˜ ์ง„ํ–‰๋˜์—ˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค.

  • ((์ข…์† ๋ณ€์ˆ˜) - (์˜ˆ์ธก ๊ฐ’)) ์ œ๊ณฑ์˜ ํ‰๊ท 

 

โœ…์‹ค์Šต1 - ์ข…์†๋ณ€์ˆ˜ 1๊ฐœ

1. ๋ฐ์ดํ„ฐ ์ค€๋น„ํ•˜๊ธฐ

2. ๋ชจ๋ธ ๊ตฌ์กฐ ๋งŒ๋“ค๊ธฐ

# ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ
X = tf.keras.layers.Input(shape=[1])
Y = tf.keras.layers.Dense(1)(X)
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse')

Dense layer๊ฐ€ ๊ฐ ์‹์„ ๋งŒ๋“ ๋‹ค.

3. ๋ชจ๋ธ ํ•™์Šตํ•˜๊ธฐ

verbose=0์œผ๋กœ ์„ค์ •ํ•ด ์ถœ๋ ฅ ๊ฐ’์ด ๋ณด์ด์ง€ ์•Š๋„๋ก ํ•œ๋‹ค

10๋ฒˆ์˜ ์ถ”๊ฐ€์  ํ•™์Šต ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉฐ 10000๋ฒˆ์˜ ํ•™์Šต์œผ๋กœ ์ธํ•œ loss ๊ฐ’ ๊ฐ์†Œ๋ฅผ ํ™•์ธํ•œ๋‹ค. loss ๊ฐ’์€ ๋Œ€๋žต 0.0001์ด๋‹ค.

4. ๋ชจ๋ธ ์ด์šฉํ•˜๊ธฐ

์˜ˆ์ธก๊ฐ’๊ณผ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•œ๋‹ค.

15๋„์ผ ๋•Œ ๋ช‡ ๊ฐœ๋ฅผ ์˜ˆ์ธกํ•˜๋Š”์ง€์ด๋‹ค.

 

โœ…์‹ค์Šต2 - ์ข…์†๋ณ€์ˆ˜ 2๊ฐœ

1. ๋ฐ์ดํ„ฐ ์ค€๋น„ํ•˜๊ธฐ

#๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ
import tensorflow as tf
import pandas as pd

#๋ฐ์ดํ„ฐ ์ค€๋น„ํ•˜๊ธฐ
ํŒŒ์ผ๊ฒฝ๋กœ = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/boston.csv'
๋ณด์Šคํ„ด = pd.read_csv(ํŒŒ์ผ๊ฒฝ๋กœ)
๋ณด์Šคํ„ด.head()

pd ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ read_csvํ•จ์ˆ˜๋กœ ๋ณด์Šคํ„ด ๋ฐ์ดํ„ฐ์˜ ํŒŒ์ผ๊ฒฝ๋กœ๋ฅผ ๋ฐ›์•„์˜ค๋ฉด ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๋…๋ฆฝ๋ณ€์ˆ˜์™€ ์ข…์†๋ณ€์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ๋ช…๊นŒ์ง€ ์ถœ๋ ฅํ•ด ์ฃผ์—ˆ๋‹ค.

#๋…๋ฆฝ๋ณ€์ˆ˜์™€ ์ข…์†๋ณ€์ˆ˜์˜ ๋ถ„๋ฆฌ
๋…๋ฆฝ = ๋ณด์Šคํ„ด[['crim', 'zn', 'indus', 'chas', 'nox', 'rm', 'age', 'dis', 'rad', 'tax',
       'ptratio', 'b', 'lstat']]
์ข…์† = ๋ณด์Šคํ„ด[['medv']]
print(๋…๋ฆฝ.shape, ์ข…์†.shape)

๋…๋ฆฝ๋ณ€์ˆ˜์™€ ์ข…์†๋ณ€์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•œ ๋’ค shape๊นŒ์ง€ ํ™•์ธํ•œ๋‹ค.

2. ๋ชจ๋ธ ๊ตฌ์กฐ ๋งŒ๋“ค๊ธฐ

#๋ชจ๋ธ ๊ตฌ์กฐ ๋งŒ๋“ค๊ธฐ
X = tf.keras.layers.Input(shape=[13])
Y = tf.keras.layers.Dense(1)(X)
model=tf.keras.models.Model(X,Y)
model.compile(loss='mse')

3. ๋ชจ๋ธ ํ•™์Šตํ•˜๊ธฐ

#๋ชจ๋ธ ํ•™์Šตํ•˜๊ธฐ
model.fit(๋…๋ฆฝ, ์ข…์†, epochs=1000, verbose=0)
model.fit(๋…๋ฆฝ, ์ข…์†, epochs=10)

4. ๋ชจ๋ธ ์ด์šฉํ•˜๊ธฐ

model.predict(๋…๋ฆฝ[0:5])
์ข…์†[0:5]

5. ๋ชจ๋ธ์˜ ์ˆ˜์‹ ํ™•์ธ

# ๋ชจ๋ธ์˜ ์ˆ˜์‹ ํ™•์ธ
model.get_weights()

 

โœ… ํŒŒ์ผ ๊ฒฝ๋กœ ์ €์žฅํ•˜๊ธฐ

  1. ๊นƒํ—ˆ๋ธŒ ๋งํฌ ์šฐํด๋ฆญ ํ›„ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ
  2. Colaboratory ํŒŒ์ผ์— ์ €์žฅํ•œ csv ํŒŒ์ผ์„ ์—…๋กœ๋“œ
  3. ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ์‚ฌ์šฉ

 

 

์ฐธ๊ณ 

https://youtube.com/playlist?list=PLl1irxoYh2wyLwJutUZx5Q_QEEDZoXBnz&si=q9LMHKC7Nz5cd5hl