如何使用 Python 和 TensorFlow 加载伊利亚特数据集?
TensorFlow 是 Google 提供的一个机器学习框架。它是一个开源框架,与 Python 结合使用,可以实现算法、深度学习应用程序等等。它被用于研究和生产目的。
张量是 TensorFlow 中使用的一种数据结构。它有助于连接流图中的边。此流图称为“数据流图”。张量只不过是多维数组或列表。
它们可以通过三个主要属性来识别:
秩 - 它描述了张量的维数。可以理解为张量的阶数或已定义张量的维数。
类型 - 它描述了与张量元素关联的数据类型。它可以是一维、二维或 n 维张量。
形状 - 它是行数和列数的总和。
我们将使用伊利亚特数据集,其中包含 William Cowper、Edward(Derby 伯爵)和 Samuel Butler 三部翻译作品的文本数据。该模型经过训练,可以在给出一行文本时识别翻译者。使用的文本文件已进行预处理。这包括删除文档的页眉和页脚、行号和章节标题。
我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 是建立在 Jupyter Notebook 之上的。
示例
以下是代码片段:
def labeler(example, index): return example, tf.cast(index, tf.int64) print(“An empty list has been created”) labeled_data_sets = [] print(“Iterate through the file names and create a dataset from text file using ‘TextLineDataset’ method”) for i, file_name in enumerate(FILE_NAMES): lines_dataset = tf.data.TextLineDataset(str(parent_dir/file_name)) labeled_dataset = lines_dataset.map(lambda ex: labeler(ex, i)) labeled_data_sets.append(labeled_dataset)
代码来源 - https://tensorflowcn.cn/tutorials/load_data/text
输出
An empty list has been created Iterate through the file names and create a dataset from text file using ‘TextLineDataset’ method
解释
使用“TextLineDataset”,它从文本文件创建一个 tf.data.Dataset。
每个示例都是原始文件的一行文本。
“text_dataset_from_directory”将文件的内容视为单个示例。
当处理基于行的文本数据时,TextLineDataset 很有用。
遍历这些文件并将每一行加载到它自己的数据集中。
每个示例都应单独标记,因此使用“tf.data.Dataset.map”将标记函数应用于每一行。
这将遍历数据集中每个示例,并返回 (示例,标签) 对作为输出。