【问题标题】:How to load custom MNIST dataset using pytorch如何使用 pytorch 加载自定义 MNIST 数据集
【发布时间】:2022-01-29 00:34:07
【问题描述】:

我正在从事与机器学习中的对抗性训练和攻击相关的任务。 我对 python/ML 的东西还很陌生,所以请多多包涵。我正在使用来自this repo 的代码,它运行良好。

我想要做的:我想使用 pyTorch 加载自定义对抗 MNIST 数据集而不是简单的 MNIST 数据集,就像他们在这里所做的那样(dataset = datasets.MNIST(root = './data', train=True , 变换 = 变换, 下载 = True))。在这些数据上,我想像现在一样运行训练程序。基本上,我想在已经创建的 MNIST 数据集的对抗样本上训练模型。

我尝试过的: 我已经尝试过this,它确实提供了关于如何使用 pytroch 加载自定义数据集的总体思路,但我一直坚持如何将其应用于我的案例。

我的问题:

  1. 我应该如何解决这个问题?
  2. 我能否获得我可以使用的 MNIST 的对抗(fgsm、ifgsm 或其他)数据,或者我必须自己创建这些数据然后加载它。如果是,那么如何?

下面是代码的相关部分:

import matplotlib.pyplot as plt
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torchvision import transforms,datasets


# In[2]:


np.random.seed(42)
torch.manual_seed(42)


# In[3]:


transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.0,), (1.0,))])
dataset = datasets.MNIST(root = './data', train=True, transform = transform, download=True)
train_set, val_set = torch.utils.data.random_split(dataset, [50000, 10000])
test_set = datasets.MNIST(root = './data', train=False, transform = transform, download=True)
train_loader = torch.utils.data.DataLoader(train_set,batch_size=1,shuffle=True)
val_loader = torch.utils.data.DataLoader(val_set,batch_size=1,shuffle=True)
test_loader = torch.utils.data.DataLoader(test_set,batch_size=1,shuffle=True)


# In[4]:


print("Training data:",len(train_loader),"Validation data:",len(val_loader),"Test data: ",len(test_loader))


# In[5]:


use_cuda=True
device = torch.device("cuda" if (use_cuda and torch.cuda.is_available()) else "cpu") 
# Full code link is attached.

【问题讨论】:

    标签: python tensorflow machine-learning pytorch mnist


    【解决方案1】:

    用于创建创建对抗示例:

    https://www.tensorflow.org/tutorials/generative/adversarial_fgsm

    我认为使用对抗性网络实施训练的最佳方式是在训练时创建对抗性数据(参见https://github.com/cleverhans-lab/cleverhans/blob/master/tutorials/tf2/mnist_tutorial.py 示例)。

    【讨论】:

    • 感谢您的建议,但是,我已经查看了第一个链接,它只是作为对抗性示例。不在其上训练网络。我也研究过cleverhans 库,但我似乎无法在现有代码中重用它。
    猜你喜欢
    • 2020-06-03
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2017-09-12
    • 2021-11-09
    • 2019-11-08
    • 2018-08-06
    • 2019-01-03
    相关资源
    最近更新 更多