Tensorflow Hub 形状未定义

我正在尝试加载预先训练的嵌入模型,但无论我给出什么形状,我都找不到输入形状。这似乎是一个非常受欢迎的选择,但我在张量流中心页面上找不到任何关于要使用什么输入形状的指示符。输入序列应该具有可变长度,因此我使用无输入形状。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))


扬帆大鱼
浏览 108回答 1
1回答

HUH函数

您可以通过将输入形状参数保留为空元组来将功能 API 与 KerasLayer 结合使用。代码:import tensorflow_hub as hubimport tensorflow as tfembedding_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)你的模型看起来像这样:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python