limitVue.js、PHP、Java、Cordova、Monacaを中心にハイブリッドアプリ開発、PWA開発など効率的なWEB、iOS、Androidアプリ開発の情報を共有します。最近はVue.jsは一旦休憩して、TensorFlowの勉強をしています。MNIST」を実行しつつ、解説していきたいと思います。大まかに、こんなことをやっているんだと理解していただければ嬉しいです。World!」とも言われる、「MNIST」というものを少しひねった基本分類の機械学習になります。MNIST」と呼ばれ、ファッション関連の画像を使って訓練し、投入した画像がどの分類に該当するかを推測することを目的としています。やっていることは「MNIST」とあまり変わりないですが、若干難易度が上がっています。「MNIST」に触れたことのない方は、一度試してみてください。ここでは既にTensorFlowを利用できる環境があることを前提として進めます。環境構築がまだの方は以下の公式ドキュメントからお願いします。www.tensorflow.org全体の動きまずは全体のソースコードと動きです。チュートリアル上で、途中の結果を確かめるために用意しているコードなどは省略しています。np.argmax(prediction)print(result)これを動かした結果は以下の画像のようになります。34us/step9細かい解説はこの後にやりますが、ここでは最後に「9」と表示されています。これは投入データの分類が「9」であると推測されたことを示しています。何がなんだか分からないかもしれませんが、とにかく進みましょう。ソースコードを見ていきます。チュートリアルに必要なインポートまずは、TensorFlowをはじめとして、必要なライブラリなどをインポートします。pltチュートリアル用のデータをインポートチュートリアルで利用できるデータを取得するために以下のインポート文を記述します。input_dataTensorflowとKerasをインポート主役のTensorflowと、ディープニューラルネットワークの実装を簡潔に可能にするライブラリである「Keras」をインポートします。keras「Keras」については以下のページを参照してください。DocumentationNumPyとmatplotlibをインポート最後に、数値計算のためのモジュールであるNumPyとPythonでグラフを描画する時に使用されるmatplotlibをインポートします。pltNumPyは数値計算が得意です。行列計算なども可能で、機械学習の計算には欠かせません。http://www.numpy.org/matplotlibは前述した通り、グラフ描画用です。Pythonでグラフ描画などを行う際によく使われます。matplotlibはチュートリアル上では使っていますが、当ページで紹介した最初のソースコードでは使っていませんので、ここで出番は終わりです。気になる方は、チュートリアル通りに進めて、途中の画像表示を確認して見てください。必要なライブラリなどのインポートは完了です。続いて、チュートリアルで利用するデータを読み込みましょう。データの取得データの読み込み方法このチュートリアルでは訓練用の画像が60,000枚、評価用の画像が10,000枚用意されています。MNISTにアクセスします。MNISTを読み込みます。左から訓練用の画像、訓練用のラベル、評価用の画像、評価用のラベルという順序で読み込まれます。これらはそれぞれNumPy配列として取得されることに注意してください。画像データ(ここではtrain_imagesやtest_images)は0〜255ピクセルで表される28x28のNumPy配列です。train_imagesの1つ目のデータを、matplotlibを使って画像として表示します。そのデータのNumPy配列も表示してみましょう。plt.figure()plt.imshow(train_images[0])plt.colorbar()plt.gca().grid(False)plt.show()print(train_images[0])上記を実行すると、matplotlibを使って表示した画像です。続いて、NumPy配列が以下のように帰ってきます。0]]分かりにくいので、画像と配列を横に並べてみました。見ていただくとわかるように、画像の濃淡をNUmPy配列で表しています。この形を見るとどうやらブーツのようなものを表しているようです。次に、ラベルデータ(ここではtrain_labelsやtest_labels)ですが、これらは0〜9の整数配列です。この0〜9の値は、それぞれ分類されるクラスを表しています。このチュートリアルでは以下のようなクラス分けがされています。アンクルブーツそこで、先ほどの画像データに対応するラベル(train_labelsの1つ目のデータ)も表示します。print(train_labels[0])すると整数の「9」と表示されます。一つ目の画像データは「9」、つまりアンクルブーツに分類されることを示しているわけです。データの意味と形式がわかったところで、機械学習実装の本題に入っていきます。ここからも解説が長くなりますので、実装については次回解説したいと思います。次回は以下のリンクから。AIはてなブログをはじめよう!duo-taro100さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。