param = { 'batch_size': 100, # 训练时每次批量处理图片的数量 'test_batch_size': 100, # 测试时每次批处理图片的数量 'num_epochs': 1000, # 对所有样本训练的轮数 # 'learning_rate': 1e-4, # 学习率 'learning_rate': 1e-5, # 学习率 'weight_decay': 5e-5, # 权重衰减,相当于在损失函数后加入正则化项,降低整体权重值,防止过拟合 # 'weight_decay': 0, # 权重衰减,相当于在损失函数后加入正则化项,降低整体权重值,防止过拟合 'epsilon': 0.2 } ''' 加载数据集 ''' train_dataset, test_dataset = Data_Reader.Mnist.Mnist_dataset().get_dataset() loader_train = Data_Reader.get_dataloader(dataset=train_dataset, batch_size=param['batch_size']) loader_test = Data_Reader.get_dataloader(dataset=test_dataset, batch_size=param['test_batch_size']) ''' 搭建模型 模型在model.py里面搭建好了,这里直接调用 ''' modelpath = './train3_AdvT.pkl' net = Models.Lenet5.Lenet5() # 加载模型 net = Models.load_state_dict(net, modelpath) base.enable_cuda(net) # 使用cuda num_correct, num_samples, acc = Optimizer.test(net, loader_test) # 测试一下最初的效果 print('[Start] right predict:(%d/%d) ,pre test_acc=%.4f%%' % (num_correct, num_samples, acc)) '''
# sys.path.append('D:\\code\\Python\\Experiment\\newNetwork\\new\\yszxx\\yszxx') '''自建包''' import _Base_ as base import Data_Reader import Models import Optimizer import Adversary '''超参数''' param = { 'test_batch_size': 100, 'epsilon': 0.2, } '''加载测试数据''' test_dataset = Data_Reader.Mnist.Mnist_dataset().get_test_dataset() loader_test = Data_Reader.get_dataloader(dataset=test_dataset, batch_size=param['test_batch_size'], shuffle=False) # 10000-1 '''加载模型''' net = Models.Lenet5.Lenet5() net = Models.load_state_dict(net, './lenet5_dict.pkl') num_correct, num_samples, acc = Optimizer.test(net, loader_test) print('[Start] right predict:(%d/%d) ,pre test_acc=%.4f' % (num_correct, num_samples, acc)) # right predict:(936/10000) ,pre test_acc=9.3600 '''模型测试过程''' base.enable_cuda(net) # 使用cuda net.eval() # 推断模式 for p in net.parameters(): # 将模型参数的梯度获取设为false() p.requires_grad = False Optimizer.test(net, loader_test) # 测试干净样本的性能