python-3.x - Tensorflow:创建用于机器翻译的自定义文本数据集
问题描述
我想使用我自己的数据来训练使用 Transformers 的机器翻译系统的模型。TFDS(Tensorflow 数据集)中已经有一组数据集可用,并且还可以选择将新数据集添加到 TFDS。但是如果我不必等待那些添加请求和东西并直接训练我的数据怎么办?
在示例 colab 笔记本中,他们使用以下内容创建训练和验证数据:
examples, metadata = tfds.load('ted_hrlr_translate/pt_to_en', with_info=True,
as_supervised=True)
train_examples, val_examples = examples['train'], examples['validation']
我相信 TFDS 做了很多预处理来适应管道,它是 Dataset 类型的。
type(train_examples)
tensorflow.python.data.ops.dataset_ops._OptionsDataset
但是对于像下面这样的自定义 CSV 数据,如何创建与该模型兼容的“数据集”?
import pandas as pd
# initialize list of lists
data = [['tom', 10], ['nick', 15], ['juli', 14],['tom', 10], ['nick', 15]]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['Name', 'Age'])
# print dataframe.
df
解决方案
colab notebook 中的数据集只是字符串对(句子的翻译对)的集合。这似乎不是你所拥有的(你有名字和年龄??)。
但是,当然可以从语言对的 csv(或名称和年龄!)创建数据集。这里有一个数据集 API 的综合指南:https ://www.tensorflow.org/guide/datasets但本质上,给定一个名为“translations.csv”的 csv,如下所示:
hola,hello
adios,goodbye
pero,dog
huevos,eggs
...
那么我们可以这样做:
my_dataset = tf.data.experimental.CsvDataset("translations.csv", [tf.string, tf.string])
同样,对于您的姓名/年龄数据集,您可以执行以下操作:
my_dataset = tf.data.experimental.CsvDataset("ages.csv", [tf.string, tf.int32])
推荐阅读
- typescript - typescript子类构造函数不同参数
- azure-media-services - 在 libvlcsharp 中为自适应流设置起始比特率
- .net-core - dotnet 核心问题
- reactjs - onClick 方法调用自动反应
- python - Replace existing file on upload
- mysql - 我可以在 MySQL 中的临时表上创建视图吗?
- java - 使用java的spring中的自动装配注释错误
- c - C中的SQLite错误('未定义对'sqlite3_open''的引用)
- python - 整合不均匀采样的数据数组以获得“曲线”和 0 之间的区域
- python - Mongoengine:mongoengine.errors.FieldDoesNotExist