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

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

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

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

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

Q&A

1回答

1017閲覧

kerasにおけるh5ファイルへの保存でエラーが出ます

akanenko0306

総合スコア13

Keras

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

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

0グッド

0クリップ

投稿2019/04/25 03:12

前提・実現したいこと

最終的に、自分で用意した画像を判定してくれるプログラムを作りたいです。
以前作成したMLPでデータを学習するプログラムをh5ファイルに保存し、自分の用意した画像を判定させたかったのですが
ファイル保存の際にエラーが表示され、保存できませんでした。

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

python

1NameError Traceback (most recent call last) 2<ipython-input-4-94c89503e37f> in <module> 3----> 1 model.save_weights('cifar10-mlp-weight.h5') 4 5NameError: name 'model' is not defined 6

###該当のソースコード

python

1import matplotlib.pyplot as plt 2import keras 3from keras.datasets import cifar10 4from keras.models import Sequential 5from keras.layers import Dense, Dropout 6import h5py 7 8num_classes = 10 9im_rows = 32 10im_cols = 32 11im_size = im_rows * im_cols * 3 12 13(X_train, y_train), (X_test, y_test) = cifar10.load_data() 14 15X_train = X_train.reshape(-1, im_size).astype('float32') / 255 16X_test = X_test.reshape(-1, im_size).astype('float32') / 255 17 18y_train = keras.utils.to_categorical(y_train, num_classes) 19y_test = keras.utils.to_categorical(y_test, num_classes) 20 21model = Sequential() 22model.add(Dense(512, activation="relu", input_shape=(im_size,))) 23model.add(Dense(num_classes, activation='softmax')) 24 25model.compile( 26 loss='categorical_crossentropy', 27 optimizer='adam', 28 metrics=['accuracy']) 29 30hist = model.fit(X_train, y_train, 31 batch_size=32, epochs=50, 32 verbose=1, 33 validation_data=(X_test, y_test)) 34 35score = model.evaluate(X_test, y_test, verbose=1) 36 37print('Accuracy_rate=', score[1], 'lose=', score[0]) 38 39plt.plot(hist.history['acc']) 40plt.plot(hist.history['val_acc']) 41plt.title('Accuracy') 42plt.legend(['train', 'test'], loc='upper left') 43plt.show() 44plt.plot(hist.history['loss']) 45plt.plot(hist.history['val_loss']) 46plt.title('Loss') 47plt.legend(['train', 'test'], loc='upper left') 48plt.show()

python

1model.save_weights('cifar10-mlp-weight.h5') 2

試したこと

インターネットで調べてみて、他のコードで入力してみても同じエラーが表示されます。

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

jupyternotebookを使用しており、上記のプログラム自体は正常に動いている状態です。
最後の一行の、ファイルの保存だけができません。
最後の一行(model.save_weights('cifar10-mlp-weight.h5'))だけ、jupyternotebookのセルを追加して実行しています。

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

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

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

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

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

guest

回答1

0

そもそも学習結果の重みを保存したいのであれば、
同じjupyternotebookのセルに記載しなければならないと思います。

1つ目のセルのmodel.fit()を呼び出したあとに実行する形ではだめなのでしょうか?

python

1hist = model.fit(X_train, y_train, 2 batch_size=32, epochs=50, 3 verbose=1, 4 validation_data=(X_test, y_test)) 5 6model.save_weights('cifar10-mlp-weight.h5')

投稿2019/04/25 04:30

amanoese

総合スコア132

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問