์ด๋ฒ Tensorflow Summit 2019์์ Tensorflow 2.0 alpha๋ฒ์ ์ด ๊ณต๊ฐ ๋์๋๋ฐ์,
๊ธฐ์กด์ tensorflow๋ฅผ ์ฌ์ฉํด์ ๋ฅ๋ฌ๋์ ๊ฐ๋ฐํ๋ ์ฌ๋์ด๋ผ๋ฉด,
์ฒด๊ฐํ ์ ์๋ ํ ๋ฐ๋ ๋ถ๋ถ์ด ๋ง์ด ์์ต๋๋ค.
์ด๋ฌํ ๋ถ๋ถ์ ๋ํด ๊ฐ๋จํ ์๊ฐํ๊ณ ์ ํฉ๋๋ค.
์ฐ์ , ๊ธฐ๋ณธ์ ์ผ๋ก tensorflow์ ๋์์ ๋ํด ๊ฐ๋จํ ๋ง์๋๋ฆฌ๋ฉด,
1. ํ์ตํ ๋ฐ์ดํฐ์
์ค๋น
2. ๋ฐ์ดํฐ์
์ ๋ด์ Computational Graph ์ค๋น(tf.placeholder)
3. ๊ฐ์ค์น๋ ๋ฐ์ด์ด์ค๋ฅผ ๋ด์ Computational Graph ์ค๋น(tf.Variable)
4. ์์คํจ์ ์ ์
5. ์์คํจ์๋ฅผ ์ต์ํ ํด์ฃผ๋ Optimizer์ ์
6. tf.Session์ ์
7. Session๋ด์์ ํ๋ผ๋ฏธํฐ ๊ฐ ์ด๊ธฐํ(tf.global_variable_initializer())
8. ํ์ต ์ํ
9. ํ๊ฐ
10. ์์ธก
์ด๋ฌํ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ฌ๊ธฐ์ computational graph๋, ๋งคํธ๋ฆญ์ค ํํ์ ๋ฐ์ดํฐ๋ฅผ '๋
ธ๋'๋ ๊ณณ์์
๊ณ์ฐ์ ํ๋ ํํ๋ฅผ ๊ทธ๋ํ๋ก ํ์ํ ๊ฒ ์
๋๋ค.
๋๋ฆ ํฉ๋ฆฌ์ ์ธ ๋ฐฉ์์ด๊ธด ํ์ง๋ง,
์ฌ๊ธฐ์๋ ๋งน์ ์ด ์์ต๋๋ค.
๋ฐ๋ก, define๋จ๊ณ์์๋ ์๋ฌด๊ฒ๋ ์คํ๋์ง ์๋๋ค๋ ์ ์ด์ฃ .
์๋ ์๋ฅผ ๋ณผ๊น์?
>> a = 2
>> b = 3
>> c = a + b
์ด ์์ ์์ a = 2๋ฅผ ์ ์ํ๋ ์๊ฐ
์ด๋ฏธ a๋ผ๋ ๋ณ์์๋ 2์ ๊ฐ์ด ํ ๋น์ด ๋ฉ๋๋ค.
c๋ c = a + b ๋ฅผ ์ํํ๋ ์๊ฐ ์ด๋ฏธ, c์๋ 5๋ ๊ฐ์ด ๋ค์ด๊ฐ๊ฒ ์ฃ .
๊ทธ๋ฐ๋ฐ, ์ด๋ฅผ tensorflow์ computational graph๋ก ์์ฑํ๋ฉด,
a = tf.constant(1)
b = tf.constant(2)
์ด๋ฐ์์ผ๋ก ์ ์๋ฅผ ํ์ฃ .
์ด๋ a์ ๊ฐ์ ์ฐ์ด๋ณด๋ฉด 1์ด ๋์ค์ง ์์ต๋๋ค.
๊ทธ๋ฅ 1์ด๋ ๊ฐ์ด ํ ๋น ๋ computational graph๊ฐ ํ๋ ํ์๋ ๋ฟ์ด์ฃ .
Tensor("Const:0", shape=(), dtype=int32)
tensorflow์์๋ session์ด๋๊ฑธ ์์ฑํด์ ์คํํด์ผ๋ง ํด๋น ๋๋ ์ฐ์ฐ์ด ์คํ ๋ฉ๋๋ค.
์ด๊ฒ, '์
๊ณ'์์๋ ๋๋ฆ ํฐ ์ด์์์ต๋๋ค.
'์ง์ฐ์คํ'์ด๋ผ๊ณ ํ๋ ๋ฌธ์ ์
๋๋ค.
์์ญ๊ณ์ ๊ณ์ธต์ ์์์ฌ๋ฆฐ ์ ๊ฒฝ๋ง์ ์คํํ ๋,
tensorflow๋ ์ด๋ฌํ computational graph๋ฅผ ์ด๊ธฐ์ ๊ตฌ์ฑํ๋๋ผ
์คํ์๋๊ฐ ์์ฒญ ๋๋ฆฌ๋ ํ์์ด ์์์ต๋๋ค.
๋ฅ๋ฌ๋ ์์ง๋์ด์ ๋ถ๋ง์ด ๊ทน์ ๋ฌํ์์์ฃ .
์ค์์ ๋ฅ๋ฌ๋์๋ ์ฌ๋ฌ ๊ณ๋ณด(?)๊ฐ ์์ต๋๋ค.
๊ตฌ๊ธ์ ํ
์ํ๋ก ํ, ํ๋์์ ์๋ ์ ์ผ๋ผ์ค ํ, ๊ทธ๋ฆฌ๊ณ ํ์ด์ค๋ถ์ ํ์ดํ ์น ํ...
์ด์ธ์๋ ์ํ์น์ MXNET๋ถํฐ MS์ CNTK๋ฑ ....
์๋ง์ ํ๊ฐ ์ค์์ ์กด์ฌ ํ๊ณ ์์ต๋๋ค.
์ด์ค ์ฃผ๋ฅ๋ ์๋ฌด๋๋ ํ
์ํ๋ก, ์ผ๋ผ์ค, ํ์ดํ ์น๊ฐ ๊ฐ์ฅ ๋ง์ ๋ฌด๋ฆผ์ ์ธ๋ ฅ์ ์ฐจ์ง ํ๊ณ ์์ต๋๋ค.
ํ
์ํ๋ก >>>>>>>>>>์ผ๋ผ์ค>>>>>>ํ์ดํ ์น >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>์ก๋ค๊ตฌ๋ฆฌ(์ก๋ค๊ตฌ๋ฆฌํ์๊ฒ ์ฃ์กํฉ๋๋ค...)
๋๋ต ๊ฐ์ธ์ ์ผ๋ก๋ ์ด๋ฐ ๋๋์ด์ง ์์๊น ํ๋ ๊ฐ์ธ์ ์ธ ์๊ฐ์
๋๋ค.
ํ
์ํ๋ก๋....
์๋ฌด๋๋ ๋ฅ๋ฌ๋ ํ๋ ์์ํฌ์ ์ด๊ธฐ ์ฃผ๋ฅ ์ด๋ค๋ณด๋...
๊ทธ ๋น๊ธ์ ์๋ฌด๋๋ ํ์ ๋ ๋ง๊ณ , ๋น๊ธ์ ์ตํ๊ธฐ์๋ ๊ธฐ์กด ํ๋ก๊ทธ๋๋ฐ์ ํจ๋ฌ๋ค์๊ณผ ๋ง์ด ๋ฌ๋ผ์
์ตํ๊ธฐ์ ๋ง์ ์๊ฐ๊ณผ ๋ด๊ณต์ด ํ์ํ์ต๋๋ค.
์ด์ ๋ถ๋ง์ ํ์ ํ๋์์ ์๋ ๋ ๋ถํ๋ฅผ ๊ฒฐ์ ํ์ฃ . ๋ฐ๋ก ์ผ๋ผ์ค ํ ์
๋๋ค.
์ฒ์ ๋ฅ๋ฌ๋์ ์
๋ฌธํ๊ฑฐ๋ ๊ธฐ์กด ๋น๊ธ์ ์ตํ๋ค ์ฃผํ์
๋ง์ ๊ฑธ๋ฆฐ ์ด๋ค๋ ์ฝ๊ฒ ์ตํ ์ ์๋,
์์ฃผ ์ฌ์ด ๋น๊ธ์ ์ฐฝ์ํฉ๋๋ค.
๋ค๋ง ์ผ๋ผ์ค๋ ๋ด๋ถ์ ์ผ๋ก๋ ๊ธฐ์กด์ ํ
์ํ๋ก, ์จ์๋
ธ, CNTK๋ฑ์ ๋น๊ธฐ๋ฅผ ๊ทธ๋๋ก ์ด์ฉํฉ๋๋ค๋ง,
์ตํ๋ ์ฌ๋์ ์ด๋ฐ๊ฑธ ์ ํ์๊ฐ ์๋ ์ ๋ฐํ ๋น๊ธ์ด์์ต๋๋ค.
ํ
์ํ๋ก์๋ ๋ณต์ก ๋ค์ํ๊ณ , ์
๋ ฅ ๋ฐ์ดํฐ์ ์ฐจ์์ ๋ง์ถฐ์ฃผ์ด์ผ ํ๋ ๋ฑ
๊ท์ฐฎ๊ณ ์ด๋ ค์ด ์ ์ฐจ๊ฐ ์์์ง๋ง,
์ผ๋ผ์ค๋ ๊ทธ๋ฅ ํฑํฑ ์ ๊ฒฝ๋ง์ ์์๋๊ธฐ๋ง ํ๋ฉด ์๋์ผ๋ก ์์์ array์ ์ฐจ์์ ๋ง์ถฐ์ฃผ๋
์ ๋ฐํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ผ๋ผ์ค๋ ๋์ค์ ๋ง์ ์ ํ์ ์ธ ์ธ๊ธฐ๋ฅผ ๋์๊ณ , ํ์ฌ๋ ๋๋ต ์ค์์์ ๋๋ฒ์งธ์ ๋ ๋๋
์ฃผ๋ฅ๋ก ๊ธ ์์น ํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ!!!
ํ
์ํ๋กํ์ ์ฅ๋ก๊ฐ ์ผ๋ผ์ค์ ๋น๊ธ์ ์์ฉํ๊ธฐ๋ก ํ ๊ฒ์
๋๋ค. ๋ฐ๋ก, tensorflow 2.0์์ ๋ง์ด์ฃ .
์ด์ , ํ
์ํ๋ก์ ํ๋ ๊ธฐ์กด์ ์ตํ๊ธฐ ํ๋ค๊ณ ์ฃผํ์
๋ง์ ๋น ์ง๊ธฐ ์ฌ์ด ๋น๊ธ ๋์ ์,
ํ์ค์ผ๋ก Keras๋ผ๋ high level API๋ฅผ ๊ทธ๋๋ก tensorflow์์ ์ธ์ ์๊ฒ ๋ ๊ฒ์
๋๋ค.
์๋ ์์๋ฅผ ํ๋ฒ ๋ณด์์ฃ .
๋จผ์ Tensorflow ์์ค ์
๋๋ค.
ํ..๋ณด๊ธฐ๋ง ํด๋ ์ฃผํ์
๋ง์ ๊ฑธ๋ฆด๊ฒ ๊ฐ์ ๋ณต์กํจ์ด ์์ฃ .
์๋๋ ์ผ๋ผ์ค ์์ค ์
๋๋ค.
๋ญ๊ฐ ๋๋ฆ ๊น๋ํด ๋ณด์
๋๋ค.
์ด๋ฌํ ์ ๊ทผ ์ฉ์ด์ฑ๊ณผ ๋น ๋ฅด๊ฒ prototypingํ ์ ์๋ ๊ฐ์ ๋๋ฌธ์,
๊ธ๋ฒ Tensorflow 2.0์์๋ Keras๋ฅผ ํ์ค API๋ก ํ์ ํ ๊ฑฐ์ฃ .
๊ธฐ์กด์ Kerasํ๋ค์๊ฒ...
๋น๊ธ์ ์ ์ตํ๊ณ ์๋๋ฐ ํญ์ ์ด๋๊ฐ๋ ๋น์ฃผ๋ฅ๋ผ๋ ํธ๋์บก์ ๋ง์์์ ์๊ณ ์ด๊ณ ์๋ค๊ฐ
ํ ์๊ฐ์ ์ฃผ๋ฅ๋ก ํธ์
์ด ๋์ด๋ฒ๋ฆฐ ์ํฉ์
๋๋ค.
์ด์ ์ฃผ๋ง์ ๊ฐ๋ ๋น์ฃผ๋ฅ๋ผ๋ ๋๋ฆผ์ ๋ฐ์ง ์์ฃ .
๊ธฐ์กด์ Keras ์์ค์ฝ๋์ tf๋ง ๋ถ์ด๋ฉด ๋๋ถ๋ถ ์ ๋์๊ฐ๋๋ค.
์๋ฅผ ๋ค์๋ฉด,
import keras.layers.Sequential
์ด๋ฌํ ์์ค๋ฅผ,
import tf.keras.layers.Sequential
์ด๋ ๊ฒ๋ง ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ถ๋ถ ์ ๋์๊ฐ๋๋ค.
์ ๊น. ์ฌ๊ธฐ์...
์์ ๊ธ๋ง ๋ณด๋ฉด keras๊ฐ ๋ณ๋์ ํ ์ธ๋ฏ ๋ณด์
๋๋ค.
keras๋ ๋จ๋
์ผ๋ก ๋์๊ฐ๋ api๊ฐ ์๋ ์๋์์ต๋๋ค.
keras ์ฐฝ์ ์ด๊ธฐ๋ถํฐ, backend๋ก๋ tensorflow๋, ์ง๊ธ์ ๋ฉธ๋ฌธํ ๋์ด๊ฐ๋ theano, cntk ๋ฑ์ ์ฌ์ฉํ๋
api์์ต๋๋ค.
๋ฌด์จ๋ง์ธ๊ณ ํ๋, ์ด์ ํธ์์ ์๊ธฐํ computational graph, tensor ์ฐ์ฐ, session๋ฑ์
์ ์์ค ์์
๋ค์ wrappingํด์, ์ข๋ ์ฐ์ํด๋ณด์ด๋ ์์
์ผ๋ก ์ ํฌ์ฅํ๋ค๋ ๋ง ์
๋๋ค.
keras์์ ์ฐ์ํ๊ฒ model.fit ํ์ง๋ง,
์ค์ ๋ก๋ ๋ด๋ถ์ ์ผ๋ก๋ tensorflow์์ session์ ์์ฑํ๊ณ , global variable๋ค์ ์ด๊ธฐํ ํ๊ณ , computational graph๋ฅผ
compileํ๊ณ , session์ ์คํํ๋ ๋ฑ์ ์ ์์ค ์์
์์ ํ๋ค๋ ๋ง ์
๋๋ค.
์ข๋ deepํด์ง๋ deep learning์ด๋, ๊ฐ๋์ ์ด๋ฌํ ์ ์์ค ์์
์์
์ง์ ์ ์ดํด์ผ ํ ๋๊ฐ ์์ง๋ง, ํ์์๋ ์ฐ์ํ๊ฒ model.fitํ๋ keras๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์..์ฐ๋ค๋ณด๋...
์ค๋ฉ๋ ์์
์๊ฐ์ ๋ชฐ๋๋ณด๋ ์์
๋ฌธ์ด ์๊ฐ์ด๋์
๋ฌดํ์ค๋ฝ๊ฒ ์ฐ๋ค๋ณด๋ ๊ธ์ด ์กฐ์กํด์ก๋ค์.
์ด๋ฒ์๊ฐ์๋...์ง์ง๋ก Tensorflow 2.0์ ๋ํด์ ๋ฐ๋์ ์ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
1๋ฒ. ์ฐ์ !!!
์ก์ค๋ฐ API๋ค์ ์ฃ๋ค ์ ๋ฆฌํ์ต๋๋ค.
๊ธฐ์กด 1.x ๋ฒ์ ์์๋ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด์ ๋ค์ํ ๊ตฌํ ๋ฐฉ๋ฒ์ด ์กด์ฌํ์์ผ๋,
2.0์๋ ๊ตฌํํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ ํ๋๋ง์ ๋๋๊ณ ์ธ๊ทธ๋ฆฌ ์ ๋ฆฌํ์ต๋๋ค.
์
๋ฌธํ๋ ์ฌ๋์ด๋, ๊ธฐ์กด์ ๊ตฌํํ๋ ๊ฐ๋ฐ์๋ ๋ค๋ฅธ ๊ตฌํ์์ค๋ฅผ ๋ณด๊ณ ํผ๋์ด ์ฌ ์ผ์ด
๋ง์ด ์ ์ด์ก์ต๋๋ค.
๋ค๋ง...๊ธฐ์กด ์ฌ์ฉ์๋ฅผ ์ํด ํธํ์ฑ์ด ํ์ํ ๋ถ๋ถ์ ๋จ๊ฒจ๋์ต๋๋ค.
tf.compat.v1 ํจํค์ง ์๋, ๊ธฐ์กด์ ์ฐ๋ ํจํค์ง๋ค์ด ๋จ์ ์์ต๋๋ค.
2๋ฒ. Eager Execution ๋ชจ๋ ๋์
1ํธ์์ ์ ๊น ์๊ฐ๋๋ ธ๋ค์ํผ, tensorflow ๊ตฌ๋ฒ์ ์์๋ ๋ญ๊ฐ๋ฅผ ์คํํ๊ฑฐ๋ ํ๋ ค๋ฉด
๋จผ์ computational graph๋ฅผ ์์ฑํ๊ณ , ์ด๋ฅผ session์ ์์ฑํด์ผ๋ง ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ์ ์๋ค๊ณ
์ค๋ช
๋๋ฆฐ ๋ฐ ์์ต๋๋ค.
tesorflow 1.x ์์๋ ๋ง์
์ ์๋์ ๊ฐ์ด session์ ์คํํด์ผ๋ง ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์์์ต๋๋ค.
๋ญ๊ฐ, ์ธ๊ฐ์ ์์ ํ๋ฆํ๊ณ ๋ ์ ์๋ง์ฃ ?
tensorflow 2.0์์๋ ์ ์ธ ์ฆ์ ์คํ๋๋ eager execution๋ชจ๋๊ฐ default๋ก ๋์์ต๋๋ค.
์๋ ๊ฒ ๊ฐ๋จํ๊ฒ ํ์์ ํ์ด์ฌ ์ฐ๋ฏ์ด ์ฐ๋ฉด ๋์ฃ ...
์ด๋ ๊ฒ ๋ฐ๋๋ฉด์...
๊ธฐ์กด์ tf.Session()๋... ๊ณจ๋ฐฉ(tf.compat.v1)์ผ๋ก ์ซ๊ฒจ๋ฌ์ต๋๋ค.
๊ธฐ์กด ๋ฐฉ๋ฒ๋๋ก session์ ์ฐ์๊ณ ์ถ์ผ์ ๋ถ๋ค์ ์ ๊ธฐ ๊ณจ๋ฐฉ์ ์ฐพ์ ๊ฐ์๋ฉด
tf.Session()์ด ๊ณจ๋ฐฉ์ ์งํค๊ณ ์์ต๋๋ค.
3๋ฒ. AutoGraph
๊ธฐ์กด์ session๊ธฐ๋ฐ์ function์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋๋ฐ,
function ์์ tf.function ๋ฐ์ฝ๋ ์ดํฐ๋ง ๋ถ์ด๋ฉด, ์๋์ผ๋ก computatioal graph๋ฅผ
์์ฑํด ์ฃผ์ด, ๋ฐ๋ก ์ฌ์ฉ ํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ฌ๊ธฐ์ autograph๊ธฐ๋ฅ์ด ๋์ค๋๋ฐ,
Autograph๋ funciton ์์ @tf.function์ด๋ decorator๋ฅผ ๋ถ์์ผ๋ก์จ
์์ฑ์ด ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋จ์ํ ์ด function๋ฟ๋ง ์๋๋ผ,
function ๋ด๋ถ์์ callํ๋ ๋ค๋ฅธ function๋ ์๋์ผ๋ก computaional graph๋ฅผ ์์ฑํด ์ค๋๋ค.
deep_next(x)๋ function ์์ @tf.function์ด๋ decorator๊ฐ ์์ฃ ?
์ decorator ๋๋ถ์ deep_net์ ๋น์ฐํ computational graph๊ฐ ์๋์ผ๋ก ์์ฑ์ด ๋๊ณ ,
์ deep_net๋ด๋ถ์์ ํธ์ถํ๋ linear_layer() ํจ์๊น์ง๋ ์๋์ผ๋ก computational graph๋ฅผ ์์ฑํด ์ค๋๋ค.
(์ ๋...์ด๋ฐ ๋ฐฉ์์ ์์จ๋ด์ ์ ๊ฒ ์ ํธํ์ง ์ฌ์ค ๊ฐ์ด ์ ์์ต๋๋ค...-_-;;;)
4๋ฒ. High Level API
์๋ ๋ ์์ค๋ฅผ ๋ณด๊ณ ๋ค๋ฅธ์ ์ ์ฐพ์๋ณด์ธ์.
์ผ์ชฝ์ tesorflow 1.x์ ์์ค์ด๊ณ , ์ค๋ฅธ์ชฝ์ tensorflow 2.0์ ์์ค ์
๋๋ค.
์ ๋ต์...
์ผ์ชฝ์ tensorflow๊ฐ high level api๋ฅผ ๋์
ํ๊ฑด 17๋
๋ง ๋ถํฐ์ฌ์
๋ ์์ค๋ ๊ฐ์ต๋๋ค๋ง,
2.0์ด ๋์ค๊ธฐ ์ ์์ค๋ ๋ด๋ถ์ ์ผ๋ก๋ tf.Session()์ ์ด์ฉํ์ฌ ์ํ์ด ๋๊ณ ,
์ค๋ฅธ์ชฝ์ tensorflow 2.0์์ค๋ ๋ด๋ถ์ ์ผ๋ก๋ eager execution์ผ๋ก ์คํ์ด ๋ฉ๋๋ค.
(tensorflow 2.0 dev summit 2019์์ ๋ฐํํ์ฌ ์ฒญ์ค๋ค์ ์์์ ์์๋ธ ๋ถ๋ถ ์
๋๋ค.)
๊ทธ๋ฆฌ๊ณ , tensorflow๊ฐ 2.0์ด ๋๋ฉด์ ๋จธ์ /๋ฅ๋ฌ๋ workflow์๋ ๋ณํ์ ๋ฐ๋์ ์ผ์ผ์ผฐ์ต๋๋ค.
1. tf.data๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ์
์ค๋น
2. tf.keras๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋ธ ์์ฑ, ํ๋ จ, ๊ฒ์ฆ
3. eager execution์ ์ด์ฉํ์ฌ ๋ชจ๋ธ ๋๋ฒ๊น
4. ๋ถ์ฐ traning์ ์ด์ฉํ์ฌ distribution strategy ์ฌ์ฉ
5. savedmodel๋ก ๋ชจ๋ธ ๋ฐฐํฌ
์๋ ๊ทธ๋ฆผ์ ๋ณด์๋ฉด ์ข ๋ ์ฝ๊ฒ ์ดํด๊ฐ ๋์ค ๊ฒ๋๋ค.
์์ฑ๋ ๋ชจ๋ธ์ Distribution Strategy์ ์ํด์,
๋ชจ๋ธ์ ๋ฐ๊พธ์ง ์๊ณ , CPU์์ ์คํํ๊ฑฐ๋ GPU ๋๋ TPU์์ ์คํํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ถ์ฐ์ ์ฑ
์ ์ํด ์์ฑ๋ ๋ชจ๋ธ์
ํด๋ผ์ฐ๋์ ์จํ๋ ๋ฏธ์ค๋ก ์ ๊ณต๋๋ tensorflow serving์ผ๋ก ๋ฐฐํฌ๋๊ฑฐ๋,
๋ชจ๋ฐ์ผ device๋ฅผ ์ํ tensorflow์ธ tensorflow lite์์ ์ฌ์ฉํ๊ฑฐ๋,
๋ธ๋ผ์ฐ์ ๋๋ node.js์์ ์ฌ์ฉํ๊ธฐ ์ํ tesorflow.js,
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ธ ๊ฐ๋ฐ์ธ์ด ๊ธฐ๋ฐ์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ธ๋ก ๋ฐฐํฌ๋ฅผ ํ ์ ์์ต๋๋ค.
์ด์์ผ๋ก ์๋ก๋์จ tensorflow 2.0์ ๋ํ ์๊ฐ๋ฅผ ๋ง์น๊ฒ ์ต๋๋ค.