2016-01-25 2 views
11

Я хочу найти пример слоя данных caffe python для изучения. Я знаю, что Fast-RCNN имеет слой данных python, но он довольно сложный, так как я не знаком с обнаружением объекта, так как я .
Итак, мой вопрос: есть ли пример слоя данных на python, где я могу узнать, как определить мою собственную процедуру подготовки данных?
Например, как определить слой данных python, сделайте гораздо больше данных, добавив (например, перевод, вращение и т. Д.), Чем caffe "ImageDataLayer".caffe data layer пример шаг за шагом

Большое спасибо

ответ

13

Вы можете использовать "Python" слой: слой, реализованный в питона, чтобы передавать данные в вашу сеть. (См. Пример добавления слоя type: "Python"here).

import sys, os 
sys.path.insert(0, os.environ['CAFFE_ROOT']+'/python') 
import caffe 
class myInputLayer(caffe.Layer): 
    def setup(self,bottom,top): 
    # read parameters from `self.param_str` 
    ... 
    def reshape(self,bottom,top): 
    # no "bottom"s for input layer 
    if len(bottom)>0: 
     raise Exception('cannot have bottoms for input layer') 
    # make sure you have the right number of "top"s 
    if len(top)!= ... 
     raise ... 
    top[0].reshape(...) # reshape the outputs to the proper sizes 

    def forward(self,bottom,top): 
    # do your magic here... feed **one** batch to `top` 
    top[0].data[...] = one_batch_of_data 


    def backward(self, top, propagate_down, bottom): 
    # no back-prop for input layers 
    pass 

Для получения дополнительной информации о param_str см this thread.
Вы можете найти эскиз слоя загрузки данных с предварительным выбором here.

+0

Большое спасибо за ваше объяснение, я попытаюсь реализовать его и разместить здесь свой код. o (^ ▽ ^) o –

+1

На самом деле я нахожу один PR на веб-сайте caffe. https://github.com/BVLC/caffe/pull/3471/files –

+0

Возможно ли использовать здесь многопоточность, чтобы быстрее загружать данные? – curio1729

4

@ Ответ Shai велик. В то же время я нахожу еще один подробный пример о слое данных python в одном PR-менеджере. https://github.com/BVLC/caffe/pull/3471/files Надеюсь, этот подробный пример будет полезен для кого-либо еще.

+0

Большое спасибо, знаете ли вы, как мы должны настроить файл прототипа? на самом деле я стараюсь делать именно то, что вы просили, но я смущен. даже после просмотра кода. моя проблема в том, как мы определяем источник изображения в прототексе, а затем как мы читаем от него разные параметры. Буду признателен, если вы можете поделиться своей реализацией с нами. это очень помогает нам. – Breeze

+0

Сделано это :) Большое спасибо за вашу ссылку. Я последовал за двумя ответами Шейса и мог благодарить Бога, все заработал :) – Breeze

 Смежные вопросы

  • Нет связанных вопросов^_^