1. 程式人生 > >caffe網路結構解析

caffe網路結構解析

一、均值檔案是什麼:

下面是make_imagenet_mean.sh裡面的內容

#!/usr/bin/env sh
# Compute the mean image from the imagenet training lmdb
# N.B. this is available in data/ilsvrc12

EXAMPLE=E:/deeplearning/caffe-master/test_myself/my_data
DATA=E:/deeplearning/caffe-master/test_myself/my_data
TOOLS=E:/deeplearning/caffe-master/Build/x64/Release

$TOOLS/compute_image_mean $EXAMPLE/my_train_leveldb \
  $DATA/imagenet_mean.binaryproto --backend=leveldb

echo "Done."

可以看出用compute_image_mean.exe執行了均值檔案計算,而且只計算了my_train_leveldb 的均值,這是訓練資料。
均值檔案是通過訓練集計算出來的,測試集不需要計算出均值檔案。在訓練階段和測試階段都是用的訓練集的均值檔案。
均值的理論概念參考:http://ufldl.stanford.edu/wiki/index.php/%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90

看到這裡,其實我也一直不明白這個均值檔案到底是什麼東西,裡面到底是什麼,存的什麼資料。為此,我想用matlab來看裡面的資料。
配置matlab介面參考:http://blog.csdn.net/zb1165048017/article/details/51702686
配置完進行資料轉換,參考部落格:http://blog.csdn.net/yihaizhiyan/article/details/27214461
自己用的程式碼:


mean_file = 'E:\deeplearning\caffe-master\test_myself\my_data\imagenet_mean.binaryproto';    
image_mean = caffe.io.read_mean(mean_file);% help caffe 可以查到read_mean該函式  
save 'E:\deeplearning\caffe-master\test_myself\my_data\image_mean.mat' image_mean 
得到image_mean.mat檔案,檔案大小為32*32*3,顯然這是一張類似3通道的圖。



至此,我們知道,每次訓練時,輸入的原始圖片都要減去這張均值圖片,然後才真正輸入到網路中去,測試時也一樣。