程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python格式的Caffe圖片數據均值計算學習

編輯:Python

目錄

引言

一、二進制格式的均值計算

二、python格式的均值計算

引言

圖片減去均值後,再進行訓練和測試,會提高速度和精度。因此,一般在各種模型中都會有這個操作。

那麼這個均值怎麼來的呢,實際上就是計算所有訓練樣本的平均值,計算出來後,保存為一個均值文件,在以後的測試中,就可以直接使用這個均值來相減,而不需要對測試圖片重新計算。

一、二進制格式的均值計算

caffe中使用的均值數據格式是binaryproto, 作者為我們提供了一個計算均值的文件compute_image_mean.cpp,放在caffe根目錄下的tools文件夾裡面。

編譯後的可執行體放在 build/tools/ 下面,我們直接調用就可以了

# sudo build/tools/compute_image_mean examples/mnist/mnist_train_lmdb examples/mnist/mean.binaryproto

帶兩個參數:

第一個參數:examples/mnist/mnist_train_lmdb, 表示需要計算均值的數據,格式為lmdb的訓練數據。

第二個參數:examples/mnist/mean.binaryproto, 計算出來的結果保存文件。

二、python格式的均值計算

如果我們要使用python接口,或者我們要進行特征可視化,可能就要用到python格式的均值文件了。首先,我們用lmdb格式的數據,計算出二進制格式的均值,然後,再轉換成python格式的均值。

我們可以編寫一個python腳本來實現:

#!/usr/bin/env pythonimport numpy as npimport sys,caffeif len(sys.argv)!=3: print "Usage: python convert_mean.py mean.binaryproto mean.npy" sys.exit()blob = caffe.proto.caffe_pb2.BlobProto()bin_mean = open( sys.argv[1] , 'rb' ).read()blob.ParseFromString(bin_mean)arr = np.array( caffe.io.blobproto_to_array(blob) )npy_mean = arr[0]np.save( sys.argv[2] , npy_mean )

 將這個腳本保存為convert_mean.py

調用格式為:

# sudo python convert_mean.py mean.binaryproto mean.npy

其中的 mean.binaryproto 就是經過前面步驟計算出來的二進制均值。

mean.npy就是我們需要的python格式的均值。

以上就是python格式的Caffe圖片數據均值計算學習的詳細內容,更多關於python格式Caffe均值計算的資料請關注軟件開發網其它相關文章!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved