tensorflow alexnet 예제

이제 기본 클래스 구조를 가지고 있으므로 레이어를 만들기 위한 몇 가지 도우미 함수를 정의할 수 있습니다. 한 함수에서 분할하지 않고 분할하지 않는 경우를 구현해야 하기 때문에 컨볼루션 레이어에 대한 하나는 `가장 무겁다`일 수 있습니다. 이 기능은 카페-텐서플로우 리포지토리의 적응형 버전입니다. 이미지의 예제 배치에 대한 작업을 참조하십시오: 코드를 직접 테스트하려면 http://www.cs.toronto.edu/~guerzhoy/tf_alexnet/ bvlc_alexnet.npy 모델을 다운로드하여 디렉토리에 저장해야 합니다. 여기서는 컨볼루션, 풀링, LRN, 드롭아웃에 대한 정의를 작성하고 텐서플로우가 있는 파이썬 함수에 완전히 연결합니다. 이제 Tensorflow에 대한 정의를 작성해 보겠습니다: 다음은 코드 예제입니다. 입력 데이터는 3차원이며 조밀한 계층으로 전달하기 전에 데이터를 병합해야 합니다. 손실 함수에 교차 엔트로피를 사용하고, 성능 메트릭에 대한 최적화 및 정확도를 위한 adam을 사용합니다. 몇 가지를 단순화하고 교육 결과를 더 최적화하기 위해 몇 가지 사항을 변경했습니다. 우선, 순차적 모델을 사용하고 단순화를 위한 병렬처리가 제거되고 있습니다. 예를 들어, 첫 번째 컨볼루션 레이어에는 각각 48개의 뉴런이 있는 2개의 레이어가 있습니다.

대신, 나는 그것을 결합 하 고 98 뉴런. 또한 이 이미지를 교육, 유효성 검사 및 테스트 집합(70/15/15)으로 분할하고 이미지 및 클래스 레이블에 대한 경로를 포함하는 각 하위 집합에 대해 .txt 파일을 만들었습니다. 이 텍스트 파일을 가지고 있으면 이미지 데이터 생성기 (예 : Keras 중 하나)로 봉사하는 또 다른 클래스를 만들었습니다. 나는 똑똑한 방법이 있다는 것을 알고 있지만, 다른 프로젝트의 경우 이미지가로드되고 전처리되고 이미이 스크립트를 갖는 방법을 정확히 돌봐야했습니다.이 자습서를 위해 복사했습니다. 코드는 github 리포지토리에서 만들 수 있습니다. 그리고 개인적으로 교육적 목적으로 더 많은 스크립트를 좋아하기 때문에 코드를 호출 가능한 함수로 쓰지 않고 스크립트로 열어보고 어떻게되는지 더 잘 이해해야합니다. 관련 링크를 클릭, 예를 들어 gpu 클릭으로 우분투를 실행 하는 경우 `야간 매트릭스-리눅스 gpu`. 이 페이지에서는 PIP 및 NO_PIP 버전에 대한 다양한 파이썬 버전에 대한 행렬이 표시됩니다. 다음과 같은 관련 파이썬NO_PIP를 선택하십시오 : load_initial_weights 함수에 지금 좋아. 이 기능의 목적은 자체로 저장된 미리 훈련 된 가중치를 할당하는 것입니다. WEIGHTS_PATH, 자체로 지정되지 않은 모든 SKIP_LAYER, 이러한 레이어는 우리가 처음부터 훈련할 레이어이기 때문입니다. bvlc_alexnet.npy 가중치의 구조를 살펴보면 목록의 파이썬 사전으로 오는 것을 알 수 있습니다.