๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

DataScience/Machine Learning Basic

Tensorflow ์™€ ๋จธ์‹ ๋Ÿฌ๋‹

๋จธ์‹ ๋Ÿฌ๋‹์ด๋ž€ ?

๋จธ์‹ ๋Ÿฌ๋‹์€ ์ผ์ข…์˜ Software์ด๋‹ค. 

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ทœ์น™์„ ์ผ์ผํžˆ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„, ๋ฐ์ดํ„ฐ ์†์—์„œ ๊ทœ์น™์„ ์ฐพ์•„๋‚ด๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ปดํ“จํ„ฐ๊ฐ€ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค. ์ฆ‰ ์ปดํ“จํ„ฐ๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ํ•™์Šต์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋จธ์‹ ๋Ÿฌ๋‹์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ•™์Šตํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ •ํ•ด์ง€๊ณ , ๋ ˆ์ด๋ธ” (๊ฒฐ๊ณผ๊ฐ’)์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋กœ ํ•™์Šตํ•˜๋Š” Supervised Learning (์ง€๋„ํ•™์Šต) ๊ณผ ๋ ˆ์ด๋ธ”์ด ์—†๊ณ  ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ์Šค์Šค๋กœ ํ•™์Šตํ•ด์•ผ ํ•˜๋Š” Unsupervised Learning(๋น„์ง€๋„ํ•™์Šต)์ด ์žˆ๋‹ค. 

 

๊ทธ ์ค‘์— ์šฐ์„  ์ง€๋„ํ•™์Šต์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

์ง€๋„ํ•™์Šต์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๊ฒฐ๊ณผ๊ฐ’์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ด๋ธ”์ด ์ •ํ•ด์ ธ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ๋žŒ์˜ ํ‚ค๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค๋ฉด 0๋ถ€ํ„ฐ 2m ๋“ฑ ์—ฐ์†์ ์ธ ์ˆซ์ž๋ฅผ ์˜ˆ์ธกํ•  ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๊ณผ์ •์„ Regression (ํšŒ๊ท€) ๋ฅผ ํ†ตํ•ด์„œ ์˜ˆ์ธกํ•œ๋‹ค๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

๋งŒ์•ฝ ์–ด๋–ค ์‚ฌ๋žŒ์ด ์‹œํ—˜์— ํ•ฉ๊ฒฉํ• ์ง€ ํ•˜์ง€ ์•Š์„์ง€๋ฅผ ๊ณต๋ถ€ ์‹œ๊ฐ„์œผ๋กœ ์˜ˆ์ธกํ•œ๋‹ค๋ฉด ๊ฒฐ๊ณผ๊ฐ’์€ ์‹œํ—˜์— ํ•ฉ๊ฒฉ, ๋ถˆํ•ฉ๊ฒฉ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์ผ ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๊ณผ์ •์„ Classification(๋ถ„๋ฅ˜) ๋ผ๊ณ  ํ•œ๋‹ค. ๋ถ„๋ฅ˜์—์„œ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ๋ฒ”์ฃผ๊ฐ€ ๋‘ ๊ฐ€์ง€๋กœ๋งŒ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ Binary Classification ์ด๋ผ๊ณ  ํ•˜๊ณ , ์„ธ ๊ฐ€์ง€ ์ด์ƒ์œผ๋กœ ๋ฒ”์ฃผ๊ฐ€ ํ™•์žฅ๋  ๊ฒฝ์šฐ Multi-Label Classification์ด๋ผ๊ณ  ํ•œ๋‹ค. 

 

์šฐ๋ฆฌ๊ฐ€ ๋จธ์‹ ๋Ÿฌ๋‹, ๋” ๋‚˜์•„๊ฐ€ ๋”ฅ๋Ÿฌ๋‹์„ ์ง์ ‘ ์‹คํ–‰ํ•ด๋ณด๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์ œ๊ณต๋œ๋‹ค.

ํ•„์ž๋Š” ๊ทธ ์ค‘ Google ์ด ๊ฐœ๋ฐœํ•œ Tensorflow๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค.

Tensorflow๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ํšจ์œจ์ ์ธ ํˆด์ด์ง€๋งŒ, ์ฒ˜์Œ ์„ค์น˜ํ•  ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

Window ๊ธฐ์ค€์œผ๋กœ Tensorflow ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค.


Tensorflow ์„ค์น˜ ๊ณผ์ •

1. Python ์„ค์น˜

์šฐ์„  ๊ตฌ๊ธ€์— 'Python 3.9' ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ python ๊ณต์‹์‚ฌ์ดํŠธ์—์„œ python์„ ์„ค์น˜ํ•ด์ค€๋‹ค.

์ด ๋•Œ ์ฃผ์˜ํ•  ์ ์€ python ์˜ 64 ๋น„ํŠธ ๋ฒ„์ „์„ ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.

 

2. Anaconda ์„ค์น˜ 

Python์ด ์„ค์น˜๋˜์—ˆ๋‹ค๋ฉด, Anaconda๋ฅผ ์„ค์น˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

๋‹ค์šด๋กœ๋“œํ•œ exe ํŒŒ์ผ์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค. 

 

3. Tensorflow ์„ค์น˜

Anaconda ์„ค์น˜ ํ›„ , anaconda prompt๋ฅผ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค.

p๊ฐ€ ๋ฌต์Œ์ด์–ด์„œ ํ”„๋กฌํŠธ๋ผ ์ฝ์–ด์•ผ ํ•˜๋‚˜? ํ”„๋กฌํ”„ํŠธ์ธ๊ฐ€ ?

 

๊ทธ ํ›„ prompt ์ฐฝ์— ์ด๋Ÿฐ ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

python -m pip install --upgrade pip
conda create - n tensorflow python = 3.9 #์ž์‹ ์˜ ํŒŒ์ด์ฌ ๋ฒ„์ „
# Procceed ([y]/n)? ์ด ๋‚˜์˜ค๋ฉด y ์ž…๋ ฅ

activate tensorflow

pip install --ignore-installed --upgrade tensorflow #CPU๋งŒ ์‚ฌ์šฉ์‹œ
pip install --ignore-installed --upgrade tensorflow-GPU #GPU ์‚ฌ์šฉ์‹œ

#์„ค์น˜ ์™„๋ฃŒ ํ›„
python 

import tensorflow as tf
hello = tf.constant("hello, tensorflow!")
sess = tf.Session()

tensorflow ์„ค์น˜๊นŒ์ง€ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋Š”๋ฐ, Session()์—์„œ

 

AttributeError : module 'tensorflow' has no attribute 'Session'

Error๊ฐ€ ์ƒ๊ฒผ๋‹ค. 

์ž์ฃผ ๋ณด๋˜ ์—๋Ÿฌ๋‹ค ๋‹นํ™ฉํ•˜์ง€ ๋ง์ž ๋‹นํ™ฉํ•˜์ง€ ๋ง์ž

์ด Error๋Š” Session() ํ•จ์ˆ˜๊ฐ€ tensorflow ๋ฒ„์ „ 1.x.x ์—์„œ ์‚ฌ์šฉํ•˜๋˜ ํ‘œํ˜„๋ฐฉ์‹์ด์–ด์„œ ๋” ์ด์ƒ ์ง€์›์„ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

์ฆ‰, ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ์˜ tensorflow ๋ฒ„์ „์— ๋งž๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 

ํ•„์ž์˜ tensorflow ๋ฒ„์ „์€ 2.7.0์ด์—ˆ๊ณ , Session์„ ์ •์˜ํ•˜๊ณ  run ํ•ด์ฃผ๋Š” ๊ณผ์ •์ด ์ƒ๋žต๋˜๋ฏ€๋กœ, error๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. 

tensorflow 2.0.0 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” Session ์ •์˜๋ฅผ ์ƒ๋žตํ•˜๊ณ  run์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ์„ ํ•ด์ฃผ๋ฉด

๊ฒฐ๊ณผ๊ฐ€ ์ž˜ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.