精华内容
下载资源
问答
  • 网上用python实现计算图像RGB均值都是批量的,而我只想得到一张图片的rgb均值(即整张图片三个通道的三个均值)如下的代码是一位大神的代码,对于刚学python的小白不会修改,求大神帮助。总之就是将下面代码从批量...
  • 那么这个均值怎么来的呢,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值来相减,而不需要对测试图片重新计算。 一、二进制格式的均值计算 ...

    本文转载自:https://www.cnblogs.com/denny402/p/5102328.html

    图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。

    那么这个均值怎么来的呢,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值来相减,而不需要对测试图片重新计算。

    一、二进制格式的均值计算

    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格式的均值。

    展开全文
  • 那么这个均值怎么来的呢,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值来相减,而不需要对测试图片重新计算。 一、二进制格式的均值计算 caffe...

    计算图片数据的均值

     图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。

    那么这个均值怎么来的呢,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值来相减,而不需要对测试图片重新计算。

    一、二进制格式的均值计算

    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, 计算出来的结果保存文件。

    展开全文
  • 据平日学习内容推断,本以为会用一道简单而...首先我们要了解一下什么叫均值滤波和中值滤波,在这里摘录两段题目中给出的介绍。(a) Local averaging is a common method to denoise images (i.e. suppress noise) w...
    2a4b789609692987d939d5e5b57cd84e.png据平日学习内容推断,本以为会用一道简单而无脑的算法题结束一学期的学习。不曾想乍一看却毫无头绪,虽说仔细研究后发现其实并不难,在这里记录一下思考和解决过程。
    首先我们要了解一下什么叫均值滤波和中值滤波,在这里摘录两段题目中给出的介绍。

    (a) Local averaging is a common method to denoise images (i.e. suppress noise) where a small square neighbourhood of odd size (e.g. 3x3, 5x5) around each pixel from the noisy image is taken and the average of this neighbourhood is computed. A new ‘denoised’ image is then formed where each pixel is the average from the local neighbourhood of the corresponding pixel in the noisy image.

    (b) Median filtering is an alternate method to denoise images where a  small square neighbourhood of odd size (e.g. 3x3, 5x5) around each pixel from the noisy image is taken and the median value of this neighbourhood is computed. A new ‘denoised’ image is then formed where each pixel is the median from the local neighbourhood of the corresponding pixel in the noisy image.

    倘若未曾接触过图像处理,乍一看可能你也跟我一样毫无头绪。在写程序的过程中,我习惯遵循一个解决问题的方法,即提出问题,解决问题,遇到困难,针对性学习。
    在这道题目中,我们要解决的第一个问题是matplotlib是如何处理图像数据的。根据我最初的构想,因为有RGB三个通道,图像数据应该由一个三维矩阵构成,形状类似于这样。78fc71885af0480904578c7babb2ec66.png但在实际读取的时候,我只得到了一个二维矩阵。dc5e6baa86fff64057549a0af7fe29a7.png因为没有接触过图像运算,在这里纠结了蛮久也不清楚是什么原因,最后到Stackoverflow问了一下。aeebf8aa328dc758f335ca97037e8c8e.png2593c3513ac2aa1ec78bfc8559b063d4.png原来我们作业中的位图是Grayscale Image,已经经过了灰度处理,所以成为了二维矩阵。而未经过灰度处理的图像结构和我推测的相似,是一个三位矩阵包含RGB三个通道。如果我们要处理RGB三通道的图像,进行简单的公式换算即可。公式如下:c61d84c8d3d2dd6ae409f80085ac8d7c.png第一个问题解决,下一步我希望确定这个Numpy数组的形状,以及它与这张图像之间的关系。首先我们看一下这个图片的基本信息。fa6b10323475392005100a6c50bd319d.png这是一个是一个308x242像素的图像,不出意外的话理论上应该是每个像素对应了一个灰度值,把这个数组的形状打印一下看看。bbb227e3c19bfaa39a5ca3a13ea678c7.png果然和猜测的相同,每一个灰度值代表了一个像素点。到这里,我们可以回到最初的问题,什么是均值滤波和中值滤波。其实那段话已经解释的比较明确,均值和中值都是指代像素值。由此可见,我们只要对每个像素点周边的3x3或者5x5的像素进行分析,然后重新生成一个降噪后的图像即可。8ad4f788acc11ee65a86e27bafcd0833.png使用一个四层的循环嵌套,其中的高度和宽度为数组形状,point_y与point_x指代filter size定义的需要均值或中值的像素点规模,减去filter size的目的是防止到达图片边界时超出范围引起数组溢出。最后根据中值和均值的定义进行计算即可,在这里以中值为例,首先对获取到的周边像素点进行排序,随后选择中间值为新图像的灰度值,赋予新的图像数组即可。838ba4dfdd2906b764bba412051441d5.png至此,一个基于中值滤波和均值滤波的降噪算法完成,这个只考虑了灰度图,所以其实并不具有普适性,也并不算难,只是涉及了一些图像处理的基础。最后来一个降噪前与降噪后对比的效果图。1146e65f5d3373f7ff5ebad304ef8172.png
    List of ReferencesHuang, T., G. J. T. G. Y. Yang, and Greory Tang. "A fast two-dimensional median filtering algorithm." IEEE Transactions on Acoustics, Speech, and Signal Processing 27.1 (1979): 13-18.Median filter [Online] https://en.wikipedia.org/wiki/Median_filter [14 May 2020]
    展开全文
  • 计算loss的时候,最常见的一句话就是tf.nn.softmax_cross_entropy_with_logits,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化的值 tf.nn.softmax_cross_entropy_with_logits...

    在计算loss的时候,最常见的一句话就是tf.nn.softmax_cross_entropy_with_logits,那么它到底是怎么做的呢?

    首先明确一点,loss是代价值,也就是我们要最小化的值

    tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None)

    除去name参数用以指定该操作的name,与方法有关的一共两个参数:

    第一个参数logits:就是神经网络最后一层的输出,如果有batch的话,它的大小就是[batchsize,num_classes],单样本的话,大小就是num_classes

    第二个参数labels:实际的标签,大小同上

    具体的执行流程大概分为两步:

    第一步是先对网络最后一层的输出做一个softmax,这一步通常是求取输出属于某一类的概率,对于单样本而言,输出就是一个num_classes大小的向量([Y1,Y2,Y3...]其中Y1,Y2,Y3...分别代表了是属于该类的概率)

    softmax的公式是:

    至于为什么是用的这个公式?这里不介绍了,涉及到比较多的理论证明

    第二步是softmax的输出向量[Y1,Y2,Y3...]和样本的实际标签做一个交叉熵,公式如下:

    其中

    指代实际的标签中第i个的值(用mnist数据举例,如果是3,那么标签是[0,0,0,1,0,0,0,0,0,0],除了第4个值为1,其他全为0)

    y_i 就是softmax的输出向量[Y1,Y2,Y3...]中,第i个元素的值

    显而易见,预测越准确,结果的值越小(别忘了前面还有负号),最后求一个平均,得到我们想要的loss

    注意!!!这个函数的返回值并不是一个数,而是一个向量!!!

    如果要求交叉熵,我们要再做一步tf.reduce_sum操作,就是对向量里面所有元素求和,最后才得到

    如果求loss,则要做一步tf.reduce_mean操作,对向量求均值!

    def _compute_loss_graph(self): 
            # 计算损失
          
            # 注意下面的函数的返回值并不是一个数,而是一个向量
            # 如果要求交叉熵,我们要再做一步tf.reduce_sum操作, 就是对向量里面所有元素求和
            # 如果求loss,则要做一步tf.reduce_mean操作,对向量求均值!
            softmax_cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=self.pre, labels=self.input_labels,name='softmax_cross_entropy')  # logits概率变换
            # 求均值
            self.loss = tf.reduce_mean(softmax_cross_entropy)
            self.train_op = tf.train.AdamOptimizer(self.lr).minimize(self.loss)

     

    展开全文
  • 图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。 那么这个均值怎么来的呢,...caffe中使用的均值数据格式是binaryproto, 作者为我们提供了一个计算均值的文件compute_
  • 1. 计算均值 在进行深度学习网络训练的时候,为了提升训练的精度等,需要数据集的均值,那么该均值文件是怎么来的呢?这是通过安装caffe完成之后tools目录下的compute_image_mean实现的。调用它去计算数据集的均值...
  • 图片减去均值后,再进行训练和测试,...那么这个均值怎么来的呢,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值来相减,而不需要对测试图片重新计算
  • 图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。 那么这个均值怎么来的呢,实际上...caffe中使用的均值数据格式是binaryproto, 作者为我们提供了一个计算均值的文件co
  • 前言 图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。 那么这个均值怎么来的呢...caffe中使用的均值数据格式是binaryproto, 作者为我们提供了一个计算均值的文件co...
  • 图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。 那么这个均值怎么来的呢...caffe中使用的均值数据格式是binaryproto, 作者为我们提供了一个计算均值的文件compute_...
  • 图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个...一、二进制格式的均值计算caffe中使用的均值数据格式是binaryproto, 作者为我们提供了一个计算均值的文件compute_image...
  • 什么是协方差,怎么计算?为什么需要协方差?

    万次阅读 多人点赞 2017-05-25 15:34:23
    # 均值,方差和标准差 学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该...
  • 图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。 那么这个均值怎么来的呢,...caffe中使用的均值数据格式是binaryproto, 作者为我们提供了一个计算均值的文件compute...
  • 不多说 上代码解释 self.train_x_set = self.train_x_set / 255. mean = 0 std = 0 for x in self.train_x_set: mean += np.mean(x[0, :, :]) mean /= len(self.train_x_set) self.train_x_set -= mean ...
  • 那我们怎么才能知道这三种策略效果哪个好呢?我们不可能让所有用户体验不同策略,最简单的方法就是做一个实验,我们可以随机挑选一部分用户,然后把这些用户分成三组A、B、C组,A组用户使用A策略、B组用户使用B策略...
  • import numpy as np import cv2 import random import os import glob # calculate means and std train_txt_path = '/home/tupeng/DL/Classifier/temporal-segment-network-pytorch/list/tube_rgb_train_split.tx....
  • Python 实训 1 计算 iris 数据值的均值

    千次阅读 多人点赞 2020-04-25 01:28:19
    又得到徒弟的求救,让我帮他做作业,现在的大学生到底是怎么了??? Python这门课,学起来挺有意思的,自己咋不学着敲代码呢?老是来让我帮 你写,那就再写一次吧,帮你写个作业没问题,看完答案给个赞啊要记得! ...
  • 要想搞清楚什么是离均差、方差、均方差和协方差,得先从均值这个概念开始。哪怕是数学再不好的人,也应该知道算术平均数是怎么回事吧。以标准普尔500指数为例,在2018年9月10日至9月21日期间共有10个交易日,自然也...
  • ![图片说明](https://img-ask.csdn.net/upload/201901/08/1546939079_875564.png) 现在的代码只适合x是Series的情况,如果x是dataframe(如图)怎么改呢?
  • 今天来讲对比过程中的数值计算方式评估业务的好坏框架如下以消费金额来举例进行说明数值计算常用的方式均值汇总均值定义以日均值来说,比如有day1 day2..dayn是n日的消费金额,则n日消费金额均值=(day1+day2+...+...
  • R语言入门小白,请问这个语句要怎么实现?...从指数分布中抽取10个独立样本,平均值为5,并计算样本均值。我们复制上述程序200次。 我自己打的是这样: x=rexp(10,1/5) mean(x) rep(x, 200) 请问要如何改正呢?
  • 由于移动设备特别像android开发的流行。其中一个特定方向或者领域就是gps位置服务相关的开发。以arcgis android环境为例 ...精度可能在2米 5米 10米等范围浮动,但是对于这些设备,我们很难提高它的精度怎么

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 194
精华内容 77
关键字:

怎么计算均值