【发布时间】:2021-09-24 05:58:18
【问题描述】:
我正在尝试使用 google colab 加载 Multi30k torchtext 数据集。当我加载.de 时,它工作正常,但一旦我从.de 更改,我就会收到此错误:
FileNotFoundError: [Errno 2] No such file or directory: '.data/multi30k/train.fr'
这就是我加载.de 的方式,它起作用了:
train_data, valid_data, test_data = datasets.Multi30k.splits(
root=".data",
exts=('.de', '.en'),
fields = (SRC, TRG),
)
只要我通过将 .de 更改为 .fr 来更改此代码,就会出现错误:
train_data, valid_data, test_data = datasets.Multi30k.splits(
root=".data",
exts=('.fr', '.en'),
fields = (SRC, TRG),
)
进口
import torch
from torch import nn
from torch.nn import functional as F
import spacy, math, random
import numpy as np
from torchtext.legacy import datasets, data
import time
from prettytable import PrettyTable
from matplotlib import pyplot as plt
种子
SEED = 42
np.random.seed(SEED)
torch.manual_seed(SEED)
random.seed(SEED)
torch.cuda.manual_seed(SEED)
torch.backends.cudnn.deteministic = True
分词器spacy
import spacy
spacy.cli.download('fr_core_news_sm')
spacy_fr = spacy.load('fr_core_news_sm')
spacy_en = spacy.load('en_core_web_sm')
def tokenize_fr(sent):
return [tok.text for tok in spacy_fr.tokenizer(sent)]
def tokenize_en(sent):
return [tok.text for tok in spacy_en.tokenizer(sent)]
字段
SRC = data.Field(
tokenize= tokenize_fr,
lower= True,
init_token = "<sos>",
eos_token = "<eos>",
include_lengths =True
)
TRG = data.Field(
tokenize = tokenize_en,
lower= True,
init_token = "<sos>",
eos_token = "<eos>"
)
抛出错误的单元格
train_data, valid_data, test_data = datasets.Multi30k.splits(
root=".data",
exts=('.fr', '.en'),
fields = (SRC, TRG),
)
【问题讨论】:
-
.data/multi30k/train.fr 文件是否存在?
-
你为什么使用
google-colaboratory标签,你的问题中没有提到任何关于它的事情!删除它或提及它! -
@Michael_H 不是我运行单元格时会创建它吗?
-
我不知道。能否请您发布带有导入的完整代码,以便我重现错误?
-
@Michael_H 我发布了我目前拥有的所有当前单元格。
标签: python pytorch machine-translation torchtext