在 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的主要内容,如果未能解决你的问题,请参考以下文章
在 Tensorflow 中,将 Google 的 BigTransfer 模型转换为 Tensorflow Lite 时出现错误
尝试在 TensorFlow 中微调 GPT-2 模型时出现 ValueError