Caffe, AlexNet의 사전 훈련 된 가중치를 두 개의 AlexNet이있는 사용자 지정 네트워크에 복사

kcc__

두 개의 이미지 입력을 포함하는 네트워크를 구축하려고합니다. 각 이미지는 병합하여 하나의 출력을 제공하는 후기 융합과 동시에 네트워크를 통과합니다. 나는 내가 필요한 것을 보여주기 위해 아래 다이어그램을 사용합니다 (ps : 미안 해요 내 영어가 그렇게 좋지 않습니다)

여기에 이미지 설명 입력

내 네트워크는 풀 5까지 두 번 정의 된 정확한 AlexNet을 포함하는 caffe prototxt 모델 정의 파일에 정의되어 있습니다. 첫 번째 네트워크의 경우 계층은 AlexNet 과 동일한 이름을 가지며 두 번째 네트워크의 경우 각 계층 이름에 "_1" 접미사를 추가했습니다 . 내 질문은 미리 설정된 무게를 어떻게 복사 할 수 있습니까?

예 : 각 네트워크의 컨볼 루션 레이어 1은 다음과 같습니다. 에 대한주의 conv1레이어 이름이 pretrained 모델의 것과 동일하기 때문에 pretrained 무게를 쉽게 복사 할 수 있습니다. 그러나 conv1_1동일한 것이 다르므로 사전 훈련 된 가중치를 복사 할 수 없습니다. 아니면 레이어 이름이 다른 경우에도이를 수행 할 수있는 방법이 있습니까?

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data1"
  top: "conv1"
  param {
    lr_mult: 0
    decay_mult: 1
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  convolution_param {
    num_output: 96
    kernel_size: 11
    stride: 4
    weight_filler {
      type: "gaussian"
      std: 0.01
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}


layer {
  name: "conv1_1"
  type: "Convolution"
  bottom: "data2"
  top: "conv1_1"
  param {
    lr_mult: 0
    decay_mult: 1
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  convolution_param {
    num_output: 96
    kernel_size: 11
    stride: 4
    weight_filler {
      type: "gaussian"
      std: 0.01
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}
예언

초기화 후 전체 네트워크를 미세 조정하려고한다고 가정합니다. 그렇지 않으면 AlexNet에서 추출한 기능을 사용하고 FC 계층에서 교육을 시작할 수 있습니다. 미세 조정을 위해 첫 번째 네트워크 (같은 이름을 가진 네트워크)에 가중치를 복사하고 두 번째 네트워크가 첫 번째 네트워크와 가중치를 공유하도록해야합니다. 스레드를 살펴보십시오 . 또는 오히려 에반 Shelmar에서 응답.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관