TensorFlow2教程-掩码和填充

本文详细介绍了在TensorFlow2中如何处理序列数据的填充和掩码技术,包括`pad_sequences`函数的使用、掩码的生成与应用,以及在自定义网络层中支持掩码的方法。重点讲解了`Embedding`和`Masking`层在序列模型中的作用,以及如何在函数API和序列API中传递和使用掩码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TensorFlow2教程-掩码和填充

在构建深度学习模型,特别是进行序列的相关任务时,经常会用到掩码和填充技术

原文地址:https://doit-space.blog.csdn.net/article/details/102885635
tensorflow2.0完整教程:https://blog.csdn.net/qq_31456593/article/details/88606284

1 填充序列数据

处理序列数据时,常常会遇到不同长度的文本,例如处理某些句子时:

[
  ["The", "weather", "will", "be", "nice", "tomorrow"],
  ["How", "are", "you", "doing", "today"],
  ["Hello", "world", "!"]
]
[['The', 'weather', 'will', 'be', 'nice', 'tomorrow'],
 ['How', 'are', 'you', 'doing', 'today'],
 ['Hello', 'world', '!']]

计算机无法理解字符,我们一般将词语转换为对应的id

[
  [83, 91, 1, 645, 1253, 927],
  [73, 8, 3215, 55, 927],
  [71, 1331, 4231]
]
[[83, 91, 1, 645, 1253, 927], [73, 8, 3215, 55, 927], [71, 1331, 4231]]

由于深度信息模型的输入一般是固定的张量,所以我们需要对短文本进行填充(或对长文本进行截断),使每个样本的长度相同。
Keras提供了一个API,可以通过填充和截断,获取等长的数据:
tf.keras.preprocessing.sequence.pad_sequences

raw_inputs = [
  [83, 91, 1, 645, 1253, 927],
  [73, 8, 3215, 55, 927],
  [711, 632, 71]
]
# 默认左填充
padded_inputs = tf.keras.preprocessing.sequence.pad_sequences(raw_inputs)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值