如何在 Python 中使用 Tensorflow 将伊利亚特数据集拆分为训练数据和测试数据?
Tensorflow 是 Google 提供的一个机器学习框架。它是一个开源框架,与 Python 结合使用以实现算法、深度学习应用程序等等。它用于研究和生产目的。
可以使用以下代码行在 Windows 上安装“tensorflow”包:
pip install tensorflow
张量是 TensorFlow 中使用的数据结构。它有助于连接流图中的边。此流图称为“数据流图”。张量只不过是多维数组或列表。
可以使用三个主要属性识别它们:
秩 - 它说明了张量的维度。可以理解为张量的阶数或已定义张量的维度数。
类型 - 它说明了与张量元素关联的数据类型。它可以是一维、二维或 n 维张量。
形状 - 它是行数和列数的总和。
我们将使用伊利亚特的数据集,其中包含 William Cowper、Edward(Derby 伯爵)和 Samuel Butler 三种翻译作品的文本数据。该模型经过训练,可以在给出单行文本时识别翻译者。使用的文本文件已进行预处理。这包括删除文档标题和页脚、行号和章节标题。
我们正在使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置即可免费访问 GPU(图形处理单元)。Colaboratory 构建在 Jupyter Notebook 之上。
示例
以下是代码片段:
train_data = all_encoded_data.skip(VALIDATION_SIZE).shuffle(BUFFER_SIZE) validation_data = all_encoded_data.take(VALIDATION_SIZE) train_data = train_data.padded_batch(BATCH_SIZE) validation_data = validation_data.padded_batch(BATCH_SIZE) sample_text, sample_labels = next(iter(validation_data)) print("The text batch shape is : ", sample_text.shape) print("The label batch shape is : ", sample_labels.shape) print("A text example is : ", sample_text[5]) print("A label example is: ", sample_labels[5])
代码来源 - https://tensorflowcn.cn/tutorials/load_data/text
输出
The text batch shape is : (64, 18) The label batch shape is : (64,) A text example is : tf.Tensor( [ 20 391 2 11 144 787 2 3498 16 49 2 0 0 0 0 0 0 0], shape=(18,), dtype=int64) A label example is: tf.Tensor(1, shape=(), dtype=int64)
解释
Keras TextVectorization 层用于对矢量化数据进行分组/批处理并提供填充。
需要填充,因为批次中的示例需要具有相同的大小和形状,但数据集中示例的大小可能不相同。
每一行文本可能包含不同数量的单词。
“tf.data.Dataset”方法有助于拆分和填充批处理数据集。
“validation_data”和“train_data”是批处理数据的集合。
每个批次都是一对(多个示例,多个标签),表示为数组。