поэтому я пытаюсь использовать Elmo с Keras, я использовал этот код Elmo, так как он единственный обучаемый Elmo
Используя этот Elmo, встраивание интегрируется как слой, следующий за входным слоем, поэтому входной слой на самом деле является строкой. Тем не менее, я не уверен, как поместить мои выходные метки в model.fit (), если они будут вставлены в виде строк, а также имеют ту же структуру, что и входное предложение (но это не сработало), или это будет 1 горячее кодирование, но если да, то как длина выходной метки будет соответствовать длине входного предложения? есть идеи?
Ниже приведен фрагмент моего кода, ошибка, которую я получаю, используя способ предоставления меток и образец меток ввода и вывода (как они предоставляются)
input_word = layers.Input(shape=(1,),
dtype="string",name='word_input')
input_pred = layers.Input(shape=(1,),
dtype="string",name='pred_input')
embedding1 = ElmoEmbeddingLayer()(input_word)
embedding2 = ElmoEmbeddingLayer()(input_pred)
print('embedding 1 ',embedding1)
embeddingsCon = [embedding1,
embedding2]
con11 = keras.layers.concatenate(embeddingsCon)
print('con 11 ',con11)
DenseInjy= layers.Dense(1, activation='relu', name='Dense1')(con11)
print('DenseI',DenseI)
DenseI2= layers.Dense(15, activation='softmax', name='Dense2')(DenseI)
print('DenseI2',DenseI2)
modelI = Model([input_word, input_pred], DenseI2)
modelI.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['categorical_accuracy'])
modelI.fit([train_textEI,train_predIE], train_labelEI,
batch_size = 5,
epochs = 10 )
Train_textEI [0]: [['Учебный центр Университета Лахора создан для
повышение квалификации преподавательского состава и персонала. ']]
Train_predEI [0]: [['установлено установлено установлено установлено установлено
установлено установлено установлено установлено установлено
установлено установлено установлено установлено установлено
установлено установлено установлено установлено установлено ']]
Train_labelEI [[ 'A0-B
A0-I A0-I A0-I A0-I A0-I A0-I O P-B O A1-B A1-I A1-I A1-I A1-I A1-I
A1-I A1-I A1-I O ']] ИНФОРМАЦИЯ: тензор потока: заставка не создана, поскольку существует
На графике нет переменных для восстановления I0308 17: 55: 39.423806
140704918992768 saver.py:1483] Заставка не создана, потому что нет
Переменные на графике для восстановления результата. Форма ELMO (?, 1024)
shape = (?, 1024), dtype = float32) con 11
Тензор ("concatenate_12 / concat: 0", shape = (?, 2048), dtype = float32)
Тензор DenseI ("Dense1_10 / Relu: 0", форма = (?, 1), dtype = float32)
Тензор DenseI2 («Dense2_6 / Softmax: 0», форма = (?, 15), dtype = float32)
Ошибка: ошибка при проверке цели: ожидалось, что Dense2 будет иметь 2 измерения, но получил массив с формой (2905, 1, 1). Я думаю, что это как-то связано с тем, как метки вписываются в модель