summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/caffe/_caffe.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/python/caffe/_caffe.cpp b/python/caffe/_caffe.cpp
index 0e6bac26..a443f897 100644
--- a/python/caffe/_caffe.cpp
+++ b/python/caffe/_caffe.cpp
@@ -134,17 +134,28 @@ class CaffeLayer {
// A simple wrapper over CaffeNet that runs the forward process.
struct CaffeNet {
+ // For cases where parameters will be determined later by the Python user,
+ // create a Net with unallocated parameters (which will not be zero-filled
+ // when accessed).
+ explicit CaffeNet(string param_file) {
+ Init(param_file);
+ }
+
CaffeNet(string param_file, string pretrained_param_file) {
- CheckFile(param_file);
+ Init(param_file);
CheckFile(pretrained_param_file);
-
- net_.reset(new Net<float>(param_file));
net_->CopyTrainedLayersFrom(pretrained_param_file);
}
explicit CaffeNet(shared_ptr<Net<float> > net)
: net_(net) {}
+ void Init(string param_file) {
+ CheckFile(param_file);
+ net_.reset(new Net<float>(param_file));
+ }
+
+
virtual ~CaffeNet() {}
inline void check_array_against_blob(
@@ -308,6 +319,7 @@ class CaffeSGDSolver {
BOOST_PYTHON_MODULE(_caffe) {
boost::python::class_<CaffeNet>(
"Net", boost::python::init<string, string>())
+ .def(boost::python::init<string>())
.def("Forward", &CaffeNet::Forward)
.def("ForwardPrefilled", &CaffeNet::ForwardPrefilled)
.def("Backward", &CaffeNet::Backward)