summaryrefslogtreecommitdiff
path: root/python/caffe/pycaffe.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/caffe/pycaffe.py')
-rw-r--r--python/caffe/pycaffe.py74
1 files changed, 34 insertions, 40 deletions
diff --git a/python/caffe/pycaffe.py b/python/caffe/pycaffe.py
index 8a9e1aab..537e737b 100644
--- a/python/caffe/pycaffe.py
+++ b/python/caffe/pycaffe.py
@@ -238,9 +238,9 @@ def _Net_set_channel_swap(self, input_, order):
self.channel_swap[input_] = order
-def _Net_preprocess(self, input_name, inputs):
+def _Net_preprocess(self, input_name, input_):
"""
- Format inputs for Caffe:
+ Format input for Caffe:
- convert to single
- resize to input dimensions (preserving number of channels)
- scale feature
@@ -249,51 +249,45 @@ def _Net_preprocess(self, input_name, inputs):
- transpose dimensions to K x H x W
Take
- input_name: name of input blob
- inputs: list of (H' x W' x K) ndarray
+ input_name: name of input blob to preprocess for
+ input_: (H' x W' x K) ndarray
Give
caffe_inputs: (K x H x W) ndarray
"""
- caffe_inputs = []
- for in_ in inputs:
- caffe_in = in_.astype(np.float32)
- input_scale = self.input_scale.get(input_name)
- channel_order = self.channel_swap.get(input_name)
- mean = self.mean.get(input_name)
- in_size = self.blobs[input_name].data.shape[2:]
- if caffe_in.shape[:2] != in_size:
- caffe_in = caffe.io.resize_image(caffe_in, in_size)
- if input_scale:
- caffe_in *= input_scale
- if channel_order:
- caffe_in = caffe_in[:, :, channel_order]
- caffe_in = caffe_in.transpose((2, 0, 1))
- if mean is not None:
- caffe_in -= mean
- caffe_inputs.append(caffe_in)
- return np.asarray(caffe_inputs)
-
-
-def _Net_deprocess(self, input_name, inputs):
+ caffe_in = input_.astype(np.float32)
+ input_scale = self.input_scale.get(input_name)
+ channel_order = self.channel_swap.get(input_name)
+ mean = self.mean.get(input_name)
+ in_size = self.blobs[input_name].data.shape[2:]
+ if caffe_in.shape[:2] != in_size:
+ caffe_in = caffe.io.resize_image(caffe_in, in_size)
+ if input_scale:
+ caffe_in *= input_scale
+ if channel_order:
+ caffe_in = caffe_in[:, :, channel_order]
+ caffe_in = caffe_in.transpose((2, 0, 1))
+ if mean is not None:
+ caffe_in -= mean
+ return caffe_in
+
+
+def _Net_deprocess(self, input_name, input_):
"""
Invert Caffe formatting; see Net.preprocess().
"""
- decaf_inputs = []
- for in_ in inputs:
- decaf_in = in_.squeeze()
- input_scale = self.input_scale.get(input_name)
- channel_order = self.channel_swap.get(input_name)
- mean = self.mean.get(input_name)
- if mean is not None:
- decaf_in += mean
- decaf_in = decaf_in.transpose((1,2,0))
- if channel_order:
- decaf_in = decaf_in[:, :, channel_order[::-1]]
- if input_scale:
- decaf_in /= input_scale
- decaf_inputs.append(decaf_in)
- return np.asarray(decaf_inputs)
+ decaf_in = input_.copy().squeeze()
+ input_scale = self.input_scale.get(input_name)
+ channel_order = self.channel_swap.get(input_name)
+ mean = self.mean.get(input_name)
+ if mean is not None:
+ decaf_in += mean
+ decaf_in = decaf_in.transpose((1,2,0))
+ if channel_order:
+ decaf_in = decaf_in[:, :, channel_order[::-1]]
+ if input_scale:
+ decaf_in /= input_scale
+ return decaf_in
def _Net_set_input_arrays(self, data, labels):