|
前提知識
・ニューラルネットワークとは
・pythonとは
■MNISTとは
MNISTとはニューラルネットワークの研究者Yann LeCun氏の有名なサイトのことで、ここに機械学習用のデータ用として1から9までの手書きの数字をデータ化したものがあります。
トレーニングデータとして60,000個のデータ、テストデータとして10,000個のデータがあります。
http://yann.lecun.com/exdb/mnist/
■データセットの説明
1つの画像データは以下の様に、縦28ピクセルx横28ピクセルの計784ピクセル分のデータとして0~255の値で表現されております。

ただし、上記サイトにあるデータの形式は少し扱いが難しいので、こちらでcsv/テキストファイルを準備しました。使用するのはどちらでもよいです。
・csvファイル:トレーニングデータ , テストデータ
・テキストファイル:トレーニング/テストデータ
csvファイルは以下形式になっており、1行に1つの画像データがあります。テキストデータは数字が羅列されており、改行されたところまでが一つの画像データとなっております。

なおデータの内訳は以下のとおり。

■pythonでの実装例
①csvデータの場合
上記画像が出力されます。
import numpy as np
import matplotlib.pyplot as plt
training_file = open("mnist_train_data.csv", 'r') # 訓練データを開く
training_list = training_file.readlines() # データを読み込む
training_file.close() # ファイルを閉じる
data= training_list[0].split(',') # 0行目を取り出し、splitでデータをカンマ(,)区切る
img= np.asfarray(data[1:]).reshape((28,28)) # 0行目の2つ目のデータから取り出し、28x28に配置
plt.imshow(img, cmap='Greys') # 画像をグレースケールで表示出来るようにする
plt.show() # 画像を表示
②テキストデータの場合
import numpy as np
import matplotlib.pyplot as plt
train = np.loadtxt('mnist_train.txt') # 訓練データを読み込む
img = train.reshape(60000, 28, 28) # データ整形
plt.imshow(img[0], cmap='Greys') # 画像をグレースケールで表示出来るようにする
plt.show() # 画像を表示
③kerasを使う場合
kerasというライブラリには、MNISTのデータセットがありますので、それを使ってもよいです。(要kerasインストール)
from keras.datasets import mnist
import matplotlib.pyplot as plt
(train_img, train_ans), (test_img, test_ans) = mnist.load_data() # 訓練データを読み込む
plt.imshow(train_img[0], cmap='Greys') # 画像をグレースケールで表示出来るようにする
plt.show() # 画像を表示
サブチャンネルあります。⇒ 何かのお役に立てればと
|
|