summaryrefslogtreecommitdiff
path: root/tools/compute_image_mean.cpp
diff options
context:
space:
mode:
authorlinmin <mavenlin@gmail.com>2014-02-20 13:44:14 +0800
committerEvan Shelhamer <shelhamer@imaginarynumber.net>2014-03-10 18:31:13 -0700
commit53db54aa25eaef96200cff8240d19c8bc702b6f8 (patch)
tree7814062ee637c5cfdc8928380b8a06a3998be25c /tools/compute_image_mean.cpp
parent32fb3337a9bfc3f847d133e0ee0edf5f2e64711b (diff)
downloadcaffeonacl-53db54aa25eaef96200cff8240d19c8bc702b6f8.tar.gz
caffeonacl-53db54aa25eaef96200cff8240d19c8bc702b6f8.tar.bz2
caffeonacl-53db54aa25eaef96200cff8240d19c8bc702b6f8.zip
compute data mean for float_data
Diffstat (limited to 'tools/compute_image_mean.cpp')
-rw-r--r--tools/compute_image_mean.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/compute_image_mean.cpp b/tools/compute_image_mean.cpp
index 65ff538f..771f5dc7 100644
--- a/tools/compute_image_mean.cpp
+++ b/tools/compute_image_mean.cpp
@@ -10,6 +10,7 @@
using caffe::Datum;
using caffe::BlobProto;
+using std::max;
int main(int argc, char** argv) {
::google::InitGoogleLogging(argv[0]);
@@ -40,7 +41,8 @@ int main(int argc, char** argv) {
sum_blob.set_height(datum.height());
sum_blob.set_width(datum.width());
const int data_size = datum.channels() * datum.height() * datum.width();
- for (int i = 0; i < datum.data().size(); ++i) {
+ int size_in_datum = std::max<int>(datum.data().size(), datum.float_data_size());
+ for (int i = 0; i < size_in_datum; ++i) {
sum_blob.add_data(0.);
}
LOG(INFO) << "Starting Iteration";
@@ -48,10 +50,15 @@ int main(int argc, char** argv) {
// just a dummy operation
datum.ParseFromString(it->value().ToString());
const string& data = datum.data();
- CHECK_EQ(data.size(), data_size) << "Incorrect data field size "
+ size_in_datum = std::max<int>(datum.data().size(), datum.float_data_size());
+ CHECK_EQ(size_in_datum, data_size) << "Incorrect data field size " << size_in_datum;
<< data.size();
- for (int i = 0; i < data.size(); ++i) {
- sum_blob.set_data(i, sum_blob.data(i) + (uint8_t)data[i]);
+ for (int i = 0; i < size_in_datum; ++i) {
+ if (data.size() != 0) {
+ sum_blob.set_data(i, sum_blob.data(i) + (uint8_t)data[i]);
+ } else {
+ sum_blob.set_data(i, sum_blob.data(i) + (float)datum.float_data(i));
+ }
}
++count;
if (count % 10000 == 0) {