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

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

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

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

Python

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

Q&A

1回答

491閲覧

機械学習における前処理

sakura.k

総合スコア50

Keras

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

Python

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

0グッド

0クリップ

投稿2023/01/05 05:02

ノイズの多い手書き数字からノイズを除去するために、Denoising Autoencoderを作成した。

次に、作成したモデルに自分で用意したノイズの多い手書き数字を入力し、ノイズを除去したいと思います。そのためのコードを書きましたが、エラーが発生し、ノイズ除去後の画像が表示されません。

ノイズの多い手書き数字からノイズを除去するために、以下のようなDenoising Autoencoderを作成した。

python

1from keras.datasets import mnist 2import numpy as np 3import matplotlib.pyplot as plt 4import keras 5from keras import layers 6from keras.callbacks import TensorBoard 7 8(x_train, _), (x_test, _) = mnist.load_data() 9 10x_train = x_train.astype('float32') / 255. 11x_test = x_test.astype('float32') / 255. 12x_train = np.reshape(x_train, (len(x_train), 28, 28, 1)) 13x_test = np.reshape(x_test, (len(x_test), 28, 28, 1)) 14 15noise_factor = 0.5 16x_train_noisy = x_train + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_train.shape) 17x_test_noisy = x_test + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_test.shape) 18 19x_train_noisy = np.clip(x_train_noisy, 0., 1.) 20x_test_noisy = np.clip(x_test_noisy, 0., 1.) 21 22input_img = keras.Input(shape=(28, 28, 1)) 23 24x = layers.Conv2D(32, (3, 3), activation='relu', padding='same')(input_img) 25x = layers.MaxPooling2D((2, 2), padding='same')(x) 26x = layers.Conv2D(32, (3, 3), activation='relu', padding='same')(x) 27encoded = layers.MaxPooling2D((2, 2), padding='same')(x) 28 29x = layers.Conv2D(32, (3, 3), activation='relu', padding='same')(encoded) 30x = layers.UpSampling2D((2, 2))(x) 31x = layers.Conv2D(32, (3, 3), activation='relu', padding='same')(x) 32x = layers.UpSampling2D((2, 2))(x) 33decoded = layers.Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x) 34 35autoencoder = keras.Model(input_img, decoded) 36autoencoder.compile(optimizer='adam', loss='binary_crossentropy') 37 38autoencoder.fit(x_train_noisy, x_train, 39 epochs=25, 40 batch_size=128, 41 shuffle=True, 42 validation_data=(x_test_noisy, x_test), 43 callbacks=[TensorBoard(log_dir='/tmp/tb', histogram_freq=0, write_graph=False)]) 44autoencoder.save("model.h5")

次に、自分で用意したノイズの多い手書き数字「noise_number.png」を作成したモデルに入力し、ノイズを除去したいと思います。そのために以下のようなコードを書いたのですが、エラーが発生せず、ノイズ除去後の画像も表示されません。どうすればこの問題を解決できるでしょうか?具体的なコードを教えていただけると助かります。

python

1from PIL import Image 2from keras.models import load_model 3 4img = Image.open('/content/noise_number.png').convert('L') 5img=img.resize((28,28)) 6img = np.array(img) 7img=img.reshape(28,28,1) 8autoencoder=load_model("model.h5") 9pred = autoencoder.predict(img[np.newaxis])

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

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

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

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

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

guest

回答1

0

ノイズ除去後の画像も表示されません。

表示するプログラムを書いてないので,表示されなくて当然です.
plt.imshow()を利用して表示してください.

投稿2023/01/05 12:56

PondVillege

総合スコア1579

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問