用MNIST数据集还原Deep leakage from gradients梯度攻击实验

本文详细介绍了如何利用Pytorch构建一个简单的卷积神经网络,对MNIST数据集进行训练和测试。通过导入必要的库,定义网络结构,设置损失函数,使用LBFGS优化器进行反向传播来还原图片。实验中强调了网络模型、激活函数、数据集大小和虚拟数据选择对结果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、先贴上我的还原代码(Jupter)


本文讲述了如何使用Pytorch(一种深度学习框架)构建一个简单的卷积神经网络,
并使用MNIST数据集(28*28手写数字图片集)进行训练和测试。针对过程中的每个步骤都尽可能的给出了详尽的解释。

MNIST 包括6万张28x28的训练样本,1万张测试样本,很多教程都会对它”下手”几乎成为一个 “典范”,可以说它就是计算机视觉里面的Hello World。所以我们这里也会使用MNIST来进行实战。

# 1 准备工作

## 导入包


```python
import torch
import torchvision
from torch.autograd import Variable
from torchvision import datasets, transforms
from torch.utils.data import DataLoader
from torch import nn
import torch.nn.functional as F
import torch.optim as optim
import numpy as np              # 科学计算库,处理多维数组,进行数据分析
import pandas as pd
import matplotlib.pyplot as plt # 提供一个类似 Matlab 的绘图框架
import scipy.io as sio         # 数据输入输出,用于读入.mat文件。scipy一个高级的科学计算库,它和Numpy联系很密切
from scipy.optimize import minimize # 优化函数
To_image = transforms.ToPILImage()
```

## 导入数据集


```python
train_dataset = datasets.MNIST(root = 'G:\ProgramData\TestData\MNIST', train = True, 
                               transform = transforms.ToTensor(), down
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值