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

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

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

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

Q&A

解決済

1回答

5233閲覧

kerasのモデルのload_modelでエラー(ValueError: Unknown initializer: weight_variable)

akihico

総合スコア27

Keras

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

1グッド

0クリップ

投稿2018/02/04 17:07

■やりたいこと
kerasの学習済データを保存し、読み込みをしたい
(が、エラー(ValueError: Unknown initializer: weight_variable)になる)
環境は、Ubuntu16,python3.6,keras2.1.3です。

■概要
ソースA.pyで学習済モデルを保存し、ソースB.pyで学習済モデルと読み込もうとしています。

ソースAで次のように記述しています。

python

1#パラメータ保存 2model.save('keras_model/FX_model.hdf5')

ソースBで次のように記述しています。

python

1model = load_model('keras_model/FX_model.hdf5')

ソースBを実行すると次のエラーが発生します。

ValueErrorTraceback (most recent call last) <ipython-input-3-5b6e6f5db31a> in <module>() ----> 1 model = load_model('keras_model/FX_model.hdf5') ~/anaconda3/lib/python3.6/site-packages/keras/models.py in load_model(filepath, custom_objects, compile) 241 raise ValueError('No model found in config file.') 242 model_config = json.loads(model_config.decode('utf-8')) --> 243 model = model_from_config(model_config, custom_objects=custom_objects) 244 245 # set weights ~/anaconda3/lib/python3.6/site-packages/keras/models.py in model_from_config(config, custom_objects) 315 'Maybe you meant to use ' 316 '`Sequential.from_config(config)`?') --> 317 return layer_module.deserialize(config, custom_objects=custom_objects) 318 319 ~/anaconda3/lib/python3.6/site-packages/keras/layers/__init__.py in deserialize(config, custom_objects) 53 module_objects=globs, 54 custom_objects=custom_objects, ---> 55 printable_module_name='layer') ~/anaconda3/lib/python3.6/site-packages/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name) 141 return cls.from_config(config['config'], 142 custom_objects=dict(list(_GLOBAL_CUSTOM_OBJECTS.items()) + --> 143 list(custom_objects.items()))) 144 with CustomObjectScope(custom_objects): 145 return cls.from_config(config['config']) ~/anaconda3/lib/python3.6/site-packages/keras/models.py in from_config(cls, config, custom_objects) 1350 model = cls() 1351 for conf in config: -> 1352 layer = layer_module.deserialize(conf, custom_objects=custom_objects) 1353 model.add(layer) 1354 return model ~/anaconda3/lib/python3.6/site-packages/keras/layers/__init__.py in deserialize(config, custom_objects) 53 module_objects=globs, 54 custom_objects=custom_objects, ---> 55 printable_module_name='layer') ~/anaconda3/lib/python3.6/site-packages/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name) 143 list(custom_objects.items()))) 144 with CustomObjectScope(custom_objects): --> 145 return cls.from_config(config['config']) 146 else: 147 # Then `cls` may be a function returning a class. ~/anaconda3/lib/python3.6/site-packages/keras/layers/recurrent.py in from_config(cls, config) 2127 if 'implementation' in config and config['implementation'] == 0: 2128 config['implementation'] = 1 -> 2129 return cls(**config) 2130 2131 ~/anaconda3/lib/python3.6/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs) 89 warnings.warn('Update your `' + object_name + 90 '` call to the Keras 2 API: ' + signature, stacklevel=2) ---> 91 return func(*args, **kwargs) 92 wrapper._original_function = func 93 return wrapper ~/anaconda3/lib/python3.6/site-packages/keras/layers/recurrent.py in __init__(self, units, activation, recurrent_activation, use_bias, kernel_initializer, recurrent_initializer, bias_initializer, unit_forget_bias, kernel_regularizer, recurrent_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, recurrent_constraint, bias_constraint, dropout, recurrent_dropout, implementation, return_sequences, return_state, go_backwards, stateful, unroll, **kwargs) 2014 dropout=dropout, 2015 recurrent_dropout=recurrent_dropout, -> 2016 implementation=implementation) 2017 super(LSTM, self).__init__(cell, 2018 return_sequences=return_sequences, ~/anaconda3/lib/python3.6/site-packages/keras/layers/recurrent.py in __init__(self, units, activation, recurrent_activation, use_bias, kernel_initializer, recurrent_initializer, bias_initializer, unit_forget_bias, kernel_regularizer, recurrent_regularizer, bias_regularizer, kernel_constraint, recurrent_constraint, bias_constraint, dropout, recurrent_dropout, implementation, **kwargs) 1695 self.use_bias = use_bias 1696 -> 1697 self.kernel_initializer = initializers.get(kernel_initializer) 1698 self.recurrent_initializer = initializers.get(recurrent_initializer) 1699 self.bias_initializer = initializers.get(bias_initializer) ~/anaconda3/lib/python3.6/site-packages/keras/initializers.py in get(identifier) 496 elif isinstance(identifier, six.string_types): 497 config = {'class_name': str(identifier), 'config': {}} --> 498 return deserialize(config) 499 elif callable(identifier): 500 return identifier ~/anaconda3/lib/python3.6/site-packages/keras/initializers.py in deserialize(config, custom_objects) 488 module_objects=globals(), 489 custom_objects=custom_objects, --> 490 printable_module_name='initializer') 491 492 ~/anaconda3/lib/python3.6/site-packages/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name) 135 if cls is None: 136 raise ValueError('Unknown ' + printable_module_name + --> 137 ': ' + class_name) 138 if hasattr(cls, 'from_config'): 139 custom_objects = custom_objects or {} ValueError: Unknown initializer: weight_variable


Keras modelを保存するには?
を参考に書いてみたのですが、どのように解決すればよろしいでしょうか。よろしくお願いします。

aran_roneruta👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

https://github.com/keras-team/keras/issues/5916

同様のエラーがありますが、リンク先の方法では解決しませんか?

投稿2018/02/05 05:06

mkgrei

総合スコア8560

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

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

akihico

2018/02/05 16:48

ありがとうございます!解決の糸口が見つかりました。 ようは、学習する側のソースで使っている独自の関数を、モデルを読み込む側のソースにも用意する必要があるということですね。考えてみれば、なるほどです。 学習する側のソースでは、「weight_variable」関数を使っていたので、モデルを読み込む側のソースにも同じものを用意しました。 そして、モデルの読み込みは下記のようにしました。 model = load_model('keras_model/FX_model.hdf5', custom_objects={'weight_variable': weight_variable}) また、別のエラーが出るようになったのですが、一歩前進できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問