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

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

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

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

Python

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

Q&A

解決済

2回答

1516閲覧

tensorflow.python.keras.optimizers.SGD が存在しない

fen57

総合スコア47

Keras

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

Python

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

0グッド

0クリップ

投稿2023/01/19 09:50

編集2023/01/22 20:25

エラー

ディープラーニングの学習をしています。
以下のコードを実行すると、

Python

1from tensorflow.python.keras import optimizers 2... 3optimizer = optimizers.SGD(learning_rate=0.1)

AttributeError: module 'tensorflow.python.keras.optimizers' has no attribute 'SGD'
とエラーが出てしまいます。
エラーを解決する方法は無いでしょうか。ご教授お願いいたします。

実行環境

Python: 3.9.13
tensorflow: 2.11.0

追記です

断片的なコードになってしまいすいません。
学習中のコードは以下です。

import numpy as np from sklearn import datasets from sklearn.model_selection import train_test_split import tensorflow as tf from tensorflow.python.keras.models import Sequential from tensorflow.python.keras.layers import Dense # from tensorflow.python.keras import optimizers # from tensorflow.keras import optimizers # from tensorflow import optimizers # データ準備 N = 300 x, t = datasets.make_moons(N, noise=0.3) t = t.reshape(N, 1) x_train, x_test, t_train, t_test = train_test_split(x, t, test_size=0.2) # モデル構築 model = Sequential() model.add(Dense(3, activation='sigmoid')) model.add(Dense(1, activation='sigmoid')) # モデル学習 optimizer = optimizers.SGD(learning_rate=0.1) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy']) model.fit(x_train, t_train, epochs=100, batch_size=10, verbose=1)

importの部分で
from tensorflow.python.keras import optimizers とした場合は
モデル学習時に AttributeError: module 'tensorflow.python.keras.optimizers' has no attribute 'SGD' というエラーが
from tensorflow.keras import optimizers とした場合は
import時に'__init__.py' の参照 'keras' が見つかりません というエラーが
from tensorflow import optimizers とした場合は
モデル学習時にValueError: Could not interpret optimizer identifier: <keras.optimizers.optimizer_experimental.sgd.SGD object at 0x000001DBDA8DCA90> というエラーが発生します。

アドバイスいただけると幸いです。よろしくお願いいたします。

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

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

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

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

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

melian

2023/01/19 10:38

どうやらモジュール構成が変更になった様です。 from tensorflow import optimizers としてみて下さい。
jbpb0

2023/01/19 10:59

from tensorflow.python.keras import optimizers ↓ 変更 from tensorflow.keras import optimizers 他にも「tensorflow.python.keras」があれば、「tensorflow.keras」に書き換えてみてください
fen57

2023/01/19 11:13

melianさん ありがとうございます。 教えていただいた通り変更すると、SGD作成時にエラーは起きないのですが 以下のコードで学習をさせようとすると model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy']) model.fit(x_train, t_train, epochs=100, batch_size=10, verbose=1) Could not interpret optimizer identifier: <keras.optimizers.optimizer_experimental.sgd.SGD object at 0x000001CF1E47B880> が出てしまいます。 jbpb0さん ありがとうございます。 from tensorflow.keras import optimizers に変更したところ、 '__init__.py' の参照 'keras' が見つかりません とエラーが出てしまいます。
jbpb0

2023/01/22 11:07

> from tensorflow.python.keras.models import Sequential from tensorflow.python.keras.layers import Dense 私の前のコメントに 他にも「tensorflow.python.keras」があれば、「tensorflow.keras」に書き換えてみてください と書きましたので、上記もそうしてみてください 当方でgoogle colabで確認したところ、回答に書いたように、そうすればエラーは出ませんでした
guest

回答2

0

ベストアンサー

tensorflow: 2.11.0

google colabで下記を実行したら、エラーは出ませんでした

python

1!pip install tensorflow==2.11.0 2 3import numpy as np 4from sklearn import datasets 5from sklearn.model_selection import train_test_split 6import tensorflow as tf 7#from tensorflow.python.keras.models import Sequential 8#from tensorflow.python.keras.layers import Dense 9#from tensorflow.python.keras import optimizers 10from tensorflow.keras.models import Sequential 11from tensorflow.keras.layers import Dense 12from tensorflow.keras import optimizers 13 14# データ準備 15N = 300 16x, t = datasets.make_moons(N, noise=0.3) 17t = t.reshape(N, 1) 18x_train, x_test, t_train, t_test = train_test_split(x, t, test_size=0.2) 19 20# モデル構築 21model = Sequential() 22model.add(Dense(3, activation='sigmoid')) 23model.add(Dense(1, activation='sigmoid')) 24 25# モデル学習 26optimizer = optimizers.SGD(learning_rate=0.1) 27model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy']) 28model.fit(x_train, t_train, epochs=100, batch_size=10, verbose=1)

投稿2023/01/22 11:01

jbpb0

総合スコア7651

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

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

fen57

2023/01/22 11:25

検証までしてくださり、ありがとうございます。 私もcolabで動作を確認できました。 このエラーで学習が進まなかったので、本当に感謝です。
guest

0

import tensorflow tensorflow.optimizers.SGD(learning_rate=0.1)

上記ではどうでしょうか?

投稿2023/01/19 10:43

meg_

総合スコア10577

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

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

fen57

2023/01/19 11:10

回答ありがとうございます。 教えていただいた通りに変更するとSGD作成時にエラーは起きないのですが、 その後以下のコードで学習をさせようとすると model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy']) model.fit(x_train, t_train, epochs=100, batch_size=10, verbose=1) ValueError: Could not interpret optimizer identifier: <keras.optimizers.optimizer_experimental.sgd.SGD object at 0x000001CF1DA4CB80> が出てしまいます。 このエラーにはどう対処すれば良いでしょうか?
meg_

2023/01/19 12:06

断片的なコードでは回答が難しいです。全体のコードを質問に追記してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問