1. 程式人生 > >新版caffe新增自己的層(目前只學會新增,我想要新增的loss還沒能實現),cu檔案用於cuda加速的程式碼 新版caffe新增自己的層(目前只學會新增,我想要新增的loss還沒能實現)

新版caffe新增自己的層(目前只學會新增,我想要新增的loss還沒能實現),cu檔案用於cuda加速的程式碼 新版caffe新增自己的層(目前只學會新增,我想要新增的loss還沒能實現)

新版caffe新增自己的層(目前只學會新增,我想要新增的loss還沒能實現)

2016年10月05日 16:23:25 閱讀數:1989
																				<div class="tags-box space">
							<span class="label">個人分類:</span>
															<a class="tag-link" href="https://blog.csdn.net/u011037837/article/category/6398977" target="_blank">caffe																</a>
						</div>
																							</div>
			<div class="operating">
													</div>
		</div>
	</div>
</div>
<article class="baidu_pl">
	<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
							<div class="article-copyright">
				版權宣告:本文為博主原創文章,未經博主允許不得轉載。					https://blog.csdn.net/u011037837/article/details/52739272				</div>
							            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-2c6a5211c9.css">
					<div class="htmledit_views" id="content_views">
今天實現了在caffe框架中加入一個層,完成歐式距離的任務。之所以這樣,是因為還沒有實現自己想要的loss,只是試著學者,看能不能把新增層的流程順下來。最後實現了。 (一)總體框架 1)在./src/caffe/proto/caffe.proto 中增加 對應layer的paramter message;查詢 euclidean,然後根據euclidean_loss加一個whole_loss,加一個數就可以了。 2)在./include/caffe/layers/ 資料夾中增加該layer的類的宣告.h檔案,直接將歐式距離的hpp檔案euclidean_loss_layer.h複製,命名為whole_loss_layer.h,然後開啟檔案,將 euclidean替換為whole,注意大小寫。
3)在./src/caffe/layers/目錄下新建.cpp和.cu檔案,進行類實現。也是複製,然後改檔名,替換檔案中的 euclidean,注意大小寫。 4)在./src/caffe/gtest/中增加layer的測試程式碼,對所寫的layer前傳和反傳進行測試,測試還包括速度。 最後一步很多人省了,或者沒意識到,但是為保證程式碼正確,建議還是嚴格進行測試,磨刀不誤砍柴功。 (二)編譯 make all -j 8 (三)測試 找一個工程程式碼,將程式碼中的network定義檔案中的 euclidean_loss_layer層換為whole_loss_layer層

注意:一定要注意細節,大小寫
下一步:實現自己的損失函式,要用cblas函式改寫。