FileNotFoundError: [Errno 2] 没有这样的文件或目录:'.data/multi30k/train.fr' 导入种子分词器 spacy字段抛出错误的单元格

如何解决FileNotFoundError: [Errno 2] 没有这样的文件或目录:'.data/multi30k/train.fr' 导入种子分词器 spacy字段抛出错误的单元格

我正在尝试使用 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,exts=('.fr',)

导入

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,eos_token = "<eos>"
)

抛出错误的单元格

train_data,)

解决方法

这是因为数据集本身中没有 train.fr 文件。

如果您列出 pytorch 下载的内容,

$ !ls -al .data/multi30k
total 5.4M
drwxr-xr-x 2 root root 4.0K Jul 15 14:26 .
drwxr-xr-x 3 root root 4.0K Jul 15 14:26 ..
-rw-r--r-- 1 root root  65K Jul 15 14:26 mmt_task1_test2016.tar.gz
-rw-rw-r-- 1 1000 1000  69K Oct 17  2016 test2016.de
-rw-rw-r-- 1 1000 1000  61K Oct 17  2016 test2016.en
-rw-rw-r-- 1 1000 1000  71K Feb 11  2017 test2016.fr
-rw-rw-r-- 1 1000 1000 2.1M Feb  2  2016 train.de
-rw-rw-r-- 1 1000 1000 1.8M Feb  2  2016 train.en
-rw-r--r-- 1 root root 1.2M Jul 15 14:26 training.tar.gz
-rw-rw-r-- 1 1000 1000  75K Feb  2  2016 val.de
-rw-rw-r-- 1 1000 1000  62K Feb  2  2016 val.en
-rw-r--r-- 1 root root  46K Jul 15 14:26 validation.tar.gz

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?