diff --git a/src/caffe/blob.hpp b/src/caffe/blob.hpp
index 57ced661c33733948ea6717f2a36f738bd187a79..f31d3b0f693c7b3f3a60412e390b7f0be3064b32 100644 (file)
--- a/src/caffe/blob.hpp
+++ b/src/caffe/blob.hpp
+// Copyright 2013 Yangqing Jia
+
#ifndef CAFFE_BLOB_HPP_
#define CAFFE_BLOB_HPP_
#include "caffe/common.hpp"
#include "caffe/syncedmem.hpp"
-#include "caffe/proto/layer_param.pb.h"
+#include "caffe/proto/caffe.pb.h"
namespace caffe {
public:
Blob()
: num_(0), channels_(0), height_(0), width_(0), count_(0), data_(),
- diff_() {};
+ diff_() {}
explicit Blob(const int num, const int channels, const int height,
const int width);
- Blob(const Blob<Dtype>& source);
- virtual ~Blob() {};
+ virtual ~Blob() {}
void Reshape(const int num, const int height,
const int width, const int channels);
inline int num() const { return num_; }
const int w = 0) const {
return ((n * channels_ + c) * height_ + h) * width_ + w;
}
+ // Copy from source. If copy_diff is false, we copy the data; if copy_diff
+ // is true, we copy the diff.
+ void CopyFrom(const Blob<Dtype>& source, bool copy_diff = false,
+ bool reshape = false);
inline Dtype data_at(const int n, const int c, const int h,
const int w) const {
Dtype* mutable_gpu_diff();
void Update();
void FromProto(const BlobProto& proto);
- void ToProto(BlobProto* proto);
+ void ToProto(BlobProto* proto, bool write_diff = false) const;
- private:
+ protected:
shared_ptr<SyncedMemory> data_;
shared_ptr<SyncedMemory> diff_;
int num_;
int height_;
int width_;
int count_;
+
+ DISABLE_COPY_AND_ASSIGN(Blob);
}; // class Blob
} // namespace caffe