caffe例程-RCNN-detectio.ipynb

下文简述caffe example下的detectio.ipynb的流程和几个错误及其解决办法:

1.在命令行中打开ipython notebook,而不要使用PyChram。在编译这个例程时,后者会有莫名其妙的错误:

Traceback (most recent call last):
  File "../python/detect.py", line 173, in <module>
    main(sys.argv)
  File "../python/detect.py", line 144, in main
    detections = detector.detect_selective_search(inputs)
  File "/home/ljj/deep_learning/caffe-master/python/caffe/detector.py", line 120, in detect_selective_search
    cmd='selective_search_rcnn'
  File "/home/ljj/deep_learning/caffe-master/python/selective_search_ijcv_with_python/selective_search.py", line 36, in get_windows
    shlex.split(mc), stdout=open('/dev/null', 'w'), cwd=script_dirname)
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory


2.将https://github.com/sergeyk/selective_search_ijcv_with_python下载并解压到/home/ljj/deep_learning/caffe-master/python,并重命名为selective_search_ijcv_with_python。

3.打开matlab,运行其中的demo.m

4.为matlab添加PATH,使得可以在terminal中输入matlab,就能打开matlab,具体方法见我的另一篇博客

5.使用python2.7-anaconda

6.在完成上述以后,在ipython botebook中运行时,应当还是会报出几个错误,此时根据错误信息修改/home/ljj/deep_learning/caffe-master/python/caffe/detector.py如下(其实就是加了几个int(),使得slice中float转换为int)

#!/usr/bin/env python
"""
Do windowed detection by classifying a number of images/crops at once,
optionally using the selective search window proposal method.

This implementation follows ideas in
    Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik.
    Rich feature hierarchies for accurate object detection and semantic
    segmentation.
    http://arxiv.org/abs/1311.2524

The selective_search_ijcv_with_python code required for the selective search
proposal mode is available at
    https://github.com/sergeyk/selective_search_ijcv_with_python
"""
import numpy as np
import os

import caffe


class Detector(caffe.Net):
    """
    Detector extends Net for windowed detection by a list of crops or
    selective search proposals.

    Parameters
    ----------
    mean, input_scale, raw_scale, channel_swap : params for preprocessing
        options.
    context_pad : amount of surrounding context to take s.t. a `context_pad`
        sized border of pixels in the network input image is context, as in
        R-CNN feature extraction.
    """
    def __init__(self, model_file, pretrained_file, mean=None,
                 input_scale=None, raw_scale=None, channel_swap=None,
                 context_pad=None):
        caffe.Net.__init__(self, model_file, pretrained_file, caffe.TEST)

        # configure pre-processing
        in_ = self.inputs[0]
        self.transformer = caffe.io.Transformer(
            {in_: self.blobs[in_].data.shape})
        self.transformer.set_transpose(in_, (2, 0, 1))
        if mean is not None:
            self.transformer.set_mean(in_, mean)
        if input_scale is not None:
            self.transformer.set_input_scale(in_, input_scale)
        if raw_scale is not None:
            self.transformer.set_raw_scale(in_, raw_scale)
        if channel_swap is not None:
            self.transformer.set_channel_swap(in_, channel_swap)

        self.configure_crop(context_pad)

    def detect_windows(self, images_windows):
        """
        Do windowed detection over given images and windows. Windows are
        extracted then warped to the input dimensions of the net.

        Parameters
        ----------
        images_windows: (image filename, window list) iterable.
        context_crop: size of context border to crop in pixels.

        Returns
        -------
        detections: list of {filename: image filename, window: crop coordinates,
            predictions: prediction vector} dicts.
        """
        # Extract windows.
        window_inputs = []
        for image_fname, windows in images_windows:
            image = caffe.io.load_image(image_fname).astype(np.float32)
            for window in windows:
                window_inputs.append(self.crop(image, window))

        # Run through the net (warping windows to input dimensions).
        in_ = self.inputs[0]
        caffe_in = np.zeros((len(window_inputs), window_inputs[0].shape[2])
                            + self.blobs[in_].data.shape[2:],
                            dtype=np.float32)
        for ix, window_in in enumerate(window_inputs):
            caffe_in[ix] = self.transformer.preprocess(in_, window_in)
        out = self.forward_all(**{in_: caffe_in})
        predictions = out[self.outputs[0]]     #origin

        # Package predictions with images and windows.
        detections = []
        ix = 0
        for image_fname, windows in images_windows:
            for window in windows:
                detections.append({
                    'window': window,
                    'prediction': predictions[ix],
                    'filename': image_fname
                })
                ix += 1
        return detections

    def detect_selective_search(self, image_fnames):
        """
        Do windowed detection over Selective Search proposals by extracting
        the crop and warping to the input dimensions of the net.

        Parameters
        ----------
        image_fnames: list

        Returns
        -------
        detections: list of {filename: image filename, window: crop coordinates,
            predictions: prediction vector} dicts.
        """
        import selective_search_ijcv_with_python as selective_search
        # Make absolute paths so MATLAB can find the files.
        image_fnames = [os.path.abspath(f) for f in image_fnames]
        windows_list = selective_search.get_windows(
            image_fnames,
            cmd='selective_search_rcnn'
        )
        # Run windowed detection on the selective search list.
        return self.detect_windows(zip(image_fnames, windows_list))

    def crop(self, im, window):
        """
        Crop a window from the image for detection. Include surrounding context
        according to the `context_pad` configuration.

        Parameters
        ----------
        im: H x W x K image ndarray to crop.
        window: bounding box coordinates as ymin, xmin, ymax, xmax.

        Returns
        -------
        crop: cropped window.
        """
        # Crop window from the image.
        crop = im[int(window[0]):int(window[2]), int(window[1]):int(window[3])]

        if self.context_pad:
            box = window.copy()
            crop_size = self.blobs[self.inputs[0]].width  # assumes square
            scale = crop_size / (1. * crop_size - self.context_pad * 2)
            # Crop a box + surrounding context.
            half_h = (box[2] - box[0] + 1) / 2.
            half_w = (box[3] - box[1] + 1) / 2.
            center = (box[0] + half_h, box[1] + half_w)
            scaled_dims = scale * np.array((-half_h, -half_w, half_h, half_w))
            box = np.round(np.tile(center, 2) + scaled_dims)
            full_h = box[2] - box[0] + 1
            full_w = box[3] - box[1] + 1
            scale_h = crop_size / full_h
            scale_w = crop_size / full_w
            pad_y = round(max(0, -box[0]) * scale_h)  # amount out-of-bounds
            pad_x = round(max(0, -box[1]) * scale_w)

            # Clip box to image dimensions.
            im_h, im_w = im.shape[:2]
            box = np.clip(box, 0., [im_h, im_w, im_h, im_w])
            clip_h = box[2] - box[0] + 1
            clip_w = box[3] - box[1] + 1
            assert(clip_h > 0 and clip_w > 0)
            crop_h = round(clip_h * scale_h)
            crop_w = round(clip_w * scale_w)
            if pad_y + crop_h > crop_size:
                crop_h = crop_size - pad_y
            if pad_x + crop_w > crop_size:
                crop_w = crop_size - pad_x

            # collect with context padding and place in input
            # with mean padding
            context_crop = im[int(box[0]):int(box[2]), int(box[1]):int(box[3])]
            context_crop = caffe.io.resize_image(context_crop, (crop_h, crop_w))
            crop = np.ones(self.crop_dims, dtype=np.float32) * self.crop_mean
            crop[int(pad_y):int(pad_y + crop_h), int(pad_x):int(pad_x + crop_w)] = context_crop

        return crop

    def configure_crop(self, context_pad):
        """
        Configure crop dimensions and amount of context for cropping.
        If context is included, make the special input mean for context padding.

        Parameters
        ----------
        context_pad : amount of context for cropping.
        """
        # crop dimensions
        in_ = self.inputs[0]
        tpose = self.transformer.transpose[in_]
        inv_tpose = [tpose[t] for t in tpose]
        self.crop_dims = np.array(self.blobs[in_].data.shape[1:])[inv_tpose]
        #.transpose(inv_tpose)
        # context padding
        self.context_pad = context_pad
        if self.context_pad:
            in_ = self.inputs[0]
            transpose = self.transformer.transpose.get(in_)
            channel_order = self.transformer.channel_swap.get(in_)
            raw_scale = self.transformer.raw_scale.get(in_)
            # Padding context crops needs the mean in unprocessed input space.
            mean = self.transformer.mean.get(in_)
            if mean is not None:
                inv_transpose = [transpose[t] for t in transpose]
                crop_mean = mean.copy().transpose(inv_transpose)
                if channel_order is not None:
                    channel_order_inverse = [channel_order.index(i)
                                             for i in range(crop_mean.shape[2])]
                    crop_mean = crop_mean[:, :, channel_order_inverse]
                if raw_scale is not None:
                    crop_mean /= raw_scale
                self.crop_mean = crop_mean
            else:
                self.crop_mean = np.zeros(self.crop_dims, dtype=np.float32)
7.此时,再运行detection.ipynb,应当一切正常,信息如下:

GPU mode
WARNING: Logging before InitGoogleLogging() is written to STDERR
W0710 15:26:55.556707  9306 _caffe.cpp:135] DEPRECATION WARNING - deprecated use of Python interface
W0710 15:26:55.556727  9306 _caffe.cpp:136] Use this instead (with the named "weights" parameter):
W0710 15:26:55.556730  9306 _caffe.cpp:138] Net('../models/bvlc_reference_rcnn_ilsvrc13/deploy.prototxt', 1, weights='../models/bvlc_reference_rcnn_ilsvrc13/bvlc_reference_rcnn_ilsvrc13.caffemodel')
I0710 15:26:55.557760  9306 net.cpp:51] Initializing net from parameters: 
name: "R-CNN-ilsvrc13"
state {
  phase: TEST
  level: 0
}
layer {
  name: "data"
  type: "Input"
  top: "data"
  input_param {
    shape {
      dim: 10
      dim: 3
      dim: 227
      dim: 227
    }
  }
}
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  convolution_param {
    num_output: 96
    kernel_size: 11
    stride: 4
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "conv1"
  top: "conv1"
}
layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 3
    stride: 2
  }
}
layer {
  name: "norm1"
  type: "LRN"
  bottom: "pool1"
  top: "norm1"
  lrn_param {
    local_size: 5
    alpha: 0.0001
    beta: 0.75
  }
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "norm1"
  top: "conv2"
  convolution_param {
    num_output: 256
    pad: 2
    kernel_size: 5
    group: 2
  }
}
layer {
  name: "relu2"
  type: "ReLU"
  bottom: "conv2"
  top: "conv2"
}
layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
    pool: MAX
    kernel_size: 3
    stride: 2
  }
}
layer {
  name: "norm2"
  type: "LRN"
  bottom: "pool2"
  top: "norm2"
  lrn_param {
    local_size: 5
    alpha: 0.0001
    beta: 0.75
  }
}
layer {
  name: "conv3"
  type: "Convolution"
  bottom: "norm2"
  top: "conv3"
  convolution_param {
    num_output: 384
    pad: 1
    kernel_size: 3
  }
}
layer {
  name: "relu3"
  type: "ReLU"
  bottom: "conv3"
  top: "conv3"
}
layer {
  name: "conv4"
  type: "Convolution"
  bottom: "conv3"
  top: "conv4"
  convolution_param {
    num_output: 384
    pad: 1
    kernel_size: 3
    group: 2
  }
}
layer {
  name: "relu4"
  type: "ReLU"
  bottom: "conv4"
  top: "conv4"
}
layer {
  name: "conv5"
  type: "Convolution"
  bottom: "conv4"
  top: "conv5"
  convolution_param {
    num_output: 256
    pad: 1
    kernel_size: 3
    group: 2
  }
}
layer {
  name: "relu5"
  type: "ReLU"
  bottom: "conv5"
  top: "conv5"
}
layer {
  name: "pool5"
  type: "Pooling"
  bottom: "conv5"
  top: "pool5"
  pooling_param {
    pool: MAX
    kernel_size: 3
    stride: 2
  }
}
layer {
  name: "fc6"
  type: "InnerProduct"
  bottom: "pool5"
  top: "fc6"
  inner_product_param {
    num_output: 4096
  }
}
layer {
  name: "relu6"
  type: "ReLU"
  bottom: "fc6"
  top: "fc6"
}
layer {
  name: "drop6"
  type: "Dropout"
  bottom: "fc6"
  top: "fc6"
  dropout_param {
    dropout_ratio: 0.5
  }
}
layer {
  name: "fc7"
  type: "InnerProduct"
  bottom: "fc6"
  top: "fc7"
  inner_product_param {
    num_output: 4096
  }
}
layer {
  name: "relu7"
  type: "ReLU"
  bottom: "fc7"
  top: "fc7"
}
layer {
  name: "drop7"
  type: "Dropout"
  bottom: "fc7"
  top: "fc7"
  dropout_param {
    dropout_ratio: 0.5
  }
}
layer {
  name: "fc-rcnn"
  type: "InnerProduct"
  bottom: "fc7"
  top: "fc-rcnn"
  inner_product_param {
    num_output: 200
  }
}
I0710 15:26:55.557831  9306 layer_factory.hpp:77] Creating layer data
I0710 15:26:55.557837  9306 net.cpp:84] Creating Layer data
I0710 15:26:55.557840  9306 net.cpp:380] data -> data
I0710 15:26:55.564779  9306 net.cpp:122] Setting up data
I0710 15:26:55.564796  9306 net.cpp:129] Top shape: 10 3 227 227 (1545870)
I0710 15:26:55.564800  9306 net.cpp:137] Memory required for data: 6183480
I0710 15:26:55.564805  9306 layer_factory.hpp:77] Creating layer conv1
I0710 15:26:55.564812  9306 net.cpp:84] Creating Layer conv1
I0710 15:26:55.564815  9306 net.cpp:406] conv1 <- data
I0710 15:26:55.564820  9306 net.cpp:380] conv1 -> conv1
I0710 15:26:55.565482  9306 net.cpp:122] Setting up conv1
I0710 15:26:55.565491  9306 net.cpp:129] Top shape: 10 96 55 55 (2904000)
I0710 15:26:55.565493  9306 net.cpp:137] Memory required for data: 17799480
I0710 15:26:55.565501  9306 layer_factory.hpp:77] Creating layer relu1
I0710 15:26:55.565506  9306 net.cpp:84] Creating Layer relu1
I0710 15:26:55.565508  9306 net.cpp:406] relu1 <- conv1
I0710 15:26:55.565512  9306 net.cpp:367] relu1 -> conv1 (in-place)
I0710 15:26:55.565517  9306 net.cpp:122] Setting up relu1
I0710 15:26:55.565521  9306 net.cpp:129] Top shape: 10 96 55 55 (2904000)
I0710 15:26:55.565523  9306 net.cpp:137] Memory required for data: 29415480
I0710 15:26:55.565526  9306 layer_factory.hpp:77] Creating layer pool1
I0710 15:26:55.565531  9306 net.cpp:84] Creating Layer pool1
I0710 15:26:55.565533  9306 net.cpp:406] pool1 <- conv1
I0710 15:26:55.565536  9306 net.cpp:380] pool1 -> pool1
I0710 15:26:55.565560  9306 net.cpp:122] Setting up pool1
I0710 15:26:55.565565  9306 net.cpp:129] Top shape: 10 96 27 27 (699840)
I0710 15:26:55.565567  9306 net.cpp:137] Memory required for data: 32214840
I0710 15:26:55.565568  9306 layer_factory.hpp:77] Creating layer norm1
I0710 15:26:55.565574  9306 net.cpp:84] Creating Layer norm1
I0710 15:26:55.565577  9306 net.cpp:406] norm1 <- pool1
I0710 15:26:55.565579  9306 net.cpp:380] norm1 -> norm1
I0710 15:26:55.565599  9306 net.cpp:122] Setting up norm1
I0710 15:26:55.565609  9306 net.cpp:129] Top shape: 10 96 27 27 (699840)
I0710 15:26:55.565613  9306 net.cpp:137] Memory required for data: 35014200
I0710 15:26:55.565614  9306 layer_factory.hpp:77] Creating layer conv2
I0710 15:26:55.565619  9306 net.cpp:84] Creating Layer conv2
I0710 15:26:55.565621  9306 net.cpp:406] conv2 <- norm1
I0710 15:26:55.565624  9306 net.cpp:380] conv2 -> conv2
I0710 15:26:55.566407  9306 net.cpp:122] Setting up conv2
I0710 15:26:55.566416  9306 net.cpp:129] Top shape: 10 256 27 27 (1866240)
I0710 15:26:55.566417  9306 net.cpp:137] Memory required for data: 42479160
I0710 15:26:55.566423  9306 layer_factory.hpp:77] Creating layer relu2
I0710 15:26:55.566428  9306 net.cpp:84] Creating Layer relu2
I0710 15:26:55.566431  9306 net.cpp:406] relu2 <- conv2
I0710 15:26:55.566433  9306 net.cpp:367] relu2 -> conv2 (in-place)
I0710 15:26:55.566437  9306 net.cpp:122] Setting up relu2
I0710 15:26:55.566440  9306 net.cpp:129] Top shape: 10 256 27 27 (1866240)
I0710 15:26:55.566442  9306 net.cpp:137] Memory required for data: 49944120
I0710 15:26:55.566445  9306 layer_factory.hpp:77] Creating layer pool2
I0710 15:26:55.566449  9306 net.cpp:84] Creating Layer pool2
I0710 15:26:55.566452  9306 net.cpp:406] pool2 <- conv2
I0710 15:26:55.566455  9306 net.cpp:380] pool2 -> pool2
I0710 15:26:55.566478  9306 net.cpp:122] Setting up pool2
I0710 15:26:55.566483  9306 net.cpp:129] Top shape: 10 256 13 13 (432640)
I0710 15:26:55.566485  9306 net.cpp:137] Memory required for data: 51674680
I0710 15:26:55.566488  9306 layer_factory.hpp:77] Creating layer norm2
I0710 15:26:55.566493  9306 net.cpp:84] Creating Layer norm2
I0710 15:26:55.566496  9306 net.cpp:406] norm2 <- pool2
I0710 15:26:55.566500  9306 net.cpp:380] norm2 -> norm2
I0710 15:26:55.566519  9306 net.cpp:122] Setting up norm2
I0710 15:26:55.566524  9306 net.cpp:129] Top shape: 10 256 13 13 (432640)
I0710 15:26:55.566526  9306 net.cpp:137] Memory required for data: 53405240
I0710 15:26:55.566529  9306 layer_factory.hpp:77] Creating layer conv3
I0710 15:26:55.566535  9306 net.cpp:84] Creating Layer conv3
I0710 15:26:55.566537  9306 net.cpp:406] conv3 <- norm2
I0710 15:26:55.566542  9306 net.cpp:380] conv3 -> conv3
I0710 15:26:55.567703  9306 net.cpp:122] Setting up conv3
I0710 15:26:55.567713  9306 net.cpp:129] Top shape: 10 384 13 13 (648960)
I0710 15:26:55.567716  9306 net.cpp:137] Memory required for data: 56001080
I0710 15:26:55.567724  9306 layer_factory.hpp:77] Creating layer relu3
I0710 15:26:55.567728  9306 net.cpp:84] Creating Layer relu3
I0710 15:26:55.567731  9306 net.cpp:406] relu3 <- conv3
I0710 15:26:55.567736  9306 net.cpp:367] relu3 -> conv3 (in-place)
I0710 15:26:55.567741  9306 net.cpp:122] Setting up relu3
I0710 15:26:55.567744  9306 net.cpp:129] Top shape: 10 384 13 13 (648960)
I0710 15:26:55.567746  9306 net.cpp:137] Memory required for data: 58596920
I0710 15:26:55.567749  9306 layer_factory.hpp:77] Creating layer conv4
I0710 15:26:55.567754  9306 net.cpp:84] Creating Layer conv4
I0710 15:26:55.567757  9306 net.cpp:406] conv4 <- conv3
I0710 15:26:55.567761  9306 net.cpp:380] conv4 -> conv4
I0710 15:26:55.568743  9306 net.cpp:122] Setting up conv4
I0710 15:26:55.568755  9306 net.cpp:129] Top shape: 10 384 13 13 (648960)
I0710 15:26:55.568758  9306 net.cpp:137] Memory required for data: 61192760
I0710 15:26:55.568763  9306 layer_factory.hpp:77] Creating layer relu4
I0710 15:26:55.568768  9306 net.cpp:84] Creating Layer relu4
I0710 15:26:55.568770  9306 net.cpp:406] relu4 <- conv4
I0710 15:26:55.568775  9306 net.cpp:367] relu4 -> conv4 (in-place)
I0710 15:26:55.568780  9306 net.cpp:122] Setting up relu4
I0710 15:26:55.568783  9306 net.cpp:129] Top shape: 10 384 13 13 (648960)
I0710 15:26:55.568785  9306 net.cpp:137] Memory required for data: 63788600
I0710 15:26:55.568787  9306 layer_factory.hpp:77] Creating layer conv5
I0710 15:26:55.568792  9306 net.cpp:84] Creating Layer conv5
I0710 15:26:55.568795  9306 net.cpp:406] conv5 <- conv4
I0710 15:26:55.568799  9306 net.cpp:380] conv5 -> conv5
I0710 15:26:55.569517  9306 net.cpp:122] Setting up conv5
I0710 15:26:55.569525  9306 net.cpp:129] Top shape: 10 256 13 13 (432640)
I0710 15:26:55.569528  9306 net.cpp:137] Memory required for data: 65519160
I0710 15:26:55.569535  9306 layer_factory.hpp:77] Creating layer relu5
I0710 15:26:55.569540  9306 net.cpp:84] Creating Layer relu5
I0710 15:26:55.569543  9306 net.cpp:406] relu5 <- conv5
I0710 15:26:55.569547  9306 net.cpp:367] relu5 -> conv5 (in-place)
I0710 15:26:55.569552  9306 net.cpp:122] Setting up relu5
I0710 15:26:55.569556  9306 net.cpp:129] Top shape: 10 256 13 13 (432640)
I0710 15:26:55.569558  9306 net.cpp:137] Memory required for data: 67249720
I0710 15:26:55.569561  9306 layer_factory.hpp:77] Creating layer pool5
I0710 15:26:55.569566  9306 net.cpp:84] Creating Layer pool5
I0710 15:26:55.569568  9306 net.cpp:406] pool5 <- conv5
I0710 15:26:55.569572  9306 net.cpp:380] pool5 -> pool5
I0710 15:26:55.569597  9306 net.cpp:122] Setting up pool5
I0710 15:26:55.569602  9306 net.cpp:129] Top shape: 10 256 6 6 (92160)
I0710 15:26:55.569604  9306 net.cpp:137] Memory required for data: 67618360
I0710 15:26:55.569607  9306 layer_factory.hpp:77] Creating layer fc6
I0710 15:26:55.569614  9306 net.cpp:84] Creating Layer fc6
I0710 15:26:55.569617  9306 net.cpp:406] fc6 <- pool5
I0710 15:26:55.569622  9306 net.cpp:380] fc6 -> fc6
I0710 15:26:55.617084  9306 net.cpp:122] Setting up fc6
I0710 15:26:55.617112  9306 net.cpp:129] Top shape: 10 4096 (40960)
I0710 15:26:55.617117  9306 net.cpp:137] Memory required for data: 67782200
I0710 15:26:55.617127  9306 layer_factory.hpp:77] Creating layer relu6
I0710 15:26:55.617137  9306 net.cpp:84] Creating Layer relu6
I0710 15:26:55.617143  9306 net.cpp:406] relu6 <- fc6
I0710 15:26:55.617151  9306 net.cpp:367] relu6 -> fc6 (in-place)
I0710 15:26:55.617159  9306 net.cpp:122] Setting up relu6
I0710 15:26:55.617164  9306 net.cpp:129] Top shape: 10 4096 (40960)
I0710 15:26:55.617167  9306 net.cpp:137] Memory required for data: 67946040
I0710 15:26:55.617172  9306 layer_factory.hpp:77] Creating layer drop6
I0710 15:26:55.617178  9306 net.cpp:84] Creating Layer drop6
I0710 15:26:55.617182  9306 net.cpp:406] drop6 <- fc6
I0710 15:26:55.617187  9306 net.cpp:367] drop6 -> fc6 (in-place)
I0710 15:26:55.617215  9306 net.cpp:122] Setting up drop6
I0710 15:26:55.617221  9306 net.cpp:129] Top shape: 10 4096 (40960)
I0710 15:26:55.617225  9306 net.cpp:137] Memory required for data: 68109880
I0710 15:26:55.617229  9306 layer_factory.hpp:77] Creating layer fc7
I0710 15:26:55.617235  9306 net.cpp:84] Creating Layer fc7
I0710 15:26:55.617239  9306 net.cpp:406] fc7 <- fc6
I0710 15:26:55.617244  9306 net.cpp:380] fc7 -> fc7
I0710 15:26:55.645105  9306 net.cpp:122] Setting up fc7
I0710 15:26:55.645131  9306 net.cpp:129] Top shape: 10 4096 (40960)
I0710 15:26:55.645136  9306 net.cpp:137] Memory required for data: 68273720
I0710 15:26:55.645146  9306 layer_factory.hpp:77] Creating layer relu7
I0710 15:26:55.645155  9306 net.cpp:84] Creating Layer relu7
I0710 15:26:55.645159  9306 net.cpp:406] relu7 <- fc7
I0710 15:26:55.645164  9306 net.cpp:367] relu7 -> fc7 (in-place)
I0710 15:26:55.645170  9306 net.cpp:122] Setting up relu7
I0710 15:26:55.645174  9306 net.cpp:129] Top shape: 10 4096 (40960)
I0710 15:26:55.645176  9306 net.cpp:137] Memory required for data: 68437560
I0710 15:26:55.645179  9306 layer_factory.hpp:77] Creating layer drop7
I0710 15:26:55.645184  9306 net.cpp:84] Creating Layer drop7
I0710 15:26:55.645186  9306 net.cpp:406] drop7 <- fc7
I0710 15:26:55.645190  9306 net.cpp:367] drop7 -> fc7 (in-place)
I0710 15:26:55.645210  9306 net.cpp:122] Setting up drop7
I0710 15:26:55.645215  9306 net.cpp:129] Top shape: 10 4096 (40960)
I0710 15:26:55.645217  9306 net.cpp:137] Memory required for data: 68601400
I0710 15:26:55.645221  9306 layer_factory.hpp:77] Creating layer fc-rcnn
I0710 15:26:55.645227  9306 net.cpp:84] Creating Layer fc-rcnn
I0710 15:26:55.645231  9306 net.cpp:406] fc-rcnn <- fc7
I0710 15:26:55.645236  9306 net.cpp:380] fc-rcnn -> fc-rcnn
I0710 15:26:55.646569  9306 net.cpp:122] Setting up fc-rcnn
I0710 15:26:55.646595  9306 net.cpp:129] Top shape: 10 200 (2000)
I0710 15:26:55.646598  9306 net.cpp:137] Memory required for data: 68609400
I0710 15:26:55.646606  9306 net.cpp:200] fc-rcnn does not need backward computation.
I0710 15:26:55.646610  9306 net.cpp:200] drop7 does not need backward computation.
I0710 15:26:55.646613  9306 net.cpp:200] relu7 does not need backward computation.
I0710 15:26:55.646615  9306 net.cpp:200] fc7 does not need backward computation.
I0710 15:26:55.646618  9306 net.cpp:200] drop6 does not need backward computation.
I0710 15:26:55.646621  9306 net.cpp:200] relu6 does not need backward computation.
I0710 15:26:55.646623  9306 net.cpp:200] fc6 does not need backward computation.
I0710 15:26:55.646626  9306 net.cpp:200] pool5 does not need backward computation.
I0710 15:26:55.646628  9306 net.cpp:200] relu5 does not need backward computation.
I0710 15:26:55.646631  9306 net.cpp:200] conv5 does not need backward computation.
I0710 15:26:55.646634  9306 net.cpp:200] relu4 does not need backward computation.
I0710 15:26:55.646637  9306 net.cpp:200] conv4 does not need backward computation.
I0710 15:26:55.646639  9306 net.cpp:200] relu3 does not need backward computation.
I0710 15:26:55.646642  9306 net.cpp:200] conv3 does not need backward computation.
I0710 15:26:55.646646  9306 net.cpp:200] norm2 does not need backward computation.
I0710 15:26:55.646648  9306 net.cpp:200] pool2 does not need backward computation.
I0710 15:26:55.646651  9306 net.cpp:200] relu2 does not need backward computation.
I0710 15:26:55.646656  9306 net.cpp:200] conv2 does not need backward computation.
I0710 15:26:55.646661  9306 net.cpp:200] norm1 does not need backward computation.
I0710 15:26:55.646663  9306 net.cpp:200] pool1 does not need backward computation.
I0710 15:26:55.646667  9306 net.cpp:200] relu1 does not need backward computation.
I0710 15:26:55.646672  9306 net.cpp:200] conv1 does not need backward computation.
I0710 15:26:55.646674  9306 net.cpp:200] data does not need backward computation.
I0710 15:26:55.646677  9306 net.cpp:242] This network produces output fc-rcnn
I0710 15:26:55.646690  9306 net.cpp:255] Network initialization done.
I0710 15:26:55.735093  9306 upgrade_proto.cpp:53] Attempting to upgrade input file specified using deprecated V1LayerParameter: ../models/bvlc_reference_rcnn_ilsvrc13/bvlc_reference_rcnn_ilsvrc13.caffemodel
I0710 15:26:55.855332  9306 upgrade_proto.cpp:61] Successfully upgraded file specified using deprecated V1LayerParameter
I0710 15:26:55.856111  9306 upgrade_proto.cpp:67] Attempting to upgrade input file specified using deprecated input fields: ../models/bvlc_reference_rcnn_ilsvrc13/bvlc_reference_rcnn_ilsvrc13.caffemodel
I0710 15:26:55.856118  9306 upgrade_proto.cpp:70] Successfully upgraded file specified using deprecated input fields.
W0710 15:26:55.856122  9306 upgrade_proto.cpp:72] Note that future Caffe releases will only support input layers and not input fields.
Loading input...
selective_search_rcnn({'/home/ljj/deep_learning/caffe-master/examples/images/fish-bike.jpg'}, '/tmp/tmp9O84If.mat')
Processed 1565 windows in 47.733 s.
/home/ljj/.local/lib/python2.7/site-packages/pandas/core/generic.py:1138: PerformanceWarning: 
your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types [inferred_type->mixed,key->block1_values] [items->['prediction']]

  return pytables.to_hdf(path_or_buf, key, self, **kwargs)
Saved to _temp/det_output.h5 in 0.035 s.
8.目前只做到了这里,解决上述问题,花了很多时间,故做记录

参考:

http://blog.csdn.net/thystar/article/details/50727830


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值