我在使用 TensorFlow Hub 时遇到了与 Sequential 相关的错误。谁能帮我解决这个问题吗?”
“ValueError:只能将
keras.Layer
的实例添加到顺序模型中。收到:我回顾了一些研究,发现提到了版本问题,但我相信我的问题与此无关。当我将 keras 版本更改为“2.17.0”时,我收到此错误 ->
我使用了@adam-de-nyangos给出的很棒的推荐(我很抱歉,因为我不知道如何链接到他)
看这篇文章: 错误:只能将`keras.Layer`的实例添加到顺序模型中
这些是我所做的事情:
添加或修改此说明:
!pip install tf_keras -q # notice -q for quiet installation (maybe it is not needed as it could be installed properly)
import keras
from keras.layers import Dense
import tensorflow as tf
import tensorflow_hub as hub
import tf_keras
就我而言,我正在接受 Udemy 的 NLP 训练,所以我想要一个编码器+解码器层:
sentence_encoder_layer = hub.KerasLayer("https://tfhub.dev/google/universal-sentence-encoder/4",
input_shape=[],
dtype=tf.string,
trainable=False,
name="USE")
model_6 = tf_keras.Sequential([
sentence_encoder_layer, # THIS LINE WAS MY PAINTFUL CODE with the mentioned error...
tf_keras.layers.Dense(64, activation="relu"), # Use tf_keras.layers.Dense
tf_keras.layers.Dense(1, activation="sigmoid", name="output_layer") # Use tf_keras.layers.Dense
], name="model_6_USE")
最后剩下的代码工作了。请注意,我还需要将 Adam 优化器更改为 tf_keras.optimizer.Adam(),因为无法生成 tf_keras 和 keras 的混合。
我不是专家,可能其他人可以比我解释得更好,但我认为 colab 中的 keras 版本与 tf_keras 不同。 (model.summary似乎是旧的keras 2版本)....
希望这也能帮助你:)
[![可以看到代码的图片] [1]:https://i.sstatic.net/rzmLrfkZ.png