Caffe学习系列(15):计算图片数据的均值

news/2024/7/8 13:22:13 标签: 人工智能, 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 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格式的均值。


http://www.niftyadmin.cn/n/710099.html

相关文章

全文搜索引擎 Elasticsearch (一)

一、安装 Elastic 需要 Java 8 环境。如果你的机器还没安装 Java,可以参考这篇文章,注意要保证环境变量JAVA_HOME正确设置。 安装完 Java,就可以跟着官方文档安装 Elastic。直接下载压缩包比较简单。 $ wget https://artifacts.elastic.co/do…

关于windows Server 2012拷贝大文件慢问题

转自https://redmondmag.com/articles/2014/05/16/network-performance-problems.aspx How To Fix Windows Server Network Performance ProblemsIf your server network performance is lagging, chances are Windows security features are to blame. Heres how to alleviate…

Android每周一个学习计划——Java容器的学习使用

序言:这篇文章本来早就应该写了,这个知识点也是日常开发中经常用到的,而且面试过程中也被每每提及,所以通过这次一周一个知识点的机会,打算好好总结一下容器相关的知识。 1、何为容器? 在Java中&#xff0c…

git for windows

git for windows https://git-for-windows.github.io/posted on 2016-01-05 18:15 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ruiy/p/5103379.html

[Hdu3652]B-number(数位DP)

Description 题目大意&#xff1a;求小于n是13的倍数且含有13的数的个数。 (1 < n < 1000000000) Solution 数位DP&#xff0c;题目需要包含13&#xff0c;且被13整除&#xff0c;所以状态应该多2个&#xff0c; \(F[i][j][k]\)表示位数为i&#xff0c;余数为j&#xff0…

alpha版、beta版、rc版的意思

2019独角兽企业重金招聘Python工程师标准>>> alpha版、beta版、rc版的意思 - a3015440的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/a3015440/article/details/6178568 很多软件在正式发布前都会发布一些预览版或者测试版&#xff0c;一般都叫“beta版”或者 …

C语言编译器不能帮你完成这项检查

C语言编译器不能帮你完成这项检查 工作中同事分享的一个小问题&#xff0c;特此记录以下。C语言编译器仅检查声明而不检查定义。C语言编译器只能检查代码中引用的其他函数是否存在声明&#xff0c;只有在链接时才会去找到真正的函数定义即链接地址。出现问题&#xff1a;main.c…

设计模式之结构模式

2019独角兽企业重金招聘Python工程师标准>>> 设计模式之结构模式 一、概述 1.1 简述 告别面向过程&#xff1a; 从汇编到C&#xff0c;由于机器的执行都是通过有顺序的&#xff0c;我们的编程都是面向过程&#xff0c;可以极大的提高系统资源的利用率。当越来越多的…