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

DataScience/Machine Learning Basic

Tensorflow ๊ธฐ๋ณธ Operation

Tensorflow์˜ ๊ธฐ๋ณธ์ ์ธ Operation์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. 

Tensorflow๋Š” data flow graphs๋ฅผ ์‚ฌ์šฉํ•ด numerical ํ•œ ๊ณ„์‚ฐ์„ ํ•˜๋Š” Library์ด๋‹ค.

์•…ํ•„

Edge ์— ๋Œ์•„๋‹ค๋‹ˆ๋Š” Data๋“ค์„ Tense๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๊ทธ๋“ค์˜ ๋Œ์•„๋‹ค๋‹˜, ์ฆ‰ ํ๋ฆ„์„ Flow๋ผ๊ณ  ํ•˜๊ณ , ๊ทธ๊ณณ์—์„œ ๋‚˜์˜จ ์ด๋ฆ„์ด Tensorflow์ด๋‹ค. 

 

๋ณธ๊ฒฉ์ ์œผ๋กœ Tensorflow ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ๋˜ ๋‹ค์‹œ ๋ฒ„์ „ ์ด์œ ์˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

์•„ ๋ฒ„์ „ ๋‹ค๋ฅธ ๊ฑฐ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ .. 

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

tensorflow version 1๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— Session ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , version 2์—์„œ๋ถ€ํ„ฐ๋Š” Session์ด ์ ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. 

๋งค์šฐ ๊ฐ„๋‹จ

๊ฐ„๋‹จํ•˜๊ฒŒ tf.print๋ฅผ ์จ๋ฒ„๋ฆฌ๋ฉด ๋๋‹ค. ์—ญ์‹œ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ์œ ์ €๊ฐ€ ํŽธ์•ˆํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ„๋‹ค๋Š” ํ™•์‹ ์„ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

Tensorflow๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ์šฐ์„  ๋นŒ๋“œํ•˜๊ณ , ๊ทธ๋ž˜ํ”„๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ , ๊ทธ ๊ฐ’์„ ๋ฆฌํ„ด์‹œํ‚ค๋Š” ํ˜•์‹์ด๋‹ค. 

 

๊ทธ๋ž˜ํ”„ ๋นŒ๋“œ
๊ทธ๋ž˜ํ”„ ์‹คํ–‰์‹œํ‚ค๊ณ  ๊ทธ ๊ฐ’์„ ๋ฆฌํ„ด

Version 2์—์„œ๋Š” Session() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ทธ๋ž˜ํ”„๋ฅผ ์‹คํ–‰์‹œํ‚ค๋˜ ๊ณผ์ •์ด ์ƒ๋žต๋˜์—ˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

placeholder ์—์„œ๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, 

์ด์   ์ต์ˆ™ํ•ด

"AttributeError : module 'tensorflow' has no attribute 'placeholder'"

์‚ฌ์‹ค ์ด๊ฒŒ ์ •์„์€ ์•„๋‹ˆ๋‹ค. ์• ์ดˆ์— tf.placeholder ํ•จ์ˆ˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ƒ์ˆ˜๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‚˜์ค‘์— ๊ฐ’์„ ๋„ฃ์–ด์ค„ ๊ณต๊ฐ„์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. 

Tensorflow 2.0 ์—์„œ๋ถ€ํ„ฐ๋Š” @tf.function ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ placeholer์˜ ์—ญํ• ์„ ๋Œ€์ฒดํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

์š”๋Ÿฐ ๋А๋‚Œ์œผ๋กœ

 tf.Variable ์•ˆ์— 3.0, 4.5 ๊ฐ™์€ integer ๊ฐ’์„ ๋„ฃ์—ˆ์„ ๋•Œ 

๋‚œ๊ด€

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

"Input 'y' of 'AddV2' Op has type int32 that does not match type float32 of argument 'x'."

tf.Variable ํ•จ์ˆ˜ ์•ˆ์— ์ •์ˆ˜ ๊ฐ’๋งŒ ๋„ฃ๊ณ , ์‹ค์ˆ˜ ๊ฐ’์€ ๋„ฃ์€์ง€ ์—†๋Š” ๊ฒƒ์ธ์ง€ ์กฐ๊ธˆ ๋” ํŒŒ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์–ด๋ณด์ธ๋‹ค.


Tensor Ranks. Shapes. and Types

 

Scalar -> 0์ฐจ์› : rank = 0

Vector -> 1์ฐจ์› : rank = 1

Matrix -> 2์ฐจ์› : rank = 2

3- Tensor -> 3์ฐจ์› : rank = 3

n - Tensor -> n ์ฐจ์› : rank = n

tense ๋Š” array์˜ ๊ฐœ๋…์ด๋‹ค. 

element์— ๋ช‡ ๊ฐœ์”ฉ ๋“ค์–ด์žˆ๋Š”์ง€๋ฅผ shape์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

[D0 , D1] ์€ D0 ์”ฉ D1 ๊ฐœ๊ฐ€ ์žˆ๋Š” shape์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฐจ์›์ด ๋“ค์–ด๋‚˜๋ฉด D์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๊ฒŒ ๋œ๋‹ค. 

 

type ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š”, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ float32์™€ int32๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.