我正在尝试加载预先训练的嵌入模型,但无论我给出什么形状,我都找不到输入形状。这似乎是一个非常受欢迎的选择,但我在张量流中心页面上找不到任何关于要使用什么输入形状的指示符。输入序列应该具有可变长度,因此我使用无输入形状。Keras 自动提供批量大小embedding_url = 'https://tfhub.dev/google/universal-sentence-encoder-large/5'embedding_layer = hub.KerasLayer(embedding_url)premises = tf.keras.Input(shape=(None,))conclusion = tf.keras.Input(shape=(None,))x1 = embedding_layer(premises)x2 = embedding_layer(conclusion) model = tf.keras.Model(inputs=[premises, conclusion], outputs=[x1, x2])这是我得到的错误ValueError: Python inputs incompatible with input_signature: inputs: ( Tensor("input_5:0", shape=(None, None), dtype=float32)) input_signature: ( TensorSpec(shape=<unknown>, dtype=tf.string, name=None))
1 回答
HUH函数
TA贡献1836条经验 获得超4个赞
您可以通过将输入形状参数保留为空元组来将功能 API 与 KerasLayer 结合使用。
代码:
import tensorflow_hub as hub
import tensorflow as tf
embedding_url = 'https://tfhub.dev/google/universal-sentence-encoder-large/5'
premises = tf.keras.layers.Input(shape=(), name="Input1", dtype=tf.string)
conclusion = tf.keras.layers.Input(shape=(), name="Input2", dtype=tf.string)
embedding_layer = hub.KerasLayer(embedding_url)
x1 = embedding_layer(premises)
x2 = embedding_layer(conclusion)
model = tf.keras.Model(inputs=[premises, conclusion], outputs=[x1, x2])
tf.keras.utils.plot_model(model, 'my_first_model.png', show_shapes=True)
你的模型看起来像这样:
添加回答
举报
0/150
提交
取消