前提・実現したいこと
GPUを使いたいので、Google Colaboratoryを使って、PyTorchを動かして、Transformerの訓練を行います。
Torchtextで、辞書オブジェクトにまとめます。
発生している問題・エラーメッセージ
FileNotFoundError Traceback (most recent call last) <ipython-input-18-fa41015bca5e> in <module>() 1 train_dl, val_dl, TEXT = get_csv2_torch( ----> 2 max_length=256, batch_size=24) 3 4 # 辞書オブジェクトにまとめる 5 dataloaders_dict = {"train": train_dl, "val": val_dl} 1 frames /usr/local/lib/python3.6/dist-packages/torchtext/data/dataset.py in __init__(self, path, format, fields, skip_header, csv_reader_params, **kwargs) 249 'tsv': Example.fromCSV, 'csv': Example.fromCSV}[format] 250 --> 251 with io.open(os.path.expanduser(path), encoding="utf8") as f: 252 if format == 'csv': 253 reader = unicode_csv_reader(f, **csv_reader_params) FileNotFoundError: [Errno 2] No such file or directory: 'centiment_ch-ABSA_two2.csv'
該当のソースコード
Python
1(final.ipynb) 2import pandas as pd 3import numpy as np 4import urllib.request 5import torchtext 6import math 7import random 8import torch 9import torch.nn as nn 10from torchtext.vocab import Vectors 11from janome.tokenizer import Tokenizer 12import torch.nn.functional as F 13import torch.optim as optim 14 15def get_csv2_torch(max_length=256, batch_size=24): 16 j_t = Tokenizer() 17 18 def tokenizer_janome(text): 19 return [tok for tok in j_t.tokenize(text, wakati=True)] 20 21 def tokenizer_with_preprocessing(text): 22 ret = tokenizer_janome(text) # Janomeの単語分割 23 return ret 24 25 TEXT = torchtext.data.Field(sequential=True, tokenize=tokenizer_with_preprocessing, 26 use_vocab=True, lower=True, include_lengths=True, batch_first=True, fix_length=max_length,init_token="<cls>", eos_token="<eos>") 27 LABEL = torchtext.data.Field(sequential=False, use_vocab=False) 28 #LABEL2= torchtext.data.Field(sequential=False, use_vocab=False) 29 #LABEL3= torchtext.data.Field(sequential=False, use_vocab=False) 30 31 train_val_ds2= torchtext.data.TabularDataset( 32 path='centiment_ch-ABSA_two2.csv', 33 format='csv', 34 fields=[('Text', TEXT),('Label', LABEL) ], skip_header=True) 35 train_ds, val_ds = train_val_ds2.split(split_ratio= 0.8, random_state=random.seed(1234)) 36 37 japanese_fastText_vectors = Vectors(name='model.vec') 38 39 TEXT.build_vocab(train_ds, vectors=japanese_fastText_vectors, min_freq=10) 40 41 train_dl = torchtext.data.Iterator(train_ds, batch_size=24, train=True) 42 val_dl = torchtext.data.Iterator(val_ds, batch_size=24, train=False, sort=False) 43 44 return train_dl, val_dl, TEXT 45 46torch.manual_seed(1234) 47np.random.seed(1234) 48random.seed(1234) 49 50# 読み込み 51train_dl, val_dl, TEXT = get_csv2_torch( 52 max_length=256, batch_size=24) 53 54# 辞書オブジェクトにまとめる 55dataloaders_dict = {"train": train_dl, "val": val_dl}
試したこと
パスが通っているのか確かめてみました。
python
1from google.colab import drive 2drive.mount('/content/drive/')
python
1!ls "/content/drive/My Drive/Colab Notebooks/"
結果は、
centiment_ch-ABSA_two2.csv test.ipynb
'Colaboratory へようこそ のコピー' 'Transformer (1).py'
csv.py Transformer.py
final.ipynb vector_neologd
pycache
read_csv.py
となり、ファイルのところに置かれています。
補足情報(FW/ツールのバージョンなど)
パスはちゃんと通っていると思うのです、何が原因で上手くいかないのでしょうか。
よろしくお願いいたします。
Windows8.1を使っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/20 07:16
2019/11/20 07:29
2019/11/20 08:09
2019/11/20 08:44
2019/11/20 09:18
2019/11/20 10:13