tensorflow alexnet 예제

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

각 키는 레이어 중 하나이며 가중치 및 바이어스 목록이 포함되어 있습니다. caffe-to-tensorflow 함수를 사용하여 스스로 가중치를 변환하면 사전의 파이썬 사전(예: weights[`conv1`])이 키 가중치와 바이어스를 사용하는 또 다른 사전입니다. 어쨌든, 나는 여기에서 다운로드 할 수있는 가중치에 대한 함수를 작성합니다 (목록 사전), 우리는 콘텐츠의 모양을 확인한 다음 가중치 (모양의 길이 = 1) 또는 바이어스 (모양의 길이 = = 1)에 할당해야하는 각 목록 항목에 대해있었습니다. 이제 기본 클래스 구조를 가지고 있으므로 레이어를 만들기 위한 몇 가지 도우미 함수를 정의할 수 있습니다. 한 함수에서 분할하지 않고 분할하지 않는 경우를 구현해야 하기 때문에 컨볼루션 레이어에 대한 하나는 `가장 무겁다`일 수 있습니다. 이 기능은 카페-텐서플로우 리포지토리의 적응형 버전입니다. 이미지의 예제 배치에 무엇을 참조하십시오 : 당신은 경로 텐서 플로우 / 콘트리브 / 슬림 / 파이썬 / 슬림 / 그물 / alexnet.py의 경로 텐서 플로우에서 AlexNet 모델의 정의를 찾을 수 있습니다 (TF-슬림하는 데 사용되는 것의 예 중 지금은 그냥입니다 tf.contrib.layers).