TensorFlow2简单入门-三维张量

TensorFlow2简单入门

三维张量的一个典型应用是表示序列信号,它的格式是

X = [ , sequence\_len, feature\_len ]

其中表示序列信号的数量, sequence\_len表示序列信号在时间维度上的采样点数或步数,feature\_len表示每个点的特征长度。

在NLP中,可以以单个句子“The dog barked at the mailman”为例,将其表示为[1,6,10]。1代表一个句子,6代表句子长度,10代表单词长度。

加载 IMDB 电影评价数据集中的 25000 条用于说明。评论已经过预处理,并编码为词索引(整数)的序列表示。且词已经按数据集中出现的频率进行了排序,下面将只考虑前 10000 个最常用的词(通过参数num_words=10000实现)。代码实例如下:

from tensorflow.keras import datasets, layers, models

# 自动加载 IMDB 电影评价数据集
(x_train,y_train),(x_test,y_test)=keras.datasets.imdb.load_data(num_words=10000)
# 将句子填充、截断为等长 90 个单词的句子
x_train = keras.preprocessing.sequence.pad_sequences(x_train,maxlen=90)
x_train.shape
"""
输出:
(25000, 90)
"""

张量 x_train 的 shape 为 [25000,90],其中 25000 表示句子个数, 90 表示每个句子共 90 个单词,每个单词使用数字编码方式表示。我们通过 layers.Embedding 层将数字编码的单词转换为长度为100的词向量。

# 创建词向量 Embedding 层类
embedding=layers.Embedding(10000, 100)
# 将数字编码的单词转换为词向量
out = embedding(x_train)
out.shape
"""
输出:
TensorShape([25000, 90, 100])
"""

[25000,90,100]中的 100 表示每个单词编码为长度是 100 的向量。

你可能感兴趣的:(TensorFlow2简单入门-三维张量)