我对此代码段的嵌入层中指定的输出尺寸感到困惑
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,嵌入不应该具有10000的输出维数吗?
答案 0 :(得分:2)
max_features
是单词的数量,而不是维数。在嵌入层中,您有10000个单词,每个单词都表示为尺寸为32的嵌入。
答案 1 :(得分:1)
嵌入的输出维数是用来表示每个单词的张量的维数。在您的情况下,您使用32维张量来表示可能在数据集中获得的每个10k单词。