TensorFlow 深度学习 | 使用函数式 API 实现 Wide & Deep 模型

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在优快云上与你们相遇~💖

在这里插入图片描述

本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】


在这里插入图片描述

TensorFlow 深度学习 | 使用函数式 API 实现 Wide & Deep 模型

在深度学习应用中,Wide & Deep 模型 是一种非常经典的结构,它结合了 线性模型的记忆能力(Wide)深度神经网络的泛化能力(Deep),在推荐系统和分类任务中被广泛应用。

本文将带你一步步使用 TensorFlow 函数式 API 来实现一个 Wide & Deep 模型,并进行示例训练。


🚀 一、Wide & Deep 模型简介

Wide & Deep 模型最早由 Google 提出,主要用于推荐系统任务,目标是 同时记忆历史特征组合(memorization)和学习潜在特征交互(generalization)

  • Wide 部分

    • 本质是一个广义线性模型(Generalized Linear Model, GLM),擅长记忆已有的特征组合。
    • 比如:用户曾经买过某类商品,那么下次推荐时可以直接利用该组合特征。
  • Deep 部分

    • 使用深度神经网络(DNN)进行特征嵌入和非线性组合,具备泛化能力。
    • 比如:即使用户没买过某类商品,模型也能通过相似特征推测出潜在兴趣。

最终输出层会将 Wide 输出和 Deep 输出拼接,并接入一个分类器(如 sigmoid 或 softmax)完成预测。


🏗️ 二、数据准备与预处理

在本示例中,我们使用 TensorFlow 自带的 Adult Census Income 数据集,它用于预测一个人年收入是否超过 50K 美元,包含数值型和类别型特征,非常适合 Wide & Deep 演示。

import tensorflow as tf
import tensorflow_datasets as tfds

# 加载 Adult 数据集
train_data, test_data = tfds.load(
    'adult',
    split=['train', 'test'],
    as_supervised=True
)

# 数据格式:(features, label)
for features, label in train_data.take(1):
    print(features, label)

由于数据集中存在类别特征,我们需要使用 TensorFlow 的特征预处理层(如 CategoryEncoding、Normalization) 来对其进行编码。


🛠️ 三、使用函数式 API 构建 Wide & Deep 模型

TensorFlow 的函数式 API(Functional API)比 Sequential 更灵活,非常适合构建多输入、多输出或共享层的复杂模型。

1. 定义输入层

from tensorflow.keras import layers

# 数值型输入
age = layers.Input(shape=(1,
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomas Kant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值