darknet-kr

:kr: 다크넷(darknet): C로 작성한 신경망 공개소스

View on GitHub

:kr: 다크넷(darknet): C로 작성한 신경망 공개소스 

출처: https://pjreddie.com/darknet

| 다크넷 | 설치 | 욜로 | 이미지넷분류 | 악몽 | 재사용신경망 | 다크고 | 꼬맹이망 | 분류기벼림 | 사용방법 |
| — | — | — | — | — | — | — | — | — | — |

7. 꼬맹이 다크넷(Tiny Darknet)

나는 많은 사람들이 스퀴즈넷(SqueezeNet)에 대해 이야기하는 것을 들었다.

스퀴즈넷(SqueezeNet)은 훌륭하다 하지만 이것은 단지 참여(parameter) 개수를 최적화한 것이다. 대부분 고품질 이지지가 10MB 또는 이상일 때 우리가 왜 신경써야 하나 만약 우리의 모형이 5MB 또는 50MB 라면? 만약 우리가 정말 빠른 작은 모형을 원한다면, :kr:다크넷 기준망(Darknet reference network)(영문)이 왜 안되는지 확인해보라? 이것은 28MB에 불과하다 하지만 더 중요한 것은, 이것은 단지 8억 부동소수점 연산을 한다. 원래 알렉스넷(Alexnet)은 23억이다. 다크넷은 2.9배 빠르다 그리고 작고 4% 더 정확하다.

그러면 스퀴즈넷(SqueezeNet)은 어떤가? 물론 가중값은 4.8MB에 불과하다 하지만 순방향 전달은 여전히 22억 연산이다. 알렉스넷(Alexnet)은 분류에서 훌륭하게 첫번째로 통과했다 하지만 오늘날 우리의 망은 뒤로 물러섰다 이것의 나쁜점은 너무 느리다!

그러나 어찌됐는, 사람들은 스퀴즈넷(SqueezeNet)에 대단한 관심이 있다 그래서 당신이 정말로 작은망을 고집하면, 이것을 사용하라:

1) 꼬맹이 다크넷(Tiny Darknet)

모형 Top-1 Top-5 연산(Ops) 크기
알렉스넷(AlexNet) 57.0 80.3 2.27 Bn 238 MB
다크넷 기준(Darknet Reference) 61.1 83.0 0.81 Bn 28 MB
스퀴즈넷(SqueezeNet) 57.5 80.3 2.17 Bn 4.8 MB
꼬맹이 다크넷(Tiny Darknet) 58.7 81.7 0.98 Bn 4.0 MB

여기에서 진정한 승자는 분명히 다크넷 기준망이다 하지만 만약 당신이 작은 모형을 원한다고 고집하면, 꼬맹이 다크넷을 사용하라. 아니면 당신 자신의것을 벼림하라, 이것은 쉽게 할수 있다!

여기에 다크넷에서 이것을 사용하는 방법이 있다(그리고 또한 다크넷을 설치하는 방법):

git clone https://github.com/pjreddie/darknet
cd darknet
make
wget https://pjreddie.com/media/files/tiny.weights
./darknet classify cfg/tiny.cfg tiny.weights data/dog.jpg

희망스럽게 다음과 같은 것을 볼수 있다:

data/dog.jpg: Predicted in 0.160994 seconds.
malamute: 0.167168
Eskimo dog: 0.065828
dogsled: 0.063020
standard schnauzer: 0.051153
Siberian husky: 0.037506

여기는 설정파일이 있다: tiny.cfg

모형은 단지 수많은 3x3 과 1x1 나선층이다:

layer     filters    size              input                output
    0 conv     16  3 x 3 / 1   224 x 224 x   3   ->   224 x 224 x  16
    1 max          2 x 2 / 2   224 x 224 x  16   ->   112 x 112 x  16
    2 conv     32  3 x 3 / 1   112 x 112 x  16   ->   112 x 112 x  32
    3 max          2 x 2 / 2   112 x 112 x  32   ->    56 x  56 x  32
    4 conv     16  1 x 1 / 1    56 x  56 x  32   ->    56 x  56 x  16
    5 conv    128  3 x 3 / 1    56 x  56 x  16   ->    56 x  56 x 128
    6 conv     16  1 x 1 / 1    56 x  56 x 128   ->    56 x  56 x  16
    7 conv    128  3 x 3 / 1    56 x  56 x  16   ->    56 x  56 x 128
    8 max          2 x 2 / 2    56 x  56 x 128   ->    28 x  28 x 128
    9 conv     32  1 x 1 / 1    28 x  28 x 128   ->    28 x  28 x  32
   10 conv    256  3 x 3 / 1    28 x  28 x  32   ->    28 x  28 x 256
   11 conv     32  1 x 1 / 1    28 x  28 x 256   ->    28 x  28 x  32
   12 conv    256  3 x 3 / 1    28 x  28 x  32   ->    28 x  28 x 256
   13 max          2 x 2 / 2    28 x  28 x 256   ->    14 x  14 x 256
   14 conv     64  1 x 1 / 1    14 x  14 x 256   ->    14 x  14 x  64
   15 conv    512  3 x 3 / 1    14 x  14 x  64   ->    14 x  14 x 512
   16 conv     64  1 x 1 / 1    14 x  14 x 512   ->    14 x  14 x  64
   17 conv    512  3 x 3 / 1    14 x  14 x  64   ->    14 x  14 x 512
   18 conv    128  1 x 1 / 1    14 x  14 x 512   ->    14 x  14 x 128
   19 conv   1000  1 x 1 / 1    14 x  14 x 128   ->    14 x  14 x1000
   20 avg                       14 x  14 x1000   ->  1000
   21 softmax                                        1000
   22 cost                                           1000