在 Tensorflow 中加载文本分类模型时出现 ValueError

Posted

技术标签:

【中文标题】在 Tensorflow 中加载文本分类模型时出现 ValueError【英文标题】:ValueError when loading a text classification model in Tensorflow 【发布时间】:2021-11-21 13:28:42 【问题描述】:

当我尝试使用 tf.keras.models.load_model() 加载模型时出现错误,并且出现以下错误

ValueError: The mask that was passed in was tf.RaggedTensor(values=Tensor("Placeholder_2:0", shape=(None,), dtype=bool), 
row_splits=Tensor("Placeholder_3:0", shape=(None,), dtype=int64))
and cannot be applied to RaggedTensor inputs. 
Please make sure that there is no mask passed in by upstream layers.

以下是我的模型架构

model = tf.keras.Sequential([
    encoder,
    tf.keras.layers.Embedding(input_dim=len(encoder.get_vocabulary()),output_dim=64,mask_zero=True),
    tf.keras.layers.LSTM(64, return_sequences = True),
    tf.keras.layers.GlobalMaxPool1D(),
    tf.keras.layers.Dense(7)
])

编码层:

encoder = tf.keras.layers.experimental.preprocessing.TextVectorization(
    max_tokens=VOCAB_SIZE)

模型保存为:model.save(PATH)

我正在从其他笔记本加载模型。我能得到一些帮助吗?

【问题讨论】:

【参考方案1】:

好的,我通过从嵌入层中删除 mask_zero=True 属性解决了这个问题,但是,我不确定为什么它有效,以及为什么它不适用于 mask_zero=True。如果有人能告诉我原因会很有帮助。

【讨论】:

以上是关于在 Tensorflow 中加载文本分类模型时出现 ValueError的主要内容,如果未能解决你的问题,请参考以下文章

加载图像时出现numpy memory错误

在 Tensorflow 中,将 Google 的 BigTransfer 模型转换为 Tensorflow Lite 时出现错误

尝试在 TensorFlow 中微调 GPT-2 模型时出现 ValueError

tensorflow js加载gru模型

将模型从 tensorflow 转换为 Coreml (4.0) 时出现实例归一化错误

在将TensorFlow模型转换为Pytorch时出现大小不匹配的错误。