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)
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)
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)
def save(self, model, path): PyTorchAug.save(path, model)