计算用于咖啡分类的HDF5数据集的平均值

问题描述 投票:0回答:1

我使用classification.cpp根据caffe神经网络工具箱中训练有素的网络对我的图像进行分类。该文件有一些参数如下:

1-model_file
2-trained_file
3-mean_file
4-label_file
5-test_file

mean_filecaffe-master/build/tools/compute_image_mean计算。

现在我创建了一个HDF5数据集并训练了一个网络。所以我有1,2,4,5个参数,但我不知道如何计算mean_file。解决办法是什么?

c++ neural-network caffe
1个回答
0
投票

目前,mean_file是使用LEVELDB或LMDB数据库中的compute_image_mean计算的,不支持HDF5。您可以使用python脚本计算均值,因为hdf5对python非常友好,然后将其保存到.binaryproto文件。

更简单的方法是你可以修改classification.cpp并减去(104,117,124)mean_value,它应该与模型prototxt文件中的mean_value相同。例如,您可以添加如下函数:

void Classifier::SetMean(const vector<float> &mean_values) {
   cv::Scalar channel_mean(0);
   double *ptr = &channel_mean[0];
   for (int i = 0; i < num_channels_; ++i) {
       ptr[i] = mean_values[i];
   }
   mean_ = cv::Mat(input_geometry_, (num_channels_ == 3 ? CV_32FC3 : CV_32FC1),channel_mean);
}

然后你可以用向量mean_values(104,117,124)设置均值。

© www.soinside.com 2019 - 2024. All rights reserved.