如何在Python中使用Tensorflow将Iliad数据集分成训练和测试数据?
Tensorflow是由Google提供的机器学习框架,它是一个开源框架,与Python一起用于实现算法、深度学习应用等等。它用于研究和生产目的。
可以使用以下代码将“tensorflow”包安装在Windows上 –
pip install tensorflow
张量是TensorFlow中使用的数据结构。它有助于连接流程图中的边缘。此流程图称为“数据流图”。张量无非就是多维数组或列表。
它们可以使用以下三个主要属性来识别 –
- 级别 - 它告诉张量的维数。可以将其理解为所定义张量中的张量的阶数或维数的数量。
-
类型 - 它告诉与Tensor的元素相关联的数据类型。它可以是一维、二维或n维张量。
-
形状 - 它是行数和列数的总和。
我们将使用Iliad的数据集,其中包含来自William Cowper、Edward(Derby伯爵)和Samuel Butler的三种翻译作品的文本数据。该模型被训练以在给定单行文本时识别译者。使用的文本文件已进行预处理。包括删除文档标题和页脚、行号和章节标题。
我们正在使用Google Colaboratory运行以下代码。 Google Colab或Colaboratory可以在浏览器上运行Python代码,无需任何配置,可免费访问GPU(图形处理单元)。Colaboratory是基于Jupyter Notebook构建的。
更多Python相关文章,请阅读:Python 教程
示例
以下是代码片段−
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://www.tensorflow.org/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”是批处理数据的集合。
-
每个批次都是成对的(多个示例,多个标签),表示为数组。
极客教程