Exemplo n.º 1
0
    if not os.path.exists(os.path.join('save', model_name, adv+'-'+str(eps)+'-'+str(int(n))+'-'+str(eps_iter))):
        os.makedirs(os.path.join('save', model_name, adv+'-'+str(eps)+'-'+str(int(n))+'-'+str(eps_iter)))
    
    with open(os.path.join('dataset', 'random1024', 'whole_data_and_whole_label.pkl'), 'rb') as fid:
        whole_data, whole_label = pkl.load(fid)

    if model_name == 'PointNet':
        from pointnet.model import PointNetCls
        model = PointNetCls(k=40, feature_transform=True, predict_logit=True)
        checkpoint = 'pointnet/cls_model_201.pth'
    else:
        print('No such model architecture')
        assert False

    model = model.to(device)
    model.load_state_dict(torch.load(checkpoint))
    model.eval()

    pytorch_utils.requires_grad_(model, False)
    
    print("Model name\t%s" % model_name)

    cnt = 0        # adv pointcloud successfully attacked
    CNT = 0        # clean pointcloud correctly classified
    
    for idx in tqdm(range(len(whole_data))):
        x = whole_data[idx]
        label = whole_label[idx]
        
        with torch.no_grad():
Exemplo n.º 2
0
                                                 num_workers=int(opt.workers))

    print(len(dataset), len(test_dataset))
    num_classes = len(dataset.classes)
    print('classes', num_classes)
    try:
        os.makedirs(opt.outf)
    except OSError:
        pass

    classifier = PointNetCls(k=num_classes,
                             feature_transform=opt.feature_transform)
    if opt.gpu != -1:
        classifier = torch.nn.DataParallel(classifier).to(device)
    else:
        classifier.to(device)

    if opt.model != '':
        classifier.load_state_dict(torch.load(opt.model))

    optimizer = optim.Adam(classifier.parameters(),
                           lr=0.001,
                           betas=(0.9, 0.999))
    scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=20, gamma=0.5)

    num_batch = len(dataset) / opt.batchSize

    for epoch in range(opt.nepoch):
        scheduler.step()
        for i, data in enumerate(dataloader, 0):
            points, target = data