当前位置: 首页 > news >正文

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

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

内容概要

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

主要内容

  1. tf.data API

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

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

    • 归一化层:用于标准化数值特征,可在模型内部直接进行数据归一化。
    • 分类特征编码:包括StringLookupHashingEmbedding等层,用于处理分类文本特征和嵌入表示。
    • 文本预处理TextVectorization层支持文本向量化,适用于自然语言处理任务。
    • 图像预处理:提供ResizingRescalingCenterCrop等层,用于图像大小调整、像素值缩放和中心裁剪。
  4. 数据加载工具

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

关键代码和算法

13.1 使用tf.data API创建数据集
import tensorflow as tf# 创建数据集
X = tf.range(10)
dataset = tf.data.Dataset.from_tensor_slices(X)# 数据转换
dataset = dataset.repeat(3).batch(7)# 使用map()进行预处理
dataset = dataset.map(lambda x: x * 2)# 数据打乱和批量处理
dataset = dataset.shuffle(buffer_size=4).batch(32).prefetch(1)

13.2 创建TFRecord文件并读取

# 写入TFRecord文件
with tf.io.TFRecordWriter("my_data.tfrecord") as f:f.write(b"This is the first record")f.write(b"And this is the second record")# 读取TFRecord文件
dataset = tf.data.TFRecordDataset(["my_data.tfrecord"])
for item in dataset:print(item)

13.3 使用Keras预处理层

# 归一化层
norm_layer = tf.keras.layers.Normalization()
norm_layer.adapt(X_train)
model = tf.keras.models.Sequential([norm_layer, tf.keras.layers.Dense(1)])# 分类特征编码
str_lookup_layer = tf.keras.layers.StringLookup()
str_lookup_layer.adapt(cities)
cat_embeddings = tf.keras.layers.Embedding(input_dim=str_lookup_layer.vocabulary_size(), output_dim=2)
lookup_and_embed = tf.keras.Sequential([str_lookup_layer, cat_embeddings])# 文本向量化
text_vec_layer = tf.keras.layers.TextVectorization()
text_vec_layer.adapt(train_data)

精彩语录

  1. 中文tf.data API是TensorFlow中用于加载和预处理数据的强大工具。
    英文原文:The tf.data API is TensorFlow’s preferred way to load and preprocess data efficiently.
    解释:强调了tf.data API在数据处理中的重要性。

  2. 中文:Keras预处理层可以嵌入到模型中,确保在训练和推理过程中自动进行数据预处理。
    英文原文:Keras preprocessing layers can be embedded in your models to preprocess data on the fly during training and inference.
    解释:介绍了Keras预处理层的优势。

  3. 中文:TFRecord格式是TensorFlow的首选数据存储格式,支持高效读取和存储大量数据。
    英文原文:The TFRecord format is TensorFlow’s preferred format for storing large amounts of data and reading it efficiently.
    解释:解释了TFRecord格式的用途和优势。

  4. 中文:使用预训练模型组件可以显著加快模型开发和部署的速度。
    英文原文:Using pretrained model components can significantly accelerate model development and deployment.
    解释:强调了预训练模型组件的实用性。

  5. 中文:数据加载和预处理是深度学习中的关键技能,尤其是在处理大规模数据集时。
    英文原文: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的使用。这些技能对于高效处理大规模数据集、优化模型训练过程以及简化模型部署具有重要意义。

相关文章:

  • 高等数学第六章---定积分(§6.2定积分在几何上的应用2)
  • Elasticsearch知识汇总之 ElasticSearch高可用方案
  • [ linux-系统 ] 常见指令2
  • 开源向量大模型推荐:2025年技术选型指南
  • 模板模式 VS 建造者模式
  • Sublime Text快速搭建Lua语言运行环境
  • 可以下载blender/fbx格式模型网站
  • 【C++游戏引擎开发】第31篇:物理引擎(Bullet)—碰撞检测系统
  • 学习Python网络爬虫的实例
  • SpringBoot 集成滑块验证码AJ-Captcha行为验证码 Redis分布式 接口限流 防爬虫
  • 数据清洗-电商双11美妆数据分析
  • Python入门(一)
  • 怎样通过API 实现python调用Chatgpt,gemini
  • 爱情的本质是什么--deepseek
  • 20250506联想Lenovo笔记本电脑的USB鼠标失效之后在WIN10下的关机的方法【触摸板被禁用】
  • Hologres x 函数计算 x Qwen3,对接MCP构建企业级数据分析 Agent
  • C++笔记-二叉搜索树(包括key,key/value搜索场景等)
  • 【SDRS】面向多模态情感分析的情感感知解纠缠表征转移
  • Ubuntu开放端口
  • Windows玩游戏的时候,一按字符键就显示桌面
  • 抗战回望20︱《山西省战区抗敌行政工作检讨会议议决案》:“强民政治”、“说服行政”
  • 十四届全国政协原常委、民族和宗教委员会原副主任苟仲文被提起公诉
  • 德国联邦议院6日下午将举行总理选举第二轮投票
  • 深圳一购房者交首付后迟迟无法签合同,澎湃介入后开发商承诺退款
  • 黔西游船倾覆事故84名落水人员已全部找到,10人不幸遇难
  • 新剧|《执法者们》《亲爱的仇敌》5月7日开播