summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorEvan Shelhamer <shelhamer@imaginarynumber.net>2014-05-13 18:53:36 -0700
committerEvan Shelhamer <shelhamer@imaginarynumber.net>2014-05-14 13:44:02 -0700
commit56ca978c4e14740d76cdadd5bccc019edbc6d235 (patch)
tree0612d10f195c90bc634c801f4caeb180a2dd8c3d /python
parent872ddf3f812e4c12a9a3137e57c61ad70c836992 (diff)
downloadcaffe-56ca978c4e14740d76cdadd5bccc019edbc6d235.tar.gz
caffe-56ca978c4e14740d76cdadd5bccc019edbc6d235.tar.bz2
caffe-56ca978c4e14740d76cdadd5bccc019edbc6d235.zip
expose input and output blob names to python as lists
Diffstat (limited to 'python')
-rw-r--r--python/caffe/_caffe.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/python/caffe/_caffe.cpp b/python/caffe/_caffe.cpp
index bd2b2817..e1ee652b 100644
--- a/python/caffe/_caffe.cpp
+++ b/python/caffe/_caffe.cpp
@@ -350,6 +350,24 @@ struct CaffeNet {
return result;
}
+ list inputs() {
+ list input_blob_names;
+ for (vector<int>::iterator it = net_->input_blob_indices().begin();
+ it != net_->input_blob_indices().end(); ++it) {
+ input_blob_names.append(net_->blob_names()[*it]);
+ }
+ return input_blob_names;
+ }
+
+ list outputs() {
+ list output_blob_names;
+ for (vector<int>::iterator it = net_->output_blob_indices().begin();
+ it != net_->output_blob_indices().end(); ++it) {
+ output_blob_names.append(net_->blob_names()[*it]);
+ }
+ return output_blob_names;
+ }
+
// The pointer to the internal caffe::Net instant.
shared_ptr<Net<float> > net_;
// if taking input from an ndarray, we need to hold references
@@ -399,6 +417,8 @@ BOOST_PYTHON_MODULE(_caffe) {
.def("set_device", &CaffeNet::set_device)
.add_property("_blobs", &CaffeNet::blobs)
.add_property("layers", &CaffeNet::layers)
+ .add_property("inputs", &CaffeNet::inputs)
+ .add_property("outputs", &CaffeNet::outputs)
.def("_set_input_arrays", &CaffeNet::set_input_arrays);
boost::python::class_<CaffeBlob, CaffeBlobWrap>(