【colab】「Only instances of `keras.Layer`~」の解決方法

製作 プログラム

最終更新日:2025/03/19

ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.

追記

下記の方法だとまた別の個所でエラーが出ちゃったのでさらに違う解決方法にたどり着きました。

「Only instances of `keras.Layer`~」の解決方法・続

追記終わり————————

グーグルの「colab」っていうAIプログラミングをブラウザでできるサービスがあります。

で、初心者なもので「画像分類器を再トレーニングする」っていう公式ドキュメントに載ってたチュートリアルを読みつつ、そこに載ってるコードをコピペしてると…、なぜかただコピーしただけなのにエラーが。

Only instances of `keras.Layer` can be added to a Sequential model. Received: <tensorflow_hub.keras_layer.KerasLayer object at 0x~~~~~~~

こんなエラー。

という事でここではグーグルのcolabで、tensorflowを使った時に出る「hub.KerasLayer」がらみのエラーの治し方を紹介しますね。

    1. 追記
  1. 解決策:tensorflowのバージョンを下げよう
  2. 理由:最新版に入ってるバグが原因…らしい
  3. 「tensorflow」とは
  4. 「tensorflow-hub」とは
  5. 「keras」とは
  6. 「keras.Sequential()」とは
  7. まとめ

解決策:tensorflowのバージョンを下げよう

理由は後としてまず解決方法から。

colabの一番最初の方に以下コードを1行追加して実行してください。

!pip install tensorflow==2.15.0 tensorflow-hub==0.15

これでとりあえずエラーがなくなり実行できるようになります。

理由:最新版に入ってるバグが原因…らしい

私自身、AIプログラミングもpythonも、それからtensorflowについても初心者なんでそこまでわかってないんですが、調べてみた限り(こちらこちら)どうやらこの「Only instances of `keras.Layer` can be added to a Sequential model.~」っていうエラーは、最新版の「tensorflow-hub」に含まれてるバグ、みたいです。

なので上記解決方法では、古いバージョンの「tensorflow」と「tensorflow-hub」をインストールしなおしてるんですね。

「tensorflow」とは

データセット(学習に使う画像とかの事)たくさん!とそのデータセットを使って学習した学習済みモデルが無料で使える!っていうやつ…みたいです。グーグルが作ってるんですってね。

「tensorflow-hub」とは

学習済みモデル(つまりこれを読み込むだけでAIに学習させなくてもすぐに画像識別とかできちゃうぞ!っていう事)を「keras」っていうグラフ表示したりする便利なやつに、一瞬で読み込んでくれるやつ、らしいです。

今回こいつのバグのせいでチュートリアルにもかかわらずエラーが出てるわけです。

「keras」とは

AIの学習を効率的に書ける…のかな。kerasを使う事でAIモデル(ニューラルネットワークの層の数をいじったりみたいな?)を作ったり、グラフ出したり、さらに勉強させたりが簡単にできるんだと思います。というかなんかすでにkeras自体がtensorflowに組み込まれてるんでここらへん3つに関しては、もう同じようなもの、っていう認識でいいのかもしれません。

「keras.Sequential()」とは

で、なんかモデルを作るときにどんなニューラルネットワークにしよかなー?っていうのを「keras.Sequential()」っていうのでやるみたい。今回たぶんエラーとしてはこの「keras.Sequential()」で出ると思います。実際にはその中の一連の処理にある「hub.KerasLayer()」でエラー出てるんですが、わかりづらいですよね。

んでkerasでモデルを作るとき、ほかにも「FunctionalAPI」っていうのがあってもっと複雑なモデルが作れる…らしいです。ふーん。

まとめ

ここではグーグルのcolabで、チュートリアル通りにやってるのにもかかわらず出てくる「Only instances of `keras.Layer` can be added to a Sequential model.~」っていうエラーの解決方法について紹介しました。

まとめると最新バージョンに含まれるバグのせいで出てくるエラーっぽいので、バージョンを下げて再インストールし直すことで動くようになるよ!という事でした。

【おしらせ、というか完全なる宣伝】

文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.

こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /