如何解决在封闭系统中从本地目录导入 MNIST 数据集
我正在尝试基于集群中的 MNIST 数据运行教程,而运行训练脚本的节点无法访问互联网,因此我手动将 MNIST 数据集放置在所需目录中,但我得到了 {{1} } 我正在尝试在集群上运行 this 教程。 我已经尝试了 this 答案,但答案并没有解决我的问题。 下面是我的代码修改 -
Dataset not found error.
如何解决?
解决方法
您必须指定根文件夹,而不是已处理文件的完整路径:
root (string)
:数据集的根目录,其中 MNIST/processed/training.pt
和 MNIST/processed/test.pt
存在。
就你而言:
root is /scratch/netra
因此,
train_dataset = \
datasets.MNIST('/scratch/netra-%d' % hvd.rank(),train=True,download=True,transform=transforms.Compose([
transforms.ToTensor(),transforms.Normalize((0.1307,),(0.3081,))
]))
test_dataset = \
datasets.MNIST('/scratch/netra-%d' % hvd.rank(),train=False,))
]))
,
如果上述方法不起作用,请尝试将这些 .pt 文件放在当前工作目录中名为 .data
的文件夹中:
import os
CURR_DIR = os.getcwd()
print(CURR_DIR)
train = datasets.MNIST(root='./data',download=False,transform=transforms.Compose([transforms.ToTensor(),))]))
# works
train = datasets.MNIST(root=CURR_DIR + '\\data',))]))
# works
# same files also in this folder
train = datasets.MNIST(root=CURR_DIR + '\\processed',))
]))
# Dataset not found
有趣的是,在最后一个示例中,这正是生成数据的 Torch MNIST 数据集类放置 .pt 文件的位置。