Как мы можем исправить следующую ошибку «InternalError: Невозможно получить элемент в байтах»? - PullRequest
1 голос
/ 24 июня 2019

Я студент, и я пытаюсь реализовать классификацию текста, используя elmo на керасе. Я импортировал слой elmo из tenorflow-hub.

def ELMoEmbedding(x):
    return embed(inputs={ "tokens": tf.squeeze(tf.cast(x, tf.string)), "sequence_len": tf.constant(100*[max_len])}, signature="tokens", as_dict=True)["elmo"]

url = "https://tfhub.dev/google/elmo/2"
embed = hub.Module(url)

Модель:


inpt = Input(shape=(max_len,), dtype = tf.string)
emb_layer = Lambda(ELMoEmbedding, output_shape=(max_len,1024))(inpt)  
bdlstm1 = Bidirectional(LSTM(1024))
drp = Dropout(0.5)(bdlstm1)
dns1 = Dense(2, activation='relu')(drp)
dns2 = Dense(no_labels, activation='softmax')(dns1)
model = Model(inpt, dns2)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x, y, batch_size = 100, epochs=10)

x и y - это 32 пустых массива

x = [[0,0,1,2,3],[0,0,4,5,6]]
y = [[0,1],[1,0]]

При реализации кода выше я получаю следующую ошибку

c_api.TF_GetCode(self.status.status))

InternalError: Unable to get element as bytes.
...