Я хочу заменить данные последовательности одним символом или строкой и вставить их в мою модель keras.Замена данных последовательности на строку выполняется путем добавления отступов следующим образом.
Моя среда - Python 3.6.7, Tensorflow 1.12.0, Keras 2.2.4.
Форма данных:
x input: (23714, 160), y input: (23714, 7)
Один пример последовательности:
array(['M', 'A', 'S', 'K', 'R', 'A', 'L', 'V', 'I', 'L', 'A', 'K', 'G',
'L', 'N', 'G', 'K', 'E', 'V', 'A', 'A', 'Q', 'V', 'K', 'A', 'P',
...
'L', 'V', 'L', 'K'], dtype='<U1')
Я пытался использовать слой Embedding в keras, но произошла следующая ошибка.
ValueError: could not convert string to float: 'I'
Уровень внедрения используется как
Модель:
model = Sequential ()
model.add (InputLayer (input_shape = (160,)))
model.add (Embedding (30000, 160))
model.add (LSTM (160, activation = 'relu'))
model.add (Dense (7, activation = & quot; softmax & quot;))
model.summary ()
model.compile (loss = "categorical_crossentropy", optimizer = "man", metrics = ["accuracy"])
model.fit (x_train, y_train, epochs = 100, batch_size = 100, validation_split = 0.2)
print (model.evaluate (x_test, y_test) [1])
Если я изменю значение 30000 на другое значение, только «I» ошибки изменится на «M» или другую строку.
Я попытался поместить его в плотный слой вместо использования другого слоя, но возникла та же ошибка.Ошибка:
ValueError: could not convert string to float: 'S'
Модель:
model = Sequential ()
model.add (Dense (64, input_shape = (160,), activation = 'relu'))
model.add (Dense (7, activation = & quot; softmax & quot;))
model.summary ()
model.compile (loss = "categorical_crossentropy", optimizer = "man", metrics = ["accuracy"])
model.fit (x_train, y_train, epochs = 100, batch_size = 100, validation_split = 0.2)
print (model.evaluate (x_test, y_test) [1])
Подводя итог, возникает ошибка при попытке вставить данные дополненной последовательности в внедренный или плотный слой.Данные последовательности были преобразованы в массив, и преобразование не было выполнено.
Если я изменяю форму, я получаю следующую ошибку, поэтому сначала я не изменяю форму, но хочу решить проблему встраивания.ValueError: can not reshape array of size 3794240 into shape (23714,1)
Буду очень признателен за вашу помощь.