如何使用ELMO嵌入作为tf 2.0 Keras中使用tf-hub的第一嵌入层?



我正在尝试使用ELMO嵌入在Keras中构建NER模型。所以我偶然发现了这个教程,并开始实施。我得到了很多错误,其中一些是:

import tensorflow as tf
import tensorflow_hub as hub
from keras import backend as K

sess = tf.Session()
K.set_session(sess)
elmo_model = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)
sess.run(tf.global_variables_initializer())
sess.run(tf.tables_initializer())
def ElmoEmbedding(x):
return elmo_model(inputs={"tokens": tf.squeeze(tf.cast(x, tf.string)),
"sequence_len": tf.constant(batch_size*[max_len])},signature="tokens",as_dict=True)["elmo"]
input_text = Input(shape=(max_len,), dtype=tf.string)
embedding = Lambda(ElmoEmbedding, output_shape=(None, 1024))(input_text)

它给我AttributeError: module 'tensorflow' has no attribute 'Session'。因此,如果我注释掉sess=代码并运行,它会给我AttributeError: module 'keras.backend' has no attribute 'set_session'

然后,Elmo代码行又给了我RuntimeError: Exporting/importing meta graphs is not supported when eager execution is enabled. No graph exists when eager execution is enabled.

我有以下配置:

tf.__version__
'2.3.1'
keras.__version__
'2.4.3'
import sys
sys.version
'3.8.3 (default, Jul  2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)]'

我如何在Keras模型中使用ELMO嵌入?

您正在使用旧的Tensorflow 1。X语法,但你已经安装了tensorflow 2。

这是《军团要塞2》中elmo的新方法使用tensorflow提取ELMo特征并将其转换为numpy

相关内容

  • 没有找到相关文章

最新更新