Caffe的输入数据归一化

据我所知,如果我想将数据从[0, 255]归一化到[0, 1),可以在prototxt文件的transform_param中传递一个scale参数:0.00390625。然而,如果我想在prototxt级别将数据归一化到[-0.5, 0.5](以获得0均值分布),该怎么做呢?

假设我的train_val.prototxt文件如下所示:

transform_param {  mirror: true  crop_size: 227  scale: 0.00390625  mean_file: "some_mean_file.binaryproto"

从数学角度来看,我认为它看起来像下面这样:

 normalized value = (input pixel value / 255) - 0.5  

但我不知道如何将其映射到transform_param的scale值,因为scale值没有负值(符号值)的概念。或许,Caffe有不同的机制来实现这一点(而不是通过scale操作)。

从我在Udacity的深度学习讲座中获得的理解,它提到始终将输入归一化以获得0均值是一种好的做法。我可以放宽这种指导吗?如果我忽略它,会有什么显著影响吗?


回答:

查看caffe.proto中关于TransformationParameter的注释

// 对于数据预处理,我们可以进行简单的缩放和减去数据均值,如果提供了的话。请注意,均值减法总是先于缩放进行。

均值减法是在缩放之前进行的,因此,在减去mean_file之后,您的数据大约在[-128, 128]范围内。将其缩放1/256,您就完成了,您的数据应该大致在[-0.5, 0.5]范围内。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注