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

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

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

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

Python

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

Q&A

解決済

1回答

498閲覧

ポケモンの画像を集め、それにノイズをかけ、ノイズ除去できるようにしたい。

launcha

総合スコア13

Keras

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

Python

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

0グッド

1クリップ

投稿2019/07/11 07:26

編集2019/07/11 07:40

前提・実現したいこと

ポケモンの画像を集め、それにノイズをかけたときにノイズ除去できるようにしたい。

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

そもそもそのポケモンのデータを訓練データとテストデータに分けるやり方がわかりません。参考にしていたmnistのサイトでは

from tensorflow.python.keras.datasets import mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()

の2行で終わっちゃってるんですけど mnist.load_data() に当たる部分を自分で作るにはどうすればいいのかを教えてもらいたいです。前画像データの中から8割を訓練データ、2割をテストデータにしたいです。今は番号順に並んでるのでランダムに8割選べると尚ありがたいです。

該当のソースコード

import numpy as np
import matplotlib.pyplot as plt

from tensorflow.python import keras
from tensorflow.python.keras import backend as K
from tensorflow.python.keras.models import Model, Sequential
from tensorflow.python.keras.layers import Conv2D, Dense, Input, MaxPooling2D, UpSampling2D, Lambda
from tensorflow.python.keras.preprocessing.image import load_img, img_to_array, array_to_img, ImageDataGenerator

ls drive/My\ Drive/poke64
(x_train, y_train),(x_test, y_test) =?????????????????????????

/////////CNNで扱いやすい形に変形
x_train = x_train.reshape(-1,28,28,1)
x_test = x_test.reshape(-1,28,28,1)

////////特徴量の正規化
x_train = x_train/255.
x_test = x_test/255.

/////////////マスキングノイズ
def make_masking_noise_data(data_x,percent=0.1):
size = data_x.shape
masking = np.random.binomial(n=1, p=percent,size=size)
return data_x*masking

x_train_masked = make_masking_noise_data(x_train)
x_test_masked = make_masking_noise_data(x_test)

/////////////ガウシアンノイズ
def make_gaussian_noise_data(data_x, scale=0.8):
gaussian_data_x = data_x + np.random.normal(loc=0, scale=scale, size=data_x.shape)
gaussian_data_x = np.clip(gaussian_data_x, 0, 1)
return gaussian_data_x

x_train_gauss = make_gaussian_noise_data(x_train)
x_test_gauss = make_gaussian_noise_data(x_test)

/////////ノイズをかけた画像の表示
from IPython.display import display_png

display_png(array_to_img(x_train[0]))
display_png(array_to_img(x_train_gauss[0]))
display_png(array_to_img(x_train_masked[0]))

試したこと

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

現在google colaboratoryを使用しています。最近勉強始めたばかりであまりよくわかってないのですが、よろしくお願いします

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

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

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

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

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

tiitoi

2019/07/11 13:49

ポケモンの画像というのはあるディレクトリに全部入っているのでしょうか? 学習データとテストデータを分割する前に画像を読み込む必要がありますが、画像を読み込んで、配列に詰めていくところは自分でできそうでしょうか?
launcha

2019/07/11 23:09

Google Driveの中にpoke64というフォルダがあってその中に全て入っています。 画像を読み込むところはできていますが、"配列に詰めていくところ"も教えてもらいたいです。お手数おかけしますがよろしくお願いします
guest

回答1

0

ベストアンサー

前画像データの中から8割を訓練データ、2割をテストデータにしたいです。

train_test_split() をお使いください。

sklearn.model_selection.train_test_split — scikit-learn 0.21.2 documentation

使い方
scikit-learn - データセットを学習データとテストデータに分割する。

サンプルコード

python

1from pathlib import Path 2 3import cv2 4import numpy as np 5from sklearn.model_selection import train_test_split 6 7# 画像があるディレクトリ 8img_dirpath = Path(r"poke64") 9 10# モデルの入力サイズ 11size = (256, 256) # この値は適宜変更してください 12 13# データを作成する。 14data = [] 15for path in img_dirpath.iterdir(): 16 if path.suffix not in [".jpg", ".jpeg", ".png", ".gif", ".bmp"]: 17 continue # 画像以外は無視する。 18 19 # 画像を読み込む。 20 img = cv2.imread(str(path)) 21 # 画像をリサイズする。 22 img = cv2.resize(img, size) 23 24 data.append(img) 25 26data = np.array(data) 27 28# 学習データとテストデータに分割する。 29x_train, x_test = train_test_split(data, test_size=0.2) 30print(x_train.shape, x_test.shape)

投稿2019/07/12 04:47

tiitoi

総合スコア21956

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

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

launcha

2019/07/12 11:21

ありがとうございます!いろいろ試しながら頑張っていきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問