1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 6 <title>Caffe使ç¨é®é¢è§£å³ä¹protobufçéæè°ç¨ | Cogito2012's Blog</title> 7 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 8 <meta name="description" content="é®é¢æ¥æº 9é®é¢åå 10è§£å³åæ³ 11åèèµæº"> 12<meta property="og:type" content="article"> 13<meta property="og:title" content="Caffe使ç¨é®é¢è§£å³ä¹protobufçéæè°ç¨"> 14<meta property="og:url" content="https://github.com/Cogito2012/2017/08/20/Caffeçéæè°ç¨protobufæ¹å¼/index.html"> 15<meta property="og:site_name" content="Cogito2012's Blog"> 16<meta property="og:description" content="é®é¢æ¥æº 17é®é¢åå 18è§£å³åæ³ 19åèèµæº"> 20<meta property="og:updated_time" content="2017-08-21T04:56:16.786Z"> 21<meta name="twitter:card" content="summary"> 22<meta name="twitter:title" content="Caffe使ç¨é®é¢è§£å³ä¹protobufçéæè°ç¨"> 23<meta name="twitter:description" content="é®é¢æ¥æº 24é®é¢åå 25è§£å³åæ³ 26åèèµæº"> 27 28 29 <link rel="icon" href="/favicon.png"> 30 31 <link rel="stylesheet" href="/css/style.css"> 32</head> 33<body> 34 <div id="container"> 35 <div class="left-col"> 36 <div class="overlay"></div> 37<div class="intrude-less"> 38 <header id="header" class="inner"> 39 <a href="/" class="profilepic"> 40 41 <img lazy-src="/assets/img/head.jpg" class="js-avatar"> 42 43 </a> 44 45 <hgroup> 46 <h1 class="header-author"><a href="/">Wentao Bao</a></h1> 47 </hgroup> 48 49 50 <p class="header-subtitle">ä¸é¾ï¼è¦ä½ å¹²åï¼ï¼</p> 51 52 53 54 <div class="switch-btn"> 55 <div class="icon"> 56 <div class="icon-ctn"> 57 <div class="icon-wrap icon-house" data-idx="0"> 58 <div class="birdhouse"></div> 59 <div class="birdhouse_holes"></div> 60 </div> 61 <div class="icon-wrap icon-ribbon hide" data-idx="1"> 62 <div class="ribbon"></div> 63 </div> 64 65 66 <div class="icon-wrap icon-me hide" data-idx="3"> 67 <div class="user"></div> 68 <div class="shoulder"></div> 69 </div> 70 71 </div> 72 73 </div> 74 <div class="tips-box hide"> 75 <div class="tips-arrow"></div> 76 <ul class="tips-inner"> 77 <li>èå</li> 78 <li>æ ç¾</li> 79 80 81 <li>å ³äºæ</li> 82 83 </ul> 84 </div> 85 </div> 86 87 88 <div class="switch-area"> 89 <div class="switch-wrap"> 90 <section class="switch-part switch-part1"> 91 <nav class="header-menu"> 92 <ul> 93 94 <li><a href="/">主页</a></li> 95 96 <li><a href="/archives">æææç« </a></li> 97 98 <li><a href="/tags/éç¬">éç¬</a></li> 99 100 <li><a href="/tags/ææ¯">ææ¯</a></li> 101 102 </ul> 103 </nav> 104 <nav class="header-nav"> 105 <div class="social"> 106 107 <a class="github" target="_blank" href="https://github.com/Cogito2012" title="github">github</a> 108 109 <a class="weibo" target="_blank" href="http://weibo.com/u/3187172412" title="weibo">weibo</a> 110 111 <a class="zhihu" target="_blank" href="http://www.zhihu.com/people/Cogito2012" title="zhihu">zhihu</a> 112 113 </div> 114 </nav> 115 </section> 116 117 118 <section class="switch-part switch-part2"> 119 <div class="widget tagcloud" id="js-tagcloud"> 120 121 </div> 122 </section> 123 124 125 126 127 128 129 <section class="switch-part switch-part3"> 130 131 <div id="js-aboutme">æ¦æ±å¤§å¦IIP</div> 132 </section> 133 134 </div> 135 </div> 136 </header> 137</div> 138 </div> 139 <div class="mid-col"> 140 <nav id="mobile-nav"> 141 <div class="overlay"> 142 <div class="slider-trigger"></div> 143 <h1 class="header-author js-mobile-header hide">Wentao Bao</h1> 144 </div> 145 <div class="intrude-less"> 146 <header id="header" class="inner"> 147 <div class="profilepic"> 148 <img lazy-src="/assets/img/head.jpg" class="js-avatar"> 149 </div> 150 <hgroup> 151 <h1 class="header-author">Wentao Bao</h1> 152 </hgroup> 153 154 <p class="header-subtitle">ä¸é¾ï¼è¦ä½ å¹²åï¼ï¼</p> 155 156 <nav class="header-menu"> 157 <ul> 158 159 <li><a href="/">主页</a></li> 160 161 <li><a href="/archives">æææç« </a></li> 162 163 <li><a href="/tags/éç¬">éç¬</a></li> 164 165 <li><a href="/tags/ææ¯">ææ¯</a></li> 166 167 <div class="clearfix"></div> 168 </ul> 169 </nav> 170 <nav class="header-nav"> 171 <div class="social"> 172 173 <a class="github" target="_blank" href="https://github.com/Cogito2012" title="github">github</a> 174 175 <a class="weibo" target="_blank" href="http://weibo.com/u/3187172412" title="weibo">weibo</a> 176 177 <a class="zhihu" target="_blank" href="http://www.zhihu.com/people/Cogito2012" title="zhihu">zhihu</a> 178 179 </div> 180 </nav> 181 </header> 182 </div> 183</nav> 184 <div class="body-wrap"><article id="post-Caffeçéæè°ç¨protobufæ¹å¼" class="article article-type-post" itemscope itemprop="blogPost"> 185 186 <div class="article-meta"> 187 <a href="/2017/08/20/Caffeçéæè°ç¨protobufæ¹å¼/" class="article-date"> 188 <time datetime="2017-08-20T08:45:13.580Z" itemprop="datePublished">2017-08-20</time> 189</a> 190 </div> 191 192 <div class="article-inner"> 193 194 <input type="hidden" class="isFancy" /> 195 196 197 <header class="article-header"> 198 199 200 <h1 class="article-title" itemprop="name"> 201 Caffe使ç¨é®é¢è§£å³ä¹protobufçéæè°ç¨ 202 </h1> 203 204 205 </header> 206 207 <div class="article-info article-info-post"> 208 209 210 211 <div class="clearfix"></div> 212 </div> 213 214 215 <div class="article-entry" itemprop="articleBody"> 216 217 <hr> 218<blockquote> 219<ul> 220<li>é®é¢æ¥æº</li> 221<li>é®é¢åå </li> 222<li>è§£å³åæ³</li> 223<li>åèèµæº</li> 224</ul> 225</blockquote> 226<a id="more"></a> 227<h2 id="é®é¢æ¥æº"><a href="#é®é¢æ¥æº" class="headerlink" title="é®é¢æ¥æº"></a>é®é¢æ¥æº</h2><p>å¨Linuxç³»ç»ä¸ä½¿ç¨MatlabçFaster RCNNåç®æ æ£æµæ¶ï¼æ³å¿ 大家é½ä¼å¯¹äºè¿æ ·ä¸ä¸ªé®é¢è¡¨ç¤ºæ·±æ¶çç»ï¼å¯å¨Matlabè¿è¡Faster RCNNçdemoæè å ¶å®è®ç»èæ¬åï¼å¦æä¸æ¯æ£å¸¸ç»æè¿è¡ï¼æ¯å¦matlab代ç åºbugï¼æè è°è¯è¿ç¨ä¸æ¢ï¼ï¼å次è¿è¡è¯¥matlabèæ¬æ¶ï¼ä¼åºç°å¦ä¸æ¥éï¼<br><figure class="highlight"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line"># errors in Matlab:</div><div class="line">[libprotobuf ERROR google/protobuf/descriptor_database.cc:57] File already exists in database: caffe.proto</div><div class="line">[libprotobuf FATAL google/protobuf/descriptor.cc:954] CHECK failed: generated_database_->Add(encoded_file_descriptor, size): </div><div class="line"></div><div class="line"># errors in terminal:</div><div class="line">Caught "std::exception" Exception message is:</div><div class="line">CHECK failed: generated_database_->Add(encoded_file_descriptor, size):</div></pre></td></tr></table></figure></p> 228<p>è¿ä¸ªé®é¢ä¸ä» ä» æ¯MatlabççFaster RCNNä¸ä¼åºç°ï¼è䏿¯å¨å®æ¹çBVLC/caffeä¸ä¹åæ ·åå¨ï¼åªè¦æå¤ä¸ªç¨åºåæ¶è¿è¡æ¶è°ç¨caffeï¼å°±ä¼æ¥ä¸è¿°<code>libprotobuf ERROR</code>é误ã</p> 229<h2 id="é®é¢åå "><a href="#é®é¢åå " class="headerlink" title="é®é¢åå "></a>é®é¢åå </h2><p>åå æ¯å 为å¨Linuxæä½ç³»ç»ä¸ï¼ä»¥Ubuntu14.04为ä¾ï¼å¨é ç½®caffeçç³»ç»ç¯å¢æ¶éè¦å®è£ Googleçprotobufåºï¼å®ç½ç»åºçå®è£ æ¹å¼ä¸ºï¼<br><figure class="highlight python"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">sudo apt-get install libprotobuf-dev protobuf-compiler</div></pre></td></tr></table></figure></p> 230<p>è¿æ ·å®è£ é»è®¤çprotobufçconfigureé项æ¯çæå¨æé¾æ¥åºï¼å¦è¿ä¸ç¹C/C++çåºè¯¥é½ç¥é卿åºåéæåºï¼ï¼å³libprotobuf.soæä»¶ï¼æ æ³æ»¡è¶³åä¸ä¸ªåºæä»¶è¢«å¤ä¸ªè¿ç¨åæ¶è°ç¨çè¦æ±ï¼å æ¤éè¦æ¹æéæè°ç¨protobufï¼ä¹å°±æ¯å®è£ protobufæ¶éè¦çæå¨æé¾æ¥åºlibprotobuf.aæä»¶ï¼ç¶åå¨caffeéé¢ä»¥éæè°ç¨çæ¹å¼ä½¿ç¨protobufã</p> 231<h2 id="è§£å³åæ³">
231<a href="#è§£å³åæ³" class="headerlink" title="è§£å³åæ³"></a>è§£å³åæ³</h2><h3 id="protobufçç¼è¯å®è£ "><a href="#protobufçç¼è¯å®è£ " class="headerlink" title="protobufçç¼è¯å®è£ "></a>protobufçç¼è¯å®è£ </h3><p>以protobuf-2.5.0çæ¬ä¸ºä¾ï¼é¦å ä»googleå®ç½ä¸è½½protobufæºç å :<br>ä¸è½½å°åï¼<a href="http://protobuf.googlecode.com/files/protobuf-2.3.0.zip" target="_blank" rel="external">http://protobuf.googlecode.com/files/protobuf-2.3.0.zip</a>.<br>éèµ ç½çå°åï¼é¾æ¥ï¼<a href="http://pan.baidu.com/s/1eSnHBEy" target="_blank" rel="external">http://pan.baidu.com/s/1eSnHBEy</a> å¯ç ï¼skrc</p> 232<p>ç¶åè§£åï¼ä¿®æ¹é ç½®æä»¶<br><figure class="highlight python"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">sudo tar zxvf protobuf<span class="number">-2.5</span><span class="number">.0</span>.tar.gz</div><div class="line">cd protobuf<span class="number">-2.5</span><span class="number">.0</span></div><div class="line">sudo gedit ./configure <span class="comment"># æè sudo vim ./configure</span></div></pre></td></tr></table></figure></p> 233<p>ç¶åæ¥æ¾å°./configureæä»¶çCFLAGSåCXXFLAGSï¼æ·»å <code>-fPIC</code>é项ï¼å³åå¦ä¸æ´æ¹ï¼<br><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line"><span class="keyword">if</span> <span class="built_in">test</span> <span class="string">"x<span class="variable">${ac_cv_env_CFLAGS_set}</span>"</span> = <span class="string">"x"</span>; <span class="keyword">then</span> :</div><div class="line"> CFLAGS=<span class="string">"-fPIC"</span> </div><div class="line"><span class="keyword">fi</span> </div><div class="line"><span class="keyword">if</span> <span class="built_in">test</span> <span class="string">"x<span class="variable">${ac_cv_env_CXXFLAGS_set}</span>"</span> = <span class="string">"x"</span>; <span class="keyword">then</span> : </div><div class="line"> CXXFLAGS=<span class="string">"-fPIC"</span></div><div class="line"><span class="keyword">fi</span></div></pre></td></tr></table></figure></p> 234<p>ç¶åæ·»å <code>--disable-shared</code>é项è¿è¡protobufçç¼è¯åå®è£ ï¼<br><figure class="highlight python"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">sudo sh ./configrue --disable-shared</div><div class="line">sudo make -j8</div><div class="line">sudo make check -j8</div><div class="line">sudo make install -j8</div></pre></td></tr></table></figure></p> 235<p>æåç¡®ä¿ä¸è¿°å½ä»¤è¾åºæ²¡æé误åï¼å·æ°ç³»ç»çå ±äº«åºï¼å¹¶æ£æ¥protobufæ¯å¦å®è£ å°ç³»ç»ç®å½ï¼<br><figure class="highlight python"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">sudo ldconfig <span class="comment"># refresh shared library cache </span></div><div class="line">protoc --version</div></pre></td></tr></table></figure></p> 236<h3 id="Caffeçç¼è¯åæ´æ¹"><a href="#Caffeçç¼è¯åæ´æ¹" class="headerlink" title="Caffeçç¼è¯åæ´æ¹"></a>Caffeçç¼è¯åæ´æ¹</h3><p>å¨æç §å®ç½ç»çcaffeç¼è¯å½ä»¤ä¹åï¼éè¦æ´æ¹Makefileæä»¶ï¼ä»¥æ¯æprotobufç卿å è½½<br>é¦å ï¼å½ä»¤<figure class="highlight plain"><figcaption><span>gedit Makefile```æå¼Makefileæä»¶ï¼æ¥æ¾`LDFLAGS`çå®ä¹ä½ç½®ï¼æ·»å å¦ä¸ä¸è¡é项ï¼</span></figcaption><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">```python</div><div class="line">LDFLAGS += -Wl,-Bstatic -lprotobuf -Wl,-Bdynamic</div></pre></td></tr></table></figure></p> 237<p>ç¶åï¼æ¥æ¾<code>LIBRARIES</code>çå®ä¹ä½ç½®ï¼å°<code>protobuf</code>ä¸é¡¹å é¤ï¼å é¤åç<code>LIBRARIES</code>å®ä¹ä¸ºï¼<br><figure class="highlight python"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">LIBRARIES += glog gflags boost_system boost_filesystem m hdf5_hl hdf5</div></pre></td></tr></table></figure></p> 238<p>æåï¼æ¥æ¾<code>CXXFLAGS</code>çå®ä¹ä½ç½®ï¼æ·»å <code>-fPIC</code>é项<br><figure class="highlight python"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">CXXFLAGS += -MMD -MP -fPIC</div></pre></td></tr></table></figure></p> 239<p>###Caffeçç¼è¯<br><figure class="highlight python"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">sudo make clean <span class="comment"># if failed before</span></div><div class="line">sudo make -j8</div><div class="line">sudo make matcaffe</div></pre></td></tr></table></figure></p> 240<h2 id="åèèµæº"><a href="#åèèµæº" class="headerlink" title="åèèµæº"></a>åèèµæº</h2><p>[1]. <a href="http://blog.csdn.net/fengbingchun/article/details/72318839" target="_blank" rel="external">http://blog.csdn.net/fengbingchun/article/details/72318839</a><br>[2]. <a href="http://blog.csdn.net/linyushan11/article/details/10378419" target="_blank" rel="external">http://blog.csdn.net/linyushan11/article/details/10378419</a><br>[3]. <a href="http://caffe.berkeleyvision.org/install_apt.html" target="_blank" rel="external">http://caffe.berkeleyvision.org/install_apt.html</a><br>[4]. <a href="https://github.com/BVLC/caffe/issues/1917">https://github.com/BVLC/caffe/issues/1917</a></p> 241 242 243 </div> 244 245 </div> 246 247 248<nav id="article-nav"> 249 250 251 <a href="/2017/05/16/èå使ç¨GroupåStackç»å¶æ±ç¶å¾/" id="article-nav-older" class="article-nav-link-wrap"> 252 <div class="article-nav-title">SCIè®ºææ°æ®å¯è§å--èå使ç¨GroupåStackç»å¶æ±ç¶å¾</div> 253 <strong class="article-nav-caption">></strong> 254 </a> 255 256</nav> 257 258 259</article> 260 261 262<div class="share"> 263 <!-- JiaThis Button BEGIN --> 264 <div class="jiathis_style"> 265 <span class="jiathis_txt">å享å°ï¼</span> 266 <a class="jiathis_button_tsina"></a> 267 <a class="jiathis_button_cqq"></a> 268 <a class="jiathis_button_douban"></a> 269 <a class="jiathis_button_weixin"></a> 270 <a class="jiathis_button_tumblr"></a> 271 <a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jtico jtico_jiathis" target="_blank"></a> 272 </div> 273
273<script type="text/javascript" src="http://v3.jiathis.com/code/jia.js?uid=1405949716054953" charset="utf-8"></script>
273 274 <!-- JiaThis Button END --> 275</div> 276 277 278 279<div class="duoshuo"> 280 <!-- å¤è¯´è¯è®ºæ¡ start --> 281 <div class="ds-thread" data-thread-key="Caffeçéæè°ç¨protobufæ¹å¼" data-title="Caffe使ç¨é®é¢è§£å³ä¹protobufçéæè°ç¨" data-url="https://github.com/Cogito2012/2017/08/20/Caffeçéæè°ç¨protobufæ¹å¼/"></div> 282 <!-- å¤è¯´è¯è®ºæ¡ end --> 283 <!-- å¤è¯´å ¬å ±JS代ç start (ä¸ä¸ªç½é¡µåªéæå ¥ä¸æ¬¡) --> 284
284<script type="text/javascript"> 285 var duoshuoQuery = {short_name:"Cogito2012"}; 286 (function() { 287 var ds = document.createElement('script'); 288 ds.type = 'text/javascript';ds.async = true; 289 ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js'; 290 ds.charset = 'UTF-8'; 291 (document.getElementsByTagName('head')[0] 292 || document.getElementsByTagName('body')[0]).appendChild(ds); 293 })(); 294 </script>
294 295 <!-- å¤è¯´å ¬å ±JS代ç end --> 296</div> 297 298 299 300 301</div> 302 <footer id="footer"> 303 <div class="outer"> 304 <div id="footer-info"> 305 <div class="footer-left"> 306 © 2017 Wentao Bao 307 </div> 308 <div class="footer-right"> 309 <a href="http://hexo.io/" target="_blank">Hexo</a> Theme <a href="https://github.com/litten/hexo-theme-yilia" target="_blank">Yilia</a> by Litten 310 </div> 311 </div> 312 </div> 313</footer> 314 </div> 315 316 <link rel="stylesheet" href="/fancybox/jquery.fancybox.css"> 317 318
319<script> 320 var yiliaConfig = { 321 fancybox: true, 322 mathjax: true, 323 animate: true, 324 isHome: false, 325 isPost: true, 326 isArchive: false, 327 isTag: false, 328 isCategory: false, 329 open_in_new: false 330 } 331</script>
vendor: 1 bytes, line 331
331
332<script src="http://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js"></script>
vendor: 1 bytes, line 332
332
333<script src="/js/main.js"></script>
333 334 335 336 337 338 339
340<script type="text/x-mathjax-config"> 341MathJax.Hub.Config({ 342 tex2jax: { 343 inlineMath: [ ['$','$'], ["\\(","\\)"] ], 344 processEscapes: true, 345 skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'] 346 } 347}); 348 349MathJax.Hub.Queue(function() { 350 var all = MathJax.Hub.getAllJax(), i; 351 for(i=0; i < all.length; i += 1) { 352 all[i].SourceElement().parentNode.className += ' has-jax'; 353 } 354}); 355</script>
355 356
357<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 358</script>
358 359 360 361 </div> 362</body> 363</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.