def set_model(self, model_name): model = FasterRCNN(self.gpu) model.train = False serializers.load_npz(model_name, model) self.model = model if chainer.cuda.available and self.gpu >= 0: self.model.to_gpu(self.gpu)
def test_backward_cpu_VGG16(self): gpu = -1 trunk = VGG16 rpn_in_ch = 512 rpn_out_ch = 512 n_anchors = 9 feat_stride = 16 anchor_scales = [8, 16, 32] num_classes = 21 spatial_scale = 0.0625 model = FasterRCNN(gpu, trunk, rpn_in_ch, rpn_out_ch, n_anchors, feat_stride, anchor_scales, num_classes, spatial_scale) opt = optimizers.Adam() opt.setup(model) model.train = True rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \ model(chainer.Variable(self.x, volatile=False), self.im_info, self.gt_boxes) model.zerograds() rpn_cls_loss.backward() opt.update() rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \ model(chainer.Variable(self.x, volatile=False), self.im_info, self.gt_boxes) model.zerograds() rpn_loss_bbox.backward() opt.update() rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \ model(chainer.Variable(self.x, volatile=False), self.im_info, self.gt_boxes) model.zerograds() loss_bbox.backward() opt.update() rpn_cls_loss, rpn_loss_bbox, loss_bbox, loss_cls = \ model(chainer.Variable(self.x, volatile=False), self.im_info, self.gt_boxes) model.zerograds() loss_cls.backward() opt.update()
def test_forward_cpu_VGG16(self): print('test_forward_cpu_VGG16') gpu = -1 trunk = VGG16 rpn_in_ch = 512 rpn_out_ch = 512 n_anchors = 9 feat_stride = 16 anchor_scales = [8, 16, 32] num_classes = 21 spatial_scale = 0.0625 model = FasterRCNN(gpu, trunk, rpn_in_ch, rpn_out_ch, n_anchors, feat_stride, anchor_scales, num_classes, spatial_scale) model.train = False ret = model(chainer.Variable(self.x, volatile=True), self.im_info) assert (len(ret) == 2) assert (isinstance(ret[0], chainer.Variable)) assert (isinstance(ret[1], np.ndarray))
def get_model(gpu): model = FasterRCNN(gpu) model.train = False serializers.load_npz('./VGG16.model', model) return model
def get_model(gpu): model = FasterRCNN(gpu) model.train = False serializers.load_npz('data/VGG16_faster_rcnn_final.model', model) return model
import sys sys.path.insert(0, './lib/models') sys.path.insert(0, '/media/haria/data/py-faster-rcnn/lib') sys.path.insert(0, '/media/haria/data/py-faster-rcnn/caffe-fast-rcnn/python') import caffe from lib.models.faster_rcnn import FasterRCNN import cPickle as pickle from lib.models.npz import load_npz from chainer import serializers param_fn = './VGG16_faster_rcnn_final.caffemodel' model_fn = './test.prototxt' vgg = FasterRCNN() net = caffe.Net(model_fn, param_fn, caffe.TEST) for name, param in net.params.iteritems(): name = name.replace("/", "_") if name not in [ "rpn_cls_score", "rpn_bbox_pred", "fc6", "fc7", "cls_score", "bbox_pred" ]: trunk = vgg.trunk layer = getattr(trunk, name) layer.W = param[0].data layer.b = param[1].data setattr(trunk, name, layer) else: layer = getattr(vgg, name)