Skip to content

Caffe Tutorial : 5.Layer Catalogue (Kor) [5.1.2]

HanJiHoon edited this page Jan 24, 2017 · 1 revision

데이터베이스(Database)

  • 계층 타입: Data
  • Doxygen 자료
  • 헤더: ./include/caffe/layers/data_layer.hpp
  • CPU 구현: ./src/caffe/layers/data_layer.cpp

파라미터(Parameters)

  • 파라미터 (DataParameter data_param)
  • ./src/caffe/proto/caffe.proto)에서는:
message DataParameter {
  enum DB {
    LEVELDB = 0;
    LMDB = 1;
  }
  // 데이터 소스를 명시한다.
  optional string source = 1;
  // 일호ㅚ 처리 사이즈를 명시한다.
  optional uint32 batch_size = 4;
  // rand_skip 변수는 같은 지점에서 시작하는 모든 비동기 sgd를 피하기 위한 
  // 약간의 데이터 지점을 생략하려는 데이터 계층을 위한것이다.
  // 생략지점은 rand_skip * rand(0,1)로 설정 되어진다. rand_skip는 데이터베이스 내의 
  // 중요한 숫자(keys number)보다 더 커서는 않된다는 점을 알아야한다.
  // 중요도가 떨어져 더이상 사용하지 않는다. 각각의 해결사들은 데이터 베이스의 다양한 subset에 접근한다.
  optional uint32 rand_skip = 7 [default = 0];
  optional DB backend = 8 [default = LEVELDB];
  // 중요도가 떨어져 더이상 사용하지 않는다. TransformationParameter를 보아라. 
  // 데이터 전처리에 있어, 만약 입력한다면 우리는 간단한 데이터 평균 뺄셈 및 스케일링을 할 수 있다. F
  // 평균 뺄셈은 항상 스케일링 전에 수행되어야만 한다는 것을 알아라.
  optional float scale = 2 [default = 1];
  optional string mean_file = 3;
  // 중요도가 떨어져 더이상 사용하지 않는다. TransformationParameter를 보아라.
  // 임의로 이미지를 크롭핑 하기를 원하는지 아닌지를 명시하라
  optional uint32 crop_size = 5 [default = 0];
  // 중요도가 떨어져 더이상 사용하지 않는다. TransformationParameter를 보아라.
  // 우리가 임의로 데이터를 미러링하기를 원하는지 아닌지를 명시하라.
  optional bool mirror = 6 [default = false];
  // 인코딩된 이미지가 세개의 색 채널을 가지도록 시킨다.
  optional bool force_encoded_color = 9 [default = false];
  // Prefetch queue (Increase if data feeding bandwidth varies, within the
  // limit of device memory for GPU training)
  optional uint32 prefetch = 10 [default = 4];
}
  • 요구사항
  • source: 데이터 베이스를 담고있는 디렉토리의 이름
  • batch_size: 한번에 처리할 입력의 갯수
  • 추가 옵션
  • rand_skip: 시작할 때 입력의 다음의 갯수를 스킵한다. ; 동시에 존재하지 않는 SGD (asynchronous sgd)에 대하여 유용함
  • backend [default LEVELDB]: LEVELDB 와 LMDB 중 어느 것을 사용할지 고른다.