gpt4 book ai didi

python - 在 Keras 中使用通用句子编码器嵌入层

转载 作者:行者123 更新时间:2023-12-05 04:55:59 24 4
gpt4 key购买 nike

我正在尝试使用 Keras 将 USE 作为嵌入层加载到我的模型中。我使用了两种方法。第一个改编自代码 here如下:

import tensorflow as tf
tf.config.experimental_run_functions_eagerly(True)

import tensorflow_hub as hub
from keras import backend as K

module_url = "../emb_models/use/universal-sentence-encoder-large-5"
embed = hub.load(module_url)

# For the keras Lambda
def UniversalEmbedding(x):
results = embed(tf.squeeze(tf.cast(x, tf.string)))
# results = embed(tf.squeeze(tf.cast(x, tf.string)))["outputs"]
# removed outputs as it gave an error "TypeError: Only integers, slices (`:`), ellipsis (`...`),
# tf.newaxis (`None`) and scalar tf.int32/tf.int64 tensors are valid indices, got 'outputs'"
print(results)
return K.concatenate([results])

# model
sentence_input = Input(shape=(1,), name='sentences', dtype="string")
sentence_embeds = Lambda(UniversalEmbedding, output_shape=(embed_size,))(sentence_input)

模型已成功创建,但在拟合过程中(一旦开始训练)出现以下错误:

2020-12-01 10:45:12.307164: W tensorflow/core/framework/op_kernel.cc:1502] OP_REQUIRES failed at lookup_table_op.cc:809 : Failed precondition: Table not initialized.

第二种方法改编自此 issue如下:

module_url = "../emb_models/use/universal-sentence-encoder-large-5"
use_embeddings_layer = hub.KerasLayer(module_url, trainable=False, dtype=tf.string)

inputs = tf.keras.layers.Input(shape=(None,), dtype='string'))
sentence_input = Input(shape=(1,), name="sentences", dtype="string")
sentence_input = Lambda(lambda x: K.squeeze(x, axis=1), name='squeezed_input')(sentence_input)
sentence_embed = use_embeddings_layer(sentence_input)

模型未创建,出现以下错误:

AttributeError: 'tuple' object has no attribute 'layer'

有什么想法吗?

信息:tensorflow-gpu == 1.14.0,keras==2.3.1,tensorflow-hub==0.8.0

最佳答案

thread有一个相关示例显示如何使用 hub.KerasLayer 和 USE。该示例使用 training=true 但它应该与 training=false 一起使用(纯推理,也没有微调)。

此外,最好尝试使用最新版本的 TF(例如 TF 2.5),以排除因旧 TF 版本导致的任何问题。

关于python - 在 Keras 中使用通用句子编码器嵌入层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65089669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com