Caffe - 뚜렷 하고 효율 적 인 딥 러 닝 (Deep Learning) 프레임 워 크
Caffe 는 순수한 C + + / CUDA 구조 로 명령 행, Python, MATLAB 인 터 페 이 스 를 지원 합 니 다.CPU 와 GPU 에서 바로 틈새 없 이 전환 가능:
Caffe::set_mode(Caffe::GPU);
카페 의 강점
1. 시작 속도: 모델 과 해당 하 는 최 적 화 는 모두 코드 형식 이 아니 라 텍스트 형식 으로 제 시 됩 니 다.
Caffe 는 모델 의 정의, 최적화 설정 과 예비 훈련 의 가중치 를 제시 하여 즉시 시작 할 수 있 습 니 다.
2. 속도 가 빠르다: 최고의 모델 과 대량의 데 이 터 를 실행 할 수 있다.
Caffe 와 cuDN 을 결합 하여 사용 하고 AlexNet 모델 을 테스트 하 며 K40 에서 각 그림 을 처리 하려 면 1.17ms 만 필요 합 니 다.
3. 모듈 화: 새로운 작업 과 설정 으로 확장 하기 편리 합 니 다.
Caffe 가 제공 하 는 각 층 의 유형 을 사용 하여 자신의 모델 을 정의 할 수 있 습 니 다.
4. 개방 성: 공 개 된 코드 와 참고 모델 은 재현 에 사용 된다.
5. 커 뮤 니 티 좋 음: BSD - 2 를 통 해 개발 과 토론 에 참여 할 수 있 습 니 다.
Caffe 의 네트워크 정의
Caffe 의 네트워크 는 모두 링 없 는 그림 으로 집합 되 어 있 습 니 다. 직접 정의 할 수 있 습 니 다.
name:"dummy-net"
layers {name: "data" …}
layers {name: "conv" …}
layers {name: "pool" …}
layers {name: "loss" …}
데이터 와 그 도 수 는 blobs 의 형식 으로 층 간 에 흐른다.
Caffe 의 각 층 정의
Caffe 층 의 정 의 는 2 부분 으로 구성 되 어 있 습 니 다. 층 속성 과 층 매개 변수, 예 를 들 어
name:"conv1"
type:CONVOLUTION
bottom:"data"
top:"conv1"
convolution_param{
num_output:20
kernel_size:5
stride:1
weight_filler{
type: "xavier"
}
}
이 프로필 의 앞 4 줄 은 층 속성 으로 층 이름, 층 유형 과 층 연결 구 조 를 정의 합 니 다 (blob 입력 과 출력 blob).후반 부 는 여러 층 의 매개 변수 다.
Blob
Blob 는 데 이 터 를 저장 하 는 4 차원 배열 입 니 다. 예 를 들 어
데이터: Number * Channel * Height * Width
볼 륨 가중치: Output * Input * Height * Width
볼 륨 편향: Output * 1 * 1 * 1
훈련 망
네트워크 매개 변수의 정의 도 매우 편리 하여 상응하는 매개 변 수 를 임의로 설정 할 수 있다.
심지어 GPU 연산 을 호출 하려 면 한 마디 만 써 야 합 니 다.
solver_mode:GPU
Caffe 설치 및 설정
Caffe 는 먼저 CUDA 드라이브 를 설치 해 야 합 니 다.CentOS 나 우 분투 모두 오픈 소스 의 누 보 그래 픽 드라이브 (SUSE 에는 이런 문제 가 없 음) 를 미리 설 치 했 는데, 사용 하지 않 으 면 CUDA 드라이브 가 제대로 설치 되 지 않 는 다.우 분투 의 경우 이곳 의 접근 법 을 소개 하 는데, 물론 다른 접근 법도 있다.
sudo vi/etc/modprobe.d/blacklist.conf
:blacklist nouveau
sudoapt-get --purge remove xserver-xorg-video-nouveau # :
sudoapt-get --purge remove nvidia-*# NVIDIA
sudo service lightdm stop# , Xserver
sudokill all Xorg
CUDA 를 설치 한 후, 순서대로 홈 페이지 알림 (http://caffe.berkeleyvision.org/installation.html) BLAS, OpenCV, Boost 를 설치 하면 된다.
카페 뛰 어 봐. 미니 스 트 해 봐.
Caffe 설치 디 렉 터 리 에서 먼저 MNIST 데이터 세트 를 가 져 옵 니 다.
#cddata/mnist
#sh get_mnist.sh
mnist - train - leveldb / 와 mnist - test - leveldb / 를 생 성하 여 데 이 터 를 leveldb 형식 으로 변환 합 니 다.
# cdexamples/lenet
#sh create_mnist.sh
훈련 네트워크:
#sh train_lenet.sh
~
, , !
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Faster R-CNN 코드의 anchors 분석anchors는 proposal을 생성하는 rpn의 중점 내용 중 하나로서 Faster R-CNN에서 중점적으로 소개되었다. 다음은 anchors가 생성하는 부분 코드를 배워보자.나는 주로 그 중의 일부 중점 코드를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.