只能将`keras.Layer`的实例添加到顺序模型中

问题描述 投票:0回答:1

我在使用 TensorFlow Hub 时遇到了与 Sequential 相关的错误。谁能帮我解决这个问题吗?”

在此输入图片描述

“ValueError:只能将

keras.Layer
的实例添加到顺序模型中。收到:(类型为 )”

我回顾了一些研究,发现提到了版本问题,但我相信我的问题与此无关。当我将 keras 版本更改为“2.17.0”时,我收到此错误 ->

在此输入图片描述

python tensorflow keras keras-layer tensorflow-hub
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.