Skip to content

Caffe Tutorial : 7.Data (Kor)

HanJiHoon edited this page Jan 24, 2017 · 4 revisions

๋ฐ์ดํ„ฐ : ๋“ค์–ด์˜ค๋Š” ๊ฒƒ๊ณผ ๋‚˜๊ฐ€๋Š” ๊ฒƒ๋“ค (Data: Ins and Outs)

๋ฐ์ดํ„ฐ๋Š” Blob๋กœ์จ ์นดํŽ˜๋ฅผ ํ†ตํ•ด ํ˜๋Ÿฌ๊ฐ„๋‹ค. ๋ฐ์ดํ„ฐ ๊ณ„์ธต์€ Blob๋ถ€ํ„ฐ ๋‹ค๋ฅธ ํ˜•ํƒœ๊นŒ์ง€๋กœ ๊ทธ๋ฆฌ๊ณ  ์ „ํ™˜ํ•จ์— ์˜ํ•ด ์ž…๋ ฅ์„ ์ฝ๊ณ  ์ถœ๋ ฅ์„ ์ €์žฅํ•œ๋‹ค. ํ”ผ์ณ ์Šค์ผ€์ผ๋ง(feature-scaling)๊ณผ ํ‰๊ท -๋บ„์…ˆ(mean-subtraction)๊ฐ™์€ ์ผ๋ฐ˜ ๋ณ€ํ™˜๋“ค์€ ๋ฐ์ดํ„ฐ ๊ณ„์ธต ๊ตฌ์„ฑ์— ์˜ํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ƒˆ๋กœ์šด ์ž…๋ ฅ ํ˜•ํƒœ๋“ค์€ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๊ณ„์ธต์„ ๊ฐœ๋ฐœํ•จ์—์˜ํ•ด ์ง€์› ๋ฐ›๋Š”๋ฐ ์ด๋Š” ์นดํŽ˜ ๊ณ„์ธต ์นดํƒˆ๋กœ๊ทธ์˜ ๋ชจ๋“ˆ์„ฑ์— ์˜ํ•ด ๋”ฐ๋ผ๊ฐ€๋Š” ๋ง์˜ ์ผ๋ถ€์ด๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ๊ณ„์ธต ์ •์˜๋Š” MNIST์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

layer {
  name: "mnist"
  # ๋ฐ์ดํ„ฐ ๊ณ„์ธต์€ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์œ„ํ•ด leveldb ๋‚˜ lmdb ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ €์žฅ์†Œ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.
  type: "Data"
  # ์ฒซ ๋ฒˆ์งธ top์€ ๋ฐ์ดํ„ฐ ๊ทธ ์ž์ฒด์ด๋‹ค : ์ด๋ฆ„์€ ์˜ค์ง convention์ด๋‹ค.
  top: "data"
  # ๋‘๋ฒˆ์งธ top์€ ์‹ค์ธก ์ž๋ฃŒ์ด๋‹ค : ์ด๋ฆ„์€ ์˜ค์ง convention์ด๋‹ค.
  top: "label"
  # ๋ฐ์ดํ„ฐ ๊ณ„์ธต ๊ตฌ์„ฑ
  data_param {
    # DB๊ฒฝ๋กœ
    source: "examples/mnist/mnist_train_lmdb"
    # DB ํƒ€์ž… : LEVELDB ๋‚˜ LMDB (LMDB๋Š” ๊ณต์กดํ•˜๋Š” ์ฝ๊ธฐ, ๋™์‹œ ์ฝ๊ธฐ๋ฅผ ์ง€์›ํ•ด์ค€๋‹ค.)
    backend: LMDB
    # ์ง‘๋‹จ ํ”„๋กœ์„ธ์‹ฑ์€ ํšจ์œจ์„ฑ์„ ๊ฐœ์„ ํ•œ๋‹ค.
    batch_size: 64
  }
  # ์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜
  transform_param {
    # ํ”ผ์ณ ์Šค์ผ€์ผ๋ง ๊ณ„์ˆ˜ : ์ด๊ฒƒ์€ [0, 255] MNIST data์„ [0, 1]์— ๋งตํ•‘ํ•œ๋‹ค.
    scale: 0.00390625
  }
}

Tops and Bottoms : ๋ฐ์ดํ„ฐ ๊ณ„์ธต์€ ๋ชจ๋ธ์— ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ์— top blob๋ฅผ ๋งŒ๋“ ๋‹ค. ์ด๊ฒƒ์€ ์–ด๋– ํ•œ ์ž…๋ ฅ๋„ ์ทจํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— bottom blob๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค.

Data and Label : ๋ฐ์ดํ„ฐ ๊ณ„์ธต์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ผ๋Š” ์ด๋ฆ„์˜ ์ตœ์†Œ ํ•˜๋‚˜์˜ top์„ ๊ฐ€์ง„๋‹ค. ์‹ค์ธก ์ž๋ฃŒ์— ๋Œ€ํ•˜์—ฌ ๋‘๋ฒˆ์งธ top๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœlabel์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ •์˜๋  ์ˆ˜ ์ด์‹ฟ. ์–‘ ์ชฝ ๋ชจ๋‘ top๋“ค์€ ๊ฐ„๋‹จํžˆ blob๋ฅผ ์ƒ์‚ฐํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์ด๋ฆ„์— ๋Œ€ํ•˜์—ฌ ํƒ€๊ณ ๋‚œ ํŠน๋ณ„ํ•  ๊ฒƒ์€ ์—†๋‹ค. (data, label)ใ…† ์Œ์€ ๋ถ„๋ฅ˜ํ™” ๋ชจ๋ธ (classification models)์— ๋Œ€ํ•œ ํŽธ์˜์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Transformations : ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ๊ณ„์ธต ์ •์˜์•ˆ์—์„œ ๋ณ€ํ™˜ ๋ฉ”์„ธ์ง€์— ์˜ํ•ด ํŒŒ๋ผ๋ฏธํ„ฐํ™” ๋˜์–ด์ง„๋‹ค.

layer {
  name: "data"
  type: "Data"
  [...]
  transform_param {
    scale: 0.1
    mean_file_size: mean.binaryproto
    # ๋žœ๋ค ํฌ๋กญํ•‘(ํฌ๋กญํ•‘ : ์‚ฌ์ง„์ด๋‚˜ ๊ทธ๋ฆผ์„ ํŽธ์ง‘ํ•  ๋•Œ ์›ํ•˜๋Š” ํฌ๊ธฐ์— ๋งž๋„๋ก ๊ทธ ์‚ฌ์ด์ฆˆ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ.)์ด๋‚˜ ํŠน์ •ํ•œ ์ขŒ์šฐ๋Œ€์นญ์—์„œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•˜์—ฌ
    # ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ€๋กœ์จ ๋˜์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.
    mirror: 1  # 1 = on, 0 = off
    # crop a `crop_size` x `crop_size` patch:
    # - ํ•™์Šต ์ค‘์— ๋žœ๋ค์ ์œผ๋กœ
    # - ํ…Œ์ŠคํŒ… ์ค‘์—์„œ ์ค‘์—์„œ ๋ถ€ํ„ฐ
    crop_size: 227
  }
}

Prefetching : ์ฒ˜๋ฆฌ๋Ÿ‰์— ๋Œ€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์€ ๋ฐ์ดํ„ฐ์˜ ๋‹ค์Œ ์ผํšŒ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋ฐ๋ ค์˜ค๊ณ  ๋ง์ด ํ˜„์žฌ ์ผํšŒ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์—ฐ์‚ฐํ•˜๋Š”๋™์•ˆ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ค€๋น„๋ฅผํ•ด๋‘”๋‹ค.

Multiple Inputs : ๋ง์€ ์–ด๋–ค ์ˆ˜ ๊ทธ๋ฆฌ๊ณ  ํ˜•ํƒœ์˜ ๋‹ค์ค‘ ์ž…๋ ฅ์„ ์ง€๋‹Œ๋‹ค. ๊ฐ ํŠน๋ณ„ํ•œ ์ด๋ฆ„๊ณผ top์„ ์คŒ์œผ๋กœ์จ ๋งŽ์€ ๋ฐ์ดํ„ฐ ๊ณ„์ธต๋“ค์„ ์ •์˜ํ•˜๋ผ. ๋‹ค์ค‘ ์ž…๋ ฅ๋“ค์€ ์‚ฌ์†Œํ•˜์ง€ ์•Š์€ ์‹ค์ธก ์ž๋ฃŒ์— ๋Œ€ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹๋‹ค. : ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ๋‹ค๋ฅธ ๊ณ„์ธต์€ ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‹ค์ธก ์ž๋ฃŒ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. ์ด๋Ÿฌํ•œ ์ค€๋น„์—์„œ ์–‘์ชฝ ๋ฐ์ดํ„ฐ์™€ ๋ผ๋ฒจ์€ 4D ๋ฐฐ์—ด๋กœ ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿด์ง€๋ผ๋„ ๋‹ค์ค‘ ์ž…๋ ฅ์˜ ์‘์šฉ์€ ์—ฐ์† ๋ชจ๋ธ๊ณผ ๋‹ค์ค‘๋ชจ๋ธ์—์„œ ๋ฐœ๊ฒฌ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” ๋‹น์‹ ์˜ ์ž์‹ ๋งŒ์˜ ๋ฐ์ดํ„ฐ ์ค€๋น„ ์ˆœ์„œ๋‚˜ ํŠน๋ณ„ํ•œ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ์„์ง€ ๋ชจ๋ฅธ๋‹ค.

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๊ตฌ์„ฑ๋ฐฉ์‹, ์ผ๋ฐ˜๋ก , ์•„๋‹ˆ๋ฉด ๋„์›€๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค!

๊ตฌ์„ฑ๋ฐฉ์‹ (Formats)

๊ฐ Data์˜ ํƒ€์ž…์— ๋Œ€ํ•œ Caffe ์ดํ•ด๋ฅผ ๋” ๋‹ค๊ฐ€๊ฐ€๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๊ณ„์ธต ์˜ ๊ณ„์ธต ์นดํƒˆ๋กœ๊ทธ์„ ๋ณด๋ผ.

์ž…๋ ฅ ๋ฐฐ์น˜ (Deployment Input)

์ƒํ™ฉ์— ๋‹ค๋ฅธ ์—ฐ์‚ฐ์„ ์œ„ํ•ด ๋ง ๋ฐฐ์น˜๋Š” ์ž…๋ ฅ ํ•„๋“œ์— ์˜ํ•ด ์ด๋“ค์˜ ์ž…๋ ฅ์„ ์ •์˜ํ•œ๋‹ค. : ์ด๋Ÿฌํ•œ ๋ง๋“ค์€ ๊ทธ๋Ÿฌ๊ณ ๋‚˜์„œ ์˜จ๋ผ์ธ์ด๋‚˜ ์ƒํ˜ธ์ ์ธ ์—ฐ์‚ฐ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ์˜ ์ง์ ‘ ๋“ฑ๋ก์„ ๋ฐ›์•„๋“ค์ธ๋‹ค

Clone this wiki locally