美文网首页TensorFlow2简单入门
TensorFlow2简单入门-三维张量

TensorFlow2简单入门-三维张量

作者: K同学啊 | 来源:发表于2021-01-17 09:34 被阅读0次
    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简单入门-三维张量

        本文链接:https://www.haomeiwen.com/subject/dolaaktx.html