Keras Embedding层输出维度

Keras Embedding layer output dimensionality

我对这段代码片段中嵌入层中指定的输出维度感到困惑

from keras.datasets import imdb
from keras.preprocessing import sequence
from keras.layers import Dense
from keras.models import Sequential
from keras.layers import Embedding, SimpleRNN

max_features = 10000
maxlen = 500
batch_size = 32

print('Loading data...')
(input_train, y_train), (input_test, y_test) = imdb.load_data(num_words=max_features)

print(len(input_train), 'train sequences')
print(len(input_test), 'test sequences')
print('Pad sequences (samples x time)')

input_train = sequence.pad_sequences(input_train, maxlen=maxlen)
input_test = sequence.pad_sequences(input_test, maxlen=maxlen)

print('input_train shape:', input_train.shape)
print('input_test shape:', input_test.shape)

print(input_train)

model = Sequential()
model.add(Embedding(max_features, 32))
model.add(SimpleRNN(32))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])

因为 max_features 是 10000,Embedding 的输出维度不应该是 10000 吗?

max_features是词数,不是维度。在您的嵌入层中,您有 10000 个单词,每个单词都表示为维度为 32 的嵌入。

嵌入的输出维数是您用来表示每个单词的张量的维数。在您的例子中,您使用 32 维张量来表示您可能在数据集中获得的 10k 个单词中的每一个。