質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2869閲覧

keras.optimizersのエラーについて

lyon_09

総合スコア1

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/01 11:24

google colaboratoryにてコード実行時にエラーが出るようになった。

google colaboratoryを使用して、MNISTの画像分類をするCNNを作成しています。
keras.optimizersにてエラーが出てしまいます。

発生している問題・エラーメッセージ

ImportError: cannot import name 'Adadelta' from 'keras.optimizers' (/usr/local/lib/python3.7/dist-packages/keras/optimizers.py)

該当のソースコード

python

1from __future__ import print_function 2import tensorflow.keras 3import keras.optimizers 4from keras.optimizers import Adadelta 5from keras.datasets import mnist 6from keras.models import Sequential 7from keras.layers import Dense, Dropout, Flatten 8from keras.layers import Conv2D, MaxPooling2D 9from keras import backend as K 10from keras.utils.np_utils import to_categorical 11from keras.layers import Dense, BatchNormalization, Activation

試したこと

以前(google colaboratoryのpythonのバージョンが変わる前?)には問題なく動作していました。optimizersの部分でエラーが起きるのでimportをtensorflow.kerasに変えたりしていろいろ動作させましたが改善されませんでした。(tensorflow.kerasに変更して動作させるとfrom tensorflow.keras.utils.np_utils import to_categoricalの部分で別のエラーが出る。「ModuleNotFoundError: No module named 'tensorflow.keras.utils.np_utils'」)

補足情報(FW/ツールのバージョンなど)

google corabolatory(python3.7.12)
動作できていた時のバージョンは把握していなくてわかりません。(おそらくpython 3.6.x)
2021年6月ぐらいの時には動作していました。
pythonバージョンを3.6系に戻して動作させるしかないのでしょうか?
どのように記述を変更すれば動作するようになるか教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「tensorflow.keras」と「keras」を混ぜたらダメです

python

1import keras.optimizers 2from keras.optimizers import Adadelta 3from keras.datasets import mnist 4from keras.models import Sequential 5from keras.layers import Dense, Dropout, Flatten 6from keras.layers import Conv2D, MaxPooling2D 7from keras import backend as K 8from keras.utils.np_utils import to_categorical 9from keras.layers import Dense, BatchNormalization, Activation

python

1import tensorflow.keras.optimizers 2from tensorflow.keras.optimizers import Adadelta 3from tensorflow.keras.datasets import mnist 4from tensorflow.keras.models import Sequential 5from tensorflow.keras.layers import Dense, Dropout, Flatten 6from tensorflow.keras.layers import Conv2D, MaxPooling2D 7from tensorflow.keras import backend as K 8from tensorflow.keras.utils import to_categorical 9from tensorflow.keras.layers import Dense, BatchNormalization, Activation

投稿2021/10/02 07:15

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lyon_09

2021/10/02 12:42

わかりやすく回答していただきありがとうございました。どちらかに統一するということですね。 追加で少し質問なのですが、以前(今年の6月ごろ)はfrom tensorflow.keras.optimizers import Adadelta というoptimizersのインポートの記述がなくても問題なく動作していたのですが、最近までにtensorflowもしくはkerasの使用方法などに変化があったのでしょうか。
jbpb0

2021/10/03 09:17 編集

!pip install tensorflow==2.4.3 !pip install keras==2.4.3 from keras.optimizers import Adadelta と、過去バージョンを入れた場合はエラーにはなりません どこかの時点のバージョンアップで、仕様が変わったのです Pythonのモジュールでは、よくあることです なお、Google Colabで既にkerasかtensorflowをインポートしてる場合は、「!pip install...」後にカーネル再起動が必要です また、過去バージョンを入れて「from keras...」がエラーにならない場合でも、「tensorflow.keras」と「keras」は混ぜない方がいいです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問