呆板学习实操 第二部门 神经网路和深度学习 第13章 使用TensorFlow加载和预 ...

打印 上一主题 下一主题

主题 1759|帖子 1759|积分 5277

呆板学习实操 第二部门 神经网路和深度学习 第13章 使用TensorFlow加载和预处理数据

内容概要

第13章深入探究了怎样使用TensorFlow加载和预处理数据。本章首先介绍了tf.data API,它能够高效地加载和预处理大规模数据集,支持并行文件读取、数据打乱、批量处理等功能。接着,讨论了TFRecord格式,这是一种高效的二进制存储格式,适合存储大量数据。别的,还介绍了Keras预处理层,这些层可以直接嵌入到模型中,实现在练习和推理过程中对数据的主动预处理。最后,探究了TensorFlow Datasets(TFDS)和TensorFlow Hub等工具,它们提供了便捷的数据加载和预处理功能。

主要内容


  • tf.data API

    • 核心概念:tf.data.Dataset表示数据项的序列,支持从多种数据源加载数据。
    • 数据转换:通过map()、filter()、batch()、shuffle()等方法对数据集进行转换。
    • 高效加载:支持多线程和列队机制,可在练习过程中并行加载和预处理数据。

  • TFRecord格式

    • 简介:TFRecord是TensorFlow的首选数据存储格式,支持高效读取和存储大量数据。
    • 读写操作:使用tf.io.TFRecordWriter写入数据,使用tf.data.TFRecordDataset读取数据。
    • 协议缓冲区(Protocol Buffers):TFRecord文件通常包罗序列化的协议缓冲区,支持机动和高效的数据表示。

  • Keras预处理层

    • 归一化层:用于尺度化数值特征,可在模型内部直接进行数据归一化。
    • 分类特征编码:包括StringLookup、Hashing、Embedding等层,用于处理分类文本特征和嵌入表示。
    • 文本预处理:TextVectorization层支持文本向量化,适用于自然语言处理任务。
    • 图像预处理:提供Resizing、Rescaling、CenterCrop等层,用于图像大小调解、像素值缩放和中心裁剪。

  • 数据加载工具

    • TensorFlow Datasets (TFDS):简化常见数据集的加载过程,支持多种数据集范例,可主动下载和预处理数据。
    • TensorFlow Hub:提供预练习模型组件,便于在项目中复用强盛的预练习模型。

关键代码和算法

13.1 使用tf.data API创建数据集

  1. import tensorflow as tf
  2. # 创建数据集
  3. X = tf.range(10)
  4. dataset = tf.data.Dataset.from_tensor_slices(X)
  5. # 数据转换
  6. dataset = dataset.repeat(3).batch(7)
  7. # 使用map()进行预处理
  8. dataset = dataset.map(lambda x: x * 2)
  9. # 数据打乱和批量处理
  10. dataset = dataset.shuffle(buffer_size=4).batch(32).prefetch(1)
复制代码
13.2 创建TFRecord文件并读取

  1. # 写入TFRecord文件
  2. with tf.io.TFRecordWriter("my_data.tfrecord") as f:
  3.     f.write(b"This is the first record")
  4.     f.write(b"And this is the second record")
  5. # 读取TFRecord文件
  6. dataset = tf.data.TFRecordDataset(["my_data.tfrecord"])
  7. for item in dataset:
  8.     print(item)
复制代码
13.3 使用Keras预处理层

  1. # 归一化层
  2. norm_layer = tf.keras.layers.Normalization()
  3. norm_layer.adapt(X_train)
  4. model = tf.keras.models.Sequential([norm_layer, tf.keras.layers.Dense(1)])
  5. # 分类特征编码
  6. str_lookup_layer = tf.keras.layers.StringLookup()
  7. str_lookup_layer.adapt(cities)
  8. cat_embeddings = tf.keras.layers.Embedding(input_dim=str_lookup_layer.vocabulary_size(), output_dim=2)
  9. lookup_and_embed = tf.keras.Sequential([str_lookup_layer, cat_embeddings])
  10. # 文本向量化
  11. text_vec_layer = tf.keras.layers.TextVectorization()
  12. text_vec_layer.adapt(train_data)
复制代码
精彩语录


  • 中文:tf.data API是TensorFlow中用于加载和预处理数据的强盛工具。
    英文原文:The tf.data API is TensorFlow’s preferred way to load and preprocess data efficiently.
    解释:强调了tf.data API在数据处理中的告急性。
  • 中文:Keras预处理层可以嵌入到模型中,确保在练习和推理过程中主动进行数据预处理。
    英文原文:Keras preprocessing layers can be embedded in your models to preprocess data on the fly during training and inference.
    解释:介绍了Keras预处理层的上风。
  • 中文:TFRecord格式是TensorFlow的首选数据存储格式,支持高效读取和存储大量数据。
    英文原文:The TFRecord format is TensorFlow’s preferred format for storing large amounts of data and reading it efficiently.
    解释:解释了TFRecord格式的用途和上风。
  • 中文:使用预练习模型组件可以显著加快模型开发和摆设的速度。
    英文原文:Using pretrained model components can significantly accelerate model development and deployment.
    解释:强调了预练习模型组件的实用性。
  • 中文:数据加载和预处理是深度学习中的关键技能,尤其是在处理大规模数据集时。
    英文原文:Loading and preprocessing data efficiently is a crucial skill in deep learning, especially when dealing with large datasets.
    解释:突出了数据处理技能的告急性。
总结

通过本章的学习,读者将把握使用TensorFlow加载和预处理数据的方法。内容涵盖了tf.data API的使用、TFRecord格式的读写、Keras预处理层的应用,以及TensorFlow Datasets和TensorFlow Hub的使用。这些技能对于高效处理大规模数据集、优化模型练习过程以及简化模型摆设具有告急意义。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

卖不甜枣

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表