2016-07-07 2 views
0

prototxt 모델 설명과 caffemodel 조정 매개 변수 파일 (약 16MB 크기)로 얻은 Caffe 프로젝트가 있습니다. 정적 분석이나 런타임에서 모델에 얼마나 많은 뉴런과 가중치가 있는지 알아낼 수있는 쉬운 방법이 있습니까?Caffe 솔루션의 뉴런 및 가중치 수를 계산합니다.

prototxt 파일을 Netscope으로 시각화 할 수 있지만 24 개의 컨볼 루션 레이어와 7 개의 풀링 레이어가 있으므로 어디서부터 계산해야할지 모릅니다. 나는 또한 this Google Groups question을 보았지만, 내 문제에 어떻게 적용하는지 잘 모르겠습니다.

답변

2

예, caffemodel을 보지 않고도 prototxt 파일에서 가중치 매개 변수를 계산할 수 있습니다. 회선 레이어의 경우 필터의 수와 필터 크기를 확인할 수 있습니다. 예를 들어, 컨볼 루션 크기가 3x3이고 필터 수가 64 인 경우, 해당 레이어의 매개 변수 수는 576이됩니다. 완전히 연결된 레이어의 경우, 가중치 매개 변수의 수는 이전 레이어의 크기와 현재 레이어, 예. 이전 레이어의 출력 크기가 200이고 현재 레이어가 100 개의 숨겨진 유닛을 갖는 경우 200x100 이전 계층이 컨벌루션 계층 인 경우, 이전 계층의 크기는 입력 이미지의 크기에 따라 달라집니다. 완전히 연결된 레이어를 가진 네트워크는 고정 된 크기의 입력을 사용하므로 마지막 길쌈 레이어의 출력 크기는 입력 크기 및 기타 레이어 매개 변수 http://cs231n.github.io/convolutional-networks/을 기반으로 계산할 수 있습니다.

바이어스 매개 변수가있는 경우 거기에있는 필터의 수와 완전히 연결된 레이어의 수를 추가해야합니다. 풀링 레이어에는 가중치 매개 변수가 없으므로 무시할 수 있습니다. 마지막으로, float의 크기 인 4로 크기를 곱할 수 있습니다.