🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

2回答

1718閲覧

Keras 'TFOptimizer'のエラーについて

succulent

総合スコア12

Keras

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2021/01/24 08:33

編集2021/01/25 14:09

#やりたいこと
Kerasを用いて作成・学習させたNNモデルをsaveしようとしたところ,エラーが出てしまいます.
現環境のバージョン等は以下の通りです.

OS:Ubuntu 18.04.3 LTS Python3.6.8 TensorFlow 1.15.3 Keras 2.2.4

#エラー

File "/home/user/.local/lib/python3.6/site-packages/keras/engine/saving.py", line 116, in _serialize_model if isinstance(model.optimizer, optimizers.TFOptimizer): AttributeError: module 'keras.optimizers' has no attribute 'TFOptimizer'

#やったこと
こちらのgithubのIssueを参考に,

# 変更前 import tensorflow as tf from tensorflow import keras from keras import optimizers

から

import tensorflow as tf from tensorflow import keras from tensorflow.keras import optimizers from tensorflow.python.keras.optimizers import TFOptimizer

に変更しましたが,同様のエラーが出てしまいます.
何か対処をしている方がいましたら,よろしくお願いいたします.

#追記
上記エラーファイルの"/home/user/.local/lib/python3.6/site-packages/keras/engine/saving.py"では,

from .. import optimizers

としており,そのoptimizers.py内でTFOptimizer Classが定義されていました.

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

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

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

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

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

guest

回答2

0

自己解決

pyenvを用いてPython3.7.2により実行したところ,無事プログラムを動かす事が出来ました.
(詳細な原因は分かりませんが,公式APIで修正されたようです)

投稿2021/01/25 15:20

succulent

総合スコア12

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

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

0

TensorFlowに付属のKerasを使うの記事を参考に考えると、

python

1if isinstance(model.optimizer, optimizers.TFOptimizer): 2 # を 3if isinstance(tf.keras.models.optimizer, tf.keras.optimizers.TFOptimizer):

とtfクラスの孫属性として指定すると認識するのではないでしょうか。

投稿2021/01/25 13:08

seastar3

総合スコア2287

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

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

succulent

2021/01/25 14:05

回答ありがとうございます. tf.kerasをつけて動かしてみましたが, ``` AttributeError: module 'tensorflow.python.keras.api._v1.keras' has no attribute 'model' ``` とのエラーでダメでした. optimizer側のみ付けるのも試しましたが, ``` AttributeError: module 'tensorflow.python.keras.api._v1.keras.optimizers' has no attribute 'TFOptimizer' ``` とのエラーが出てしまいました...
seastar3

2021/01/25 14:14 編集

直接解決に至らず申し訳ありません。 tf.keras が tensorflow.python.keras とフルパスに展開しているということは、ちょっと進歩が見られますね。 ここでkeras内蔵のtensorflowを用意できたらいけるのではないでしょうか。 もしくはTFOptimizerまでの正確なパスを突き止めるとよいのかも。
succulent

2021/01/25 14:21

いえいえ,進展しただけでもありがたいです... keras内臓のtensorflowとはどういう事でしょうか? 1つ前のエラーの際には"import tensorflow as tf"とはしております.
seastar3

2021/01/25 14:43

すみません。私の勘違いでkerasライブラリにtensorflowは含まれるのですね。 回答中の記事に、intellisenseを表示させてフルパスを確かめたとありますので、ubantuのIDEで補完機能を使ってたどり着くとよいのではないでしょうか。
succulent

2021/01/25 15:19

力技かもしれませんが,自力解決出来ました. ここまでお付き合い下さって有難うございました!!
seastar3

2021/01/25 15:37

無事に動いてよかったですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問