python - 将训练语料库提供给 train_new_from_iterator 方法时的关键错误
问题描述
我在这里关注本教程:https ://github.com/huggingface/notebooks/blob/master/examples/tokenizer_training.ipynb
因此,使用此代码,我添加了我的自定义数据集:
from datasets import load_dataset
dataset = load_dataset('csv', data_files=['/content/drive/MyDrive/mydata.csv'])
然后,我使用此代码查看数据集:
dataset
访问一个元素:
dataset['train'][1]
访问切片目录:
dataset['train'][:5]
成功执行上述代码后,我尝试在这里执行:
new_tokenizer = tokenizer.train_new_from_iterator(batch_iterator(), vocab_size=25000)
但是,我收到此错误:
KeyError: "Invalid key: slice(0, 1000, None). Please first select a split. For example: `my_dataset_dictionary['train'][slice(0, 1000, None)]`. Available splits: ['train']"
我该如何解决?
我正在尝试训练自己的标记器,这似乎是一个问题。
任何帮助,将不胜感激!
解决方案
就像错误跟踪中所说的那样,您应该在加载数据集时指定拆分,如下所示:
dataset = load_dataset('csv', data_files=['/content/drive/MyDrive/mydata.csv'], split='train')
或者编写 batch_iterator 如下:
def batch_iterator():
for i in range(0, len(dataset['train']), batch_size):
yield dataset['train'][i : i + batch_size]["text"]
推荐阅读
- java - Java TCP Socket While循环和计数器接收数据X次
- firebase - 如何使用 ESP8266 监听 Firestore 的变化?
- class - “:”在 Dart 中是什么意思或做什么?
- java - 有没有更好的方法来处理深度嵌套数据的空异常?
- php - 我想在函数之外显示结果
- c# - 将项目作为复选框添加到组合框
- vimeo-android - 我想将 vimeo 视频与应用程序集成
- python - Flask-Admin:更改 inline_models 的排序顺序?
- reactjs - React:使用 Refs 修复缺少的依赖警告 useEffect
- c - __attribute__ 在多个变量的定义中