为了账号安全,请及时绑定邮箱和手机立即绑定

Tensorflow Hub 形状未定义

Tensorflow Hub 形状未定义

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

你的模型看起来像这样:

//img1.sycdn.imooc.com//64ad353a00015cfb06410182.jpg

查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信