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

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

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

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

Python 3.x

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1997閲覧

kerasでモデルの保存ができない

wasshoikimura

総合スコア10

Keras

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

Python 3.x

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2020/01/16 07:35

最後の行のmodel.saveで作成したモデルの保存をしたいのですが、「name 'model' is not defind」とエラー文がでてきて保存できません。
下にコードを載せます

python3

1import tensorflow as tf 2from tensorflow.python.keras.datasets import mnist 3import numpy as np 4import matplotlib.pyplot as plt 5from tensorflow.python.keras.preprocessing.image import array_to_img 6from tensorflow.python.keras.models import load_model 7from tensorflow.python.keras import models 8#import h5py 9(x_train, _), (x_test, _) = mnist.load_data() 10 11#CNNで扱いやすい形に変換 12x_train = x_train.reshape(-1, 28, 28,1) 13x_test = x_test.reshape(-1, 28, 28,1) 14 15print('x_train.shape:', x_train.shape) 16print('x_test.shape:', x_test.shape) 17 18 19 20#画像を0-1の範囲に正規化 21x_train = x_train/255. 22x_test = x_test/255. 23 24def make_masking_noise_data(data_x, percent=0.1): 25 size = data_x.shape 26 masking = np.random.binomial(n=1, p=percent, size=size) 27 return data_x*masking 28 29x_train_masked = make_masking_noise_data(x_train) 30x_test_masked = make_masking_noise_data(x_test) 31 32 33#ガウシアンノイズデータ 34#ガウス分布から生成される乱数を加えている。ノイズを足すことで最大値、最小値をはみ出した場合にclipで0、1にしている 35def make_gaussian_noise_data(data_x, scale=0.8): 36 gaussian_data_x = data_x + np.random.normal(loc=0, scale=scale, size=data_x.shape) 37 gaussian_data_x = np.clip(gaussian_data_x, 0, 1) 38 return gaussian_data_x 39 40x_train_gauss = make_gaussian_noise_data(x_train) 41x_test_gauss = make_gaussian_noise_data(x_test) 42 43#元の画像、マスキングノイズをのせた画像、ガウシアンノイズをのせた画像を表示 44# from IPython.display import display_png, Image 45 46from tensorflow.python.keras.models import Sequential 47from tensorflow.python.keras.layers import Conv2D 48from tensorflow.python.keras.layers import MaxPooling2D 49from tensorflow.python.keras.layers import UpSampling2D 50autoencoder = Sequential() 51 52#Encoder部分 53autoencoder.add( 54 Conv2D( 55 16, 56 (3,3), 57 1, 58 activation='relu', 59 padding='same' , 60 input_shape=(28, 28, 1) 61 ) 62) 63 64autoencoder.add( 65 MaxPooling2D( 66 (2,2), 67 padding='same' 68 ) 69) 70 71autoencoder.add( 72 Conv2D( 73 8, 74 (3,3), 75 1, 76 activation='relu', 77 padding='same' 78 ) 79) 80 81autoencoder.add( 82 MaxPooling2D( 83 (2,2), 84 padding='same' 85 ) 86) 87 88 89#Decoder部分 90autoencoder.add( 91 Conv2D( 92 8, 93 (3,3), 94 1, 95 activation='relu', 96 padding='same' 97 ) 98) 99 100 101autoencoder.add(UpSampling2D((2,2))) 102 103 104autoencoder.add( 105 Conv2D( 106 16, 107 (3,3), 108 1, 109 activation='relu', 110 padding='same' 111 ) 112) 113 114autoencoder.add(UpSampling2D((2,2))) 115 116autoencoder.add( 117 Conv2D( 118 1, 119 (3,3), 120 1, 121 activation='sigmoid', 122 padding='same' 123 ) 124) 125autoencoder.compile( 126 optimizer='adam', 127 loss='binary_crossentropy' 128) 129 130initial_weights = autoencoder.get_weights() 131 132autoencoder.summary() 133 134autoencoder.fit( 135 x_train_gauss, #入力:ガウシアンノイズデータ 136 x_train, #正解:オリジナル画像 #ここを奥のビーズだけの画像にすれば良い 137 epochs=10, #学習するエポック数 138 batch_size=10, #バッチサイズ 139 shuffle=True #シャッフルデータにする 140) 141 142 143#学習したモデルにノイズがある画像を入力してテスト 144gauss_preds = autoencoder.predict(x_test_gauss) 145 146 147model.save('/home/spi/ドキュメント/book_noise.h5', include_optimizer=False)

何かimportし忘れているだけなんでしょうか?

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

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

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

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

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

guest

回答1

0

自己解決

model.save()のmodelの部分を自分で名付けたモデルの名前である「autoencoder」に変更すると保存できました。

投稿2020/01/16 10:25

wasshoikimura

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問