예제 #1
0
def test_save_load():
    np.random.seed(123)
    a_np = np.random.randn(3, 2).astype(np.float32)
    a = PyTorch.asFloatTensor(a_np)
    print('a', a)

    filename = '/tmp/foo.t7'  # TODO: should use tempfile to get this
    PyTorchAug.save(filename, a)

    b = PyTorchAug.load(filename)
    print('type(b)', type(b))
    print('b', b)

    assert np.abs(a_np - b.asNumpyTensor()).max() < 1e-4
          net.params['rpn_cls_score'][0].data.reshape(18, 512))
transferB(tnet["rpn_cls_score"].bias, net.params['rpn_cls_score'][1].data)

tnet["rpn_bbox_pred"] = nn.SpatialConvolutionMM(512, 36, 1, 1, 1, 1, 0, 0)
transferW(tnet["rpn_bbox_pred"].weight,
          net.params['rpn_bbox_pred'][0].data.reshape(36, 512))
transferB(tnet["rpn_bbox_pred"].bias, net.params['rpn_bbox_pred'][1].data)

tnet["fc6"] = nn.Linear(25088, 4096)
transferW(tnet["fc6"].weight, net.params['fc6'][0].data)
transferB(tnet["fc6"].bias, net.params['fc6'][1].data)
tnet["relu6"] = nn.ReLU()
tnet["drop6"] = nn.Dropout(0.5)

tnet["fc7"] = nn.Linear(4096, 4096)
transferW(tnet["fc7"].weight, net.params['fc7'][0].data)
transferB(tnet["fc7"].bias, net.params['fc7'][1].data)
tnet["relu7"] = nn.ReLU()
tnet["drop7"] = nn.Dropout(0.5)

tnet["cls_score"] = nn.Linear(4096, 21)
transferW(tnet["cls_score"].weight, net.params['cls_score'][0].data)
transferB(tnet["cls_score"].bias, net.params['cls_score'][1].data)

tnet["bbox_pred"] = nn.Linear(4096, 84)
transferW(tnet["bbox_pred"].weight, net.params['bbox_pred'][0].data)
transferB(tnet["bbox_pred"].bias, net.params['bbox_pred'][1].data)

print net.params
PyTorchAug.save("faster_rcnn_2.t7", tnet)
예제 #3
0
	    transferB(tnet["rpn_bbox_pred"].bias, net.params['rpn_bbox_pred'][1].data)

	tnet["fc6"] = nn.Linear(18432,4096) #512*6*6
        print "fc6"
	transferW(tnet["fc6"].weight, net.params['fc6'][0].data)
	transferB(tnet["fc6"].bias, net.params['fc6'][1].data)
	tnet["relu6"] = nn.ReLU()
	tnet["drop6"] = nn.Dropout(0.5)

	tnet["fc7"] = nn.Linear(4096,1024)
        print "fc7"
	transferW(tnet["fc7"].weight, net.params['fc7'][0].data)
	transferB(tnet["fc7"].bias, net.params['fc7'][1].data)
	tnet["relu7"] = nn.ReLU()
	tnet["drop7"] = nn.Dropout(0.5)

	tnet["cls_score"] = nn.Linear(1024,21)
        if args.rpn:
            print "cls_score"
	    transferW(tnet["cls_score"].weight, net.params['cls_score'][0].data)
	    transferB(tnet["cls_score"].bias, net.params['cls_score'][1].data)

	tnet["bbox_pred"] = nn.Linear(1024,84)
        if args.rpn:
            print "bbox_pred"
	    transferW(tnet["bbox_pred"].weight, net.params['bbox_pred'][0].data)
	    transferB(tnet["bbox_pred"].bias, net.params['bbox_pred'][1].data)

	print net.params
	PyTorchAug.save(args.out,tnet)
예제 #4
0
transferW(tnet["conv5_3"].weight,
          net.params['conv5_3'][0].data.reshape(512, 4608))
transferB(tnet["conv5_3"].bias, net.params['conv5_3'][1].data)
tnet["relu5_3"] = nn.ReLU()

tnet["rpn_conv/3x3"] = nn.SpatialConvolutionMM(512, 512, 3, 3, 1, 1, 1, 1)
tnet["rpn_relu/3x3"] = nn.ReLU()

tnet["rpn_cls_score"] = nn.SpatialConvolutionMM(512, 18, 1, 1, 1, 1, 0, 0)

tnet["rpn_bbox_pred"] = nn.SpatialConvolutionMM(512, 36, 1, 1, 1, 1, 0, 0)

tnet["fc6"] = nn.Linear(25088, 4096)
transferW(tnet["fc6"].weight, net.params['fc6'][0].data)
transferB(tnet["fc6"].bias, net.params['fc6'][1].data)
tnet["relu6"] = nn.ReLU()
tnet["drop6"] = nn.Dropout(0.5)

tnet["fc7"] = nn.Linear(4096, 4096)
transferW(tnet["fc7"].weight, net.params['fc7'][0].data)
transferB(tnet["fc7"].bias, net.params['fc7'][1].data)
tnet["relu7"] = nn.ReLU()
tnet["drop7"] = nn.Dropout(0.5)

tnet["cls_score"] = nn.Linear(4096, 21)

tnet["bbox_pred"] = nn.Linear(4096, 84)

print net.params
PyTorchAug.save("vgg16.t7", tnet)
예제 #5
0
 def save(self, model, path):
     PyTorchAug.save(path, model)