網站首頁 編程語言 正文
引言
圖片減去均值后,再進行訓練和測試,會提高速度和精度。因此,一般在各種模型中都會有這個操作。
那么這個均值怎么來的呢,實際上就是計算所有訓練樣本的平均值,計算出來后,保存為一個均值文件,在以后的測試中,就可以直接使用這個均值來相減,而不需要對測試圖片重新計算。
一、二進制格式的均值計算
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 python
import numpy as np
import sys,caffe
if 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格式的均值。
原文鏈接:https://www.cnblogs.com/denny402/p/5102328.html
相關推薦
- 2022-02-22 Android對話框AlertDialog詳解_Android
- 2022-07-22 python:實現abbreviation縮寫算法(附完整源碼)
- 2022-08-29 Python正則表達式?r'(.*)?are?(.*?)?.*'的深入理解_python
- 2022-04-19 css中link和@import的區別詳解
- 2022-11-07 Python根據字典值對字典進行排序的三種方法實例_python
- 2022-08-29 Python常見異常處理總結_python
- 2022-04-19 賭你會懵的C語言指針進階數組場景解析_C 語言
- 2023-06-21 C#高級靜態語言效率利器之泛型詳解_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支