【问题标题】:TF Hub Fine Tuning Error : ValueError: Failed to find data adapter that can handle inputTF Hub 微调错误:ValueError:无法找到可以处理输入的数据适配器
【发布时间】:2019-12-18 12:30:10
【问题描述】:

我正在使用余弦相似度损失代码进行简单的微调,并出现以下错误。你能帮我理解问题并解决吗?

张量流版本:2.0

错误:

ValueError:找不到可以处理输入的数据适配器:(包含类型 {"class 'str'"} 的值的类 'list'),类 'numpy.ndarray'>

代码

import tensorflow as tf
import tensorflow_hub as hub
from tensorflow import keras
huburl='https://tfhub.dev/google/universal-sentence-encoder-large/5'
left_loaded_module_obj = hub.load(huburl)

left_input = keras.Input(shape=(), dtype=tf.string)


# left_trainable_embedding_layer = hub.KerasLayer(huburl,trainable=True)
left_trainable_embedding_layer = hub.KerasLayer(left_loaded_module_obj,trainable=True)

embedding_left_output= left_trainable_embedding_layer(left_input)


model = tf.keras.Model(left_input, embedding_left_output)
model.compile('sgd', loss=tf.keras.losses.CosineSimilarity(axis=-1))
model.summary()

import tensorflow_hub as hub
import tensorflow as tf
tf.enable_eager_execution()
embed = hub.load("https://tfhub.dev/google/universal-sentence-encoder-large/5")
text_list=["The quick brown fox jumps over the lazy dog.",
    "I am a sentence for which I would like to get its embedding"]
embeddings = embed(text_list)

print (embeddings.numpy())

embed_target=embeddings.numpy()
print (type(embed_target),embed_target.shape)

model.fit(x=text_list,y=embed_target)

【问题讨论】:

  • 检查您要输入模型的输入“类型”。

标签: python tensorflow keras tensorflow2.0 tensorflow-hub


【解决方案1】:

只需将列表 y 转换为 numpy 数组,它就可以解决问题。像这样的:

y = np.array(y)

【讨论】:

    【解决方案2】:

    我的问题是我尝试使用 X_train 作为 python 列表。它引发了完全相同的错误。 但是当将 X_train 更改为 np.array(X_train) 模型开始训练

    【讨论】:

      猜你喜欢
      • 2020-01-12
      • 1970-01-01
      • 2021-10-19
      • 2020-02-13
      • 1970-01-01
      • 2020-05-30
      • 2020-10-14
      • 2023-03-30
      • 2022-06-22
      相关资源
      最近更新 更多