TensorFlow2简单入门-三维张量
作者: 明天依舊可好
數據|代碼: 在微信公眾號「明天依舊可好」中回復:02
三維張量的一個典型應用是表示序列信號,它的格式是
X=[b,sequence_len,feature_len]X = [b,sequence\_len,feature\_len ] X=[b,sequence_len,feature_len]
其中bbb表示序列信號的數量,sequence_lensequence\_lensequence_len 表示序列信號在時間維度上的采樣點數或步數,feature_lenfeature\_lenfeature_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简单入门-三维张量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ERROR: Could not ins
- 下一篇: TensorFlow2简单入门-图像加载