Tensorflow: ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ bt tf.layers.dense ๋ฐ tf.layers.Dense

์— ๋งŒ๋“  2018๋…„ 09์›” 03์ผ  ยท  1๋…ผํ‰  ยท  ์ถœ์ฒ˜: tensorflow/tensorflow

์–˜๋“ค ์•„,

์ œ๋ชฉ ๊ทธ๋Œ€๋กœ. ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์•Œ์•„๋‚ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ง์€, ์‹ ๊ฒฝ๋ง์„ ๊ตฌ์„ฑํ•  ๋•Œ bdense ๋ฐ Dense ๋ ˆ์ด์–ด๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋„์›€ ๋ฐ ์ง€์›์„ ๋ฐ›์œผ๋ ค๋ฉด ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค.

https://stackoverflow.com/questions/tagged/tensorflow

GitHub ๋ฌธ์ œ๋ฅผ ์—ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •์ฑ…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ฒ„๊ทธ, ๊ธฐ๋Šฅ ์š”์ฒญ ๋˜๋Š” ๋ฌธ์„œ์˜ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ž‘์€ ๋ฌธ์„œ ์ˆ˜์ •์˜ ๊ฒฝ์šฐ ๋Œ€์‹  PR์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค).
  2. ์•„๋ž˜ ์–‘์‹์„ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. TensorBoard ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ์—ฌ๊ธฐ ๋กœ ๊ฐ‘๋‹ˆ๋‹ค.

์ด ์ •์ฑ…์ด ์žˆ๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค . TensorFlow ๊ฐœ๋ฐœ์ž๋Š” ๋ฌธ์ œ์— ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€์™€ ๊ฐ™์ด ์ „์ฒด ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋„์›€์ด ๋˜๋Š” ์ž‘์—…์— ์ง‘์ค‘ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ง€์›์€ ๊ฐœ์ธ์—๊ฒŒ๋งŒ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. GitHub๋Š” ๋˜ํ•œ ๋ฌธ์ œ๊ฐ€ ์ œ๊ธฐ๋  ๋•Œ ์ˆ˜์ฒœ ๋ช…์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ๋ฆฌ๋””๋ ‰์…˜๋˜๋Š” ๋Œ€์‹  ํฅ๋ฏธ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.


์‹œ์Šคํ…œ ์ •๋ณด

  • ์‚ฌ์šฉ์ž ์ง€์ • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๊นŒ(TensorFlow์—์„œ ์ œ๊ณต๋˜๋Š” ์Šคํ†ก ์˜ˆ์ œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฐ˜๋Œ€) :
  • OS ํ”Œ๋žซํผ ๋ฐ ๋ฐฐํฌ(์˜ˆ: Linux Ubuntu 16.04) :
  • ๋ชจ๋ฐ”์ผ ์žฅ์น˜์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋ฐ”์ผ ์žฅ์น˜(์˜ˆ: iPhone 8, Pixel 2, Samsung Galaxy) :
  • (์†Œ์Šค ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ)์—์„œ ์„ค์น˜๋œ TensorFlow :
  • TensorFlow ๋ฒ„์ „(์•„๋ž˜ ๋ช…๋ น์–ด ์‚ฌ์šฉ) :
  • ํŒŒ์ด์ฌ ๋ฒ„์ „ :
  • Bazel ๋ฒ„์ „(์†Œ์Šค์—์„œ ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒฝ์šฐ) :
  • GCC/์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „(์†Œ์Šค์—์„œ ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒฝ์šฐ) :
  • CUDA/cuDNN ๋ฒ„์ „ :
  • GPU ๋ชจ๋ธ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ :
  • ์žฌํ˜„ํ•  ์ •ํ™•ํ•œ ๋ช…๋ น :

ํ™˜๊ฒฝ ์บก์ฒ˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ •๋ณด ์ค‘ ์ผ๋ถ€๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ TensorFlow ๋ฒ„์ „์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

python -c "ํ…์„œํ”Œ๋กœ๋ฅผ tf๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ; print(tf.GIT_VERSION, tf.VERSION)"

๋ฌธ์ œ ์„ค๋ช…

์—ฌ๊ธฐ์— ๋ฌธ์ œ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค. TensorFlow์˜ ๋ฒ„๊ทธ ๋˜๋Š” ๊ธฐ๋Šฅ ์š”์ฒญ์ธ ์ด์œ ๋ฅผ ์—ฌ๊ธฐ์— ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์†Œ์Šค ์ฝ”๋“œ/๋กœ๊ทธ

๋ฌธ์ œ ์ง„๋‹จ์— ๋„์›€์ด ๋˜๋Š” ๋ชจ๋“  ๋กœ๊ทธ ๋˜๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์—ญ์ถ”์ ์„ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ ์ „์ฒด ์—ญ์ถ”์ ์„ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. ๋Œ€์šฉ๋Ÿ‰ ๋กœ๊ทธ ๋ฐ ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

https://github.com/tensorflow/tensorflow/blob/9fa3d27c4bdd534eaff88ea2c4a7119e3174dbbf/tensorflow/python/layers/core.py#L32 -L33

tf.layers.Dense ๋Š” class Dense ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/tensorflow/tensorflow/blob/9fa3d27c4bdd534eaff88ea2c4a7119e3174dbbf/tensorflow/python/layers/core.py#L116 -L117
https://github.com/tensorflow/tensorflow/blob/9fa3d27c4bdd534eaff88ea2c4a7119e3174dbbf/tensorflow/python/layers/core.py#L174 -L188

tf.layers.dense ๋จผ์ € tf.layers.Dense ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“  ๋‹ค์Œ return layer.apply(inputs) ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ…์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


๋‹ค์Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  • tf.layers.Dropout ๋ฐ tf.layers.dropout
  • tf.layers.Flatten ๋ฐ tf.layers.flatten
  • tf.layers.AveragePooling1D ๋ฐ tf.layers.average_pooling1d
  • ๊ทธ๋ฆฌ๊ณ  ๋” ๋งŽ์€ ... (์ฝ”๋“œ ์ฐธ์กฐ)

>๋ชจ๋“  ๋Œ“๊ธ€

https://github.com/tensorflow/tensorflow/blob/9fa3d27c4bdd534eaff88ea2c4a7119e3174dbbf/tensorflow/python/layers/core.py#L32 -L33

tf.layers.Dense ๋Š” class Dense ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/tensorflow/tensorflow/blob/9fa3d27c4bdd534eaff88ea2c4a7119e3174dbbf/tensorflow/python/layers/core.py#L116 -L117
https://github.com/tensorflow/tensorflow/blob/9fa3d27c4bdd534eaff88ea2c4a7119e3174dbbf/tensorflow/python/layers/core.py#L174 -L188

tf.layers.dense ๋จผ์ € tf.layers.Dense ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“  ๋‹ค์Œ return layer.apply(inputs) ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ…์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


๋‹ค์Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  • tf.layers.Dropout ๋ฐ tf.layers.dropout
  • tf.layers.Flatten ๋ฐ tf.layers.flatten
  • tf.layers.AveragePooling1D ๋ฐ tf.layers.average_pooling1d
  • ๊ทธ๋ฆฌ๊ณ  ๋” ๋งŽ์€ ... (์ฝ”๋“œ ์ฐธ์กฐ)
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰