Keras Внедрение выходной размерности слоя - PullRequest
0 голосов
/ 21 января 2019

Меня смущают выходные размеры, указанные в слое внедрения в этом фрагменте кода

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?

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Выходная размерность вложения - это размерность тензора, который вы используете для представления каждого слова.В вашем случае вы используете 32-мерный тензор для представления каждого из 10 тыс. Слов, которые вы можете получить в своем наборе данных.

0 голосов
/ 21 января 2019

max_features - количество слов, а не размерность. В вашем слое внедрения у вас есть 10000 слов, каждое из которых представлено как вложение с измерением 32.

...