카페에 대한 노트

1. 커피로 훈련하는 동안 메모리가 얼마나 필요하고 메모리에 무엇을 배웠습니까?
메모리는 훈련 주기 중의 모든feature map 데이터 + 네트워크 파라미터 데이터를bach 저장해야 합니다크기 및 네트워크 모델의 크기 관계가 비교적 크다.
2. 훈련된 모형 파일을 이용한다.caffemodel은 어떻게 네트워크 모델 파일을 초기화합니까?prototxt?
4
  • matlab 인터페이스:net=caffe.Net() net.copy_from()

  • 4
  • caffe 소스 설명: 호출 함수:caffenet.CopyTrainedLayersFrom(FLAGS_weights); 이용ffemodel 파일에서 네트워크 모델 파일 (.prototxt) 의 네트워크 층 이름과 일치하는 매개 변수를 부여합니다. 네트워크 이름과 일치하지 않는 것은 처리하지 않고 기본적으로 무작위로 초기화됩니다
  • 
    template <typename Dtype>
    void Net**::CopyTrainedLayersFrom(const NetParameter& param)** {
      int num_source_layers = param.layer_size();
      for (int i = 0; i < num_source_layers; ++i) {
        const LayerParameter& source_layer = param.layer(i);
        const string& source_layer_name = source_layer.name();
        int target_layer_id = 0;
        while (target_layer_id != layer_names_.size() &&
            layer_names_[target_layer_id] != source_layer_name) {
          ++target_layer_id;
        }
        if (target_layer_id == layer_names_.size()) {
          LOG(INFO) << "Ignoring source layer " << source_layer_name;
          continue;
        }
        DLOG(INFO) << "Copying source layer " << source_layer_name;
        vector<shared_ptr > >& target_blobs =
            layers_[target_layer_id]->blobs();
        CHECK_EQ(target_blobs.size(), source_layer.blobs_size())
            << "Incompatible number of blobs for layer " << source_layer_name;
        for (int j = 0; j < target_blobs.size(); ++j) {
          if (!target_blobs[j]->ShapeEquals(source_layer.blobs(j))) {
            Blob source_blob;
            const bool kReshape = true;
            source_blob.FromProto(source_layer.blobs(j), kReshape);
            LOG(FATAL) << "Cannot copy param " << j << " weights from layer '"
                << source_layer_name << "'; shape mismatch.  Source param shape is "
                << source_blob.shape_string() << "; target param shape is "
                << target_blobs[j]->shape_string() << ". "
                << "To learn this layer's parameters from scratch rather than "
                << "copying from a saved net, rename the layer.";
          }
          const bool kReshape = false;
          target_blobs[j]->FromProto(source_layer.blobs(j), kReshape);
        }
      }
    }
    

    3、

    좋은 웹페이지 즐겨찾기