[pycaffe] re-expose Layer
authorJonathan L Long <jonlong@cs.berkeley.edu>
Tue, 6 Jan 2015 05:16:51 +0000 (21:16 -0800)
committerJonathan L Long <jonlong@cs.berkeley.edu>
Tue, 17 Feb 2015 06:46:13 +0000 (22:46 -0800)
python/caffe/__init__.py
python/caffe/_caffe.cpp

index acdfc07..9f0e12c 100644 (file)
@@ -1,6 +1,6 @@
 from .pycaffe import Net, SGDSolver
 from ._caffe import set_mode_cpu, set_mode_gpu, set_device, \
-    set_phase_train, set_phase_test
+    set_phase_train, set_phase_test, Layer
 from .classifier import Classifier
 from .detector import Detector
 import io
index c545a74..135178f 100644 (file)
@@ -207,6 +207,15 @@ BOOST_PYTHON_MODULE(_caffe) {
     .add_property("diff",     bp::make_function(&Blob<Dtype>::mutable_cpu_diff,
           NdarrayCallPolicies()));
 
+  bp::class_<Layer<Dtype>, shared_ptr<Layer<Dtype> >, boost::noncopyable>(
+    "Layer", bp::no_init)
+    .add_property("blobs", bp::make_function(&Layer<Dtype>::blobs,
+          bp::return_internal_reference<>()))
+    .def("setup", &Layer<Dtype>::LayerSetUp)
+    .def("reshape", &Layer<Dtype>::Reshape)
+    .add_property("type_name", bp::make_function(&Layer<Dtype>::type_name,
+        bp::return_value_policy<bp::copy_const_reference>()));
+
   // vector wrappers for all the vector types we use
   bp::class_<vector<shared_ptr<Blob<Dtype> > > >("BlobVec")
     .def(bp::vector_indexing_suite<vector<shared_ptr<Blob<Dtype> > >, true>());