コード例 #1
0
 // Get a layer using a LayerParameter.
 static shared_ptr<Layer<Dtype> > CreateLayer(const LayerParameter& param) {
   const string& type = param.type();
   CreatorRegistry& registry = Registry();
   CHECK_EQ(registry.count(type), 1) << "Unknown layer type: " << type
       << " (known types: " << LayerTypeListString() << ")";
   return registry[type](param);
 }
コード例 #2
0
ファイル: layer_factory.hpp プロジェクト: 0hm/caffe
 // Get a layer using a LayerParameter.
 static shared_ptr<Layer<Dtype> > CreateLayer(const LayerParameter& param) {
   if (Caffe::root_solver()) {
     LOG(INFO) << "Creating layer " << param.name();
   }
   const string& type = param.type();
   CreatorRegistry& registry = Registry();
   CHECK_EQ(registry.count(type), 1) << "Unknown layer type: " << type
       << " (known types: " << LayerTypeListString() << ")";
   return registry[type](param);
 }
コード例 #3
0
ファイル: layer_factory.hpp プロジェクト: runaway/studycaffe
    // Get a layer using a LayerParameter.
    // 3-2给定层的类型,创建层
    static shared_ptr<Layer<Dtype> > CreateLayer(const LayerParameter& param) 
    {  
    
        if (Caffe::root_solver()) 
        {  
            LOG(INFO) << "Creating layer " << param.name();  
        }  
        
        // 从参数中获得类型字符串  
        const string& type = param.type();  
        
        // 获得注册表指针  
        CreatorRegistry& registry = Registry(); 
        
        // 测试是否查找到给定type的Creator  
        CHECK_EQ(registry.count(type), 1) << "Unknown layer type: " << type  
        << " (known types: " << LayerTypeListString() << ")";  

        // 这里大概就直接new了一个新的layer类。DataLayer,ConvolutionLayer,...
        // 调用对应的层的Creator函数  
        return registry[type](param);  
    }