Я пытаюсь функционально использовать Универсальный кодировщик предложений от TF Hub в качестве слоя керас.Я хотел бы использовать hub.KerasLayer
с функциональным API Keras, но я не уверен, как этого добиться, пока я видел только примеры hub. KerasLayer с последовательным API
import tensorflow_hub as hub
import tensorflow as tf
from tensorflow.keras import layers
import tf_sentencepiece
use_url = 'https://tfhub.dev/google/universal-sentence-encoder-multilingual-large/1'
english_sentences = ["dog", "Puppies are nice.", "I enjoy taking long walks along the beach with my dog."]
english_sentences = np.array(english_sentences, dtype=object)[:, np.newaxis]
seq = layers.Input(shape=(None, ), name='sentence', dtype=tf.string)
module = hub.KerasLayer(hub.Module(use_url))(seq)
model = tf.keras.models.Model(inputs=[seq], outputs=[module])
model.summary()
x = model.predict(english_sentences)
print(x)
Приведенный выше код сталкивается с этой ошибкой при передаче входного слоя для встраивания: TypeError: Can't convert 'inputs': Shape TensorShape([Dimension(None), Dimension(None)]) is incompatible with TensorShape([Dimension(None)])
Возможно ли использовать hub.KerasLayer с API-интерфейсом keras в TensorFlow 1.x?если это можно сделать, то как?