前提・実現したいこと
最終的に、自分で用意した画像を判定してくれるプログラムを作りたいです。
以前作成した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のセルを追加して実行しています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。