Вложения предполагаются последовательными.
Первый вход Embedding
является входным измерением. Таким образом, если входное значение превышает входное измерение, значение игнорируется. Embedding
предполагает, что максимальным значением на входе является входное измерение -1 (оно начинается с 0).
https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding?hl=ja
В качестве примера приведен следующий код сгенерирует вложения только для ввода [4,3]
и пропустит ввод [7, 8]
, поскольку входное измерение равно 5.
Я думаю, что более понятно объяснить это с помощью tenorflow;
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding
model = Sequential()
model.add(Embedding(5, 1, input_length=2))
input_array = np.array([[4,3], [7,8]])
model.compile('rmsprop', 'mse')
output_array = model.predict(input_array)
Вы можете увеличить входное измерение до 9, а затем получите вложения для обоих входных данных.
Можно увеличить входное измерение до максимального числа + 1 в исходном наборе данных, но это неэффективно. На самом деле это похоже на одноразовое кодирование, когда последовательные данные экономят большой объем памяти.