Consoleニューラルネットワークコンソールに付属のMNISTばかりだと飽きるので、オリジナルの学習・評価用画像を使って、新規データ・セットを作成します。画像データをどこかから取得してくるか、自分で作る必要があります。今回はinputの「1,28,28」というサイズは変更しない・・つまり、MNISTと同じモノクロの28×28サイズの画像を前提として、やりたいと思います。カラー画像を使った場合のやり方は、こちらの記事で「Caltech」の画像データを使ってやってますので、こちらをどうぞ。arakan-pgm-ai.hatenablog.comモノクロの28×28画像データちょっと手頃なものが思いつかなかったので、自分で作ることにします。EXCELの「画像データ大量生成ツール」を作って、それを使います。この「画像データ大量生成ツール」のダウンロード場所や仕組み(VBAのソースコード含む)と、使い方の解説はこちらに書いてます。arakan-pgm-ai.hatenablog.com興味のある方はどうぞ。2017/12/01追記>以降の説明の画像は、Version1.00のものを使ってます。>Version1.10で一部アイコンのデザインが変更になっています。>ただ、見ればわかる範囲と判断して画面の貼り替えはしていません。今回は、作った画像データがある前提で、取得するところからはじめますGitHubから画像データをダウンロードします。github.combokudate.zipを解凍してください。今回用意した画像データはこんな感じにアルファベット1文字を、様々なフォントと文字サイズと場所でバリエーションを作ったものです。この「A,a」なら「0」、「B,b」なら「1」を正解として、フォルダを作ってます。フォルダ名とかは変更しないでください。画像データの配置ルールニューラルネットワークコンソールの画像データは、以下のルールに従って格納する必要があります。フォルダ毎に分類されていないといけない。フォルダ名が正解ラベルと一致していないといけない。フォルダ名と正解ラベルは、0,1,2・・等の数字にしておくようするに、ニューラルネットワークコンソールの画像データは、正解ラベル(例えば、0とか1とか)の名前にしたフォルダの下に、サイズを揃えた画像データを置いておけば良いということです。作業用フォルダの準備ダウンロードしたファイルを解凍して、適当なフォルダに置きます。このフォルダはあくまでワーク用の一時フォルダです。いうフォルダを作って、そこに置きました。ここで、気をつけないといけないことがあります。・このフォルダに他のファイルをおかないこと・ファイル名やフォルダ名に全角文字を含めないことです。おいても、DATASET作成時にはエラーにはならなくても、学習や評価の実行時に原因不明としか見えないエラーで苦しむことになります。新規データセットを格納する本番用フォルダ今度は、DATASETを格納する「本番用」のフォルダを作ります。本番用のフォルダにファイルをコピーするのは、ニューラルネットワークコンソールにまかせる必要があるということです。今回は、{ワークフォルダ}の下に適当なフォルダを作ります。今回は、「bokudata」にしました。ニューラルネットワークコンソールで新規データ・セット作成ニューラルネットワークコンソールを立ち上げます。Dataset」ボタンを押します。Datasetここで必要な項目を入力します。簡単に解説しておきます。Dir:ダウンロードしたデータを置いたフォルダを指定します。Dir:処理済のデータを出力するフォルダを指定します。:今回の場合、{ワークフォルダ}\bokudataです。別のフォルダでないとエラーになります。Mode:画像を指定したサイズにあわせる方法を指定します。:以前はトリミングとパディングだけでしたが、ReSizeが追加されました。ことが無い限り、ReSizeでいいと思います。Ch:今回はモノクロデータなので、「1」です。:カラー画像の場合は「3」に変更します。Width:出力画像の横幅です。今回は「28✕28」ですから、28です。Height:出力画像の縦幅です。data:デフォルトのまま(ON)にします。シャッフルしてくれます。Name:作成するデータセットCSVのファイル名です。:後で識別しやすい名前に変更します。(%):ここで指定した比率で、学習用データとテスト用データに振り分けてくれます。適当じゃないですかね。:ここを変更する時は、合計100になるように注意します。入力できたら、「Apply」ボタンを押します。こんな感じの画面がでてきますけど、待ちます。処理が終わると、こんな感じでプレビューされます。テキストデータを扱う時には、パスと正解ラベルを書いたCSVデータを、自分で作らないとダメだったのですが、画像の場合は、そのファイルもニューラルネットワークコンソールが自動生成してくれます。ここまでで、データ・セットの作成手順は終わりです。以降は、追加したデータ・セットを新規プロジェクトで使って、ちゃんと学習・評価できるかを見ていきます。新規プロジェクト作成まず、確認用のプロジェクトを作ります。動作確認するだけなら、すでに作成済のプロジェクトやサンプルプロジェクトのデータ・セットだけ差し替えるだけでも可能です。今回は新規に作ったものでしてみます。Project」ボタンを押します。以下の順番でレイヤーをドラッグ&ドロップして、Shift+クリックで線でつなぎます。Network)です。この辺で一回名前をつけて、プロジェクトを保存しておきます。名前は自分がわかりやすければ、なんでもいいので、適当につけて・・っと。今回は、保存先も{ワークフォルダ}の下に適当なフォルダをつくって置くことにしてます。保存できたら、設定していきます。DATASETタブまず、DATASETタブを開きます。dataset」ボタンを押し、表示された選択肢の中から、TrainingとValidationにそれぞれ、さきほど生成時に入力したCSVファイル名をさがして割り当てていきます。割当できていれば、Trainingが2640件、validationが880件になっているはずです。EDITタブ(各レイヤーの設定)続けて、各レイヤーを設定していきます。今回はわざとデフォルトの設定にあわせて、データを作成しているので変更はいりませんが、サイズ等を変更した場合は、画像にあわせて変更する必要があります。Convolutionレイヤーの初期値変更Convolutionレイヤーは2つとも、W.initializerを「NormalAffineHeForward」に変更しておきます。理由がわからない場合は、こちらの記事も見てください。arakan-pgm-ai.hatenablog.comAffineのOUTPUTサイズ次にAffineのOUTPUTを、デフォルトの100から1に変更します。これをせず、デフォルトの100のままでもエラーにはならないですけど、正確さが20%とか30%とかに落ちてしまったりします。学習実行この設定で学習をやってみます。何かいい感じのきれいな学習曲線になってます。続けて、評価もやってみます。99.2%!上出来です。MNISTと同じようなデータをアルファベットで作ってみた・・というだけなので、結果がこうなるのは当然なのですがね。作成した独自画像データ・セットが使えて、かつ、DATASETへの追加手順も間違ってはないようだということで、めでたし、めでたしです。2017/12/01追記Version1.10で主にこの部分のアイコンのデザインが変わってます。検索スポンサーリンク最近のアクセスTOP5ブクマ数TOP3IT的なTIPS・ノウハウイベントログから抽出したログオン・オフ時刻を見やすいように整形するEXCELのVBAマクロなど。Google検索は利用するけど、アクティビティを保存させたくない時もある文字コードで悩まされるなんて久しぶり/JIS7(ISO-2022-JP)とJIS8の話もっと見る作業時によく参照する「まとめ」djangoテンプレート内でforループで回す時の整理とデフォルト辞書利用時の注意など。djangoテンプレート内ので条件分岐(IF文)で注意することなどをまとめておくdjangoテンプレート/変数の値の参照の仕方が、Pythonと違う所があるので整理しておく。service」とサーバーレスコンピューティング関係をまとめてみる。PWA・SPA・・など「最近のWEBアプリケーションの種類」をざっくりまとめる。文系的まとめディープラーニング(ニューラルネットワーク)の「学習」の肝は「微分」らしいよ。Consoleもっと見るディープラーニングのデモをやってみるWord2Vecで「単語の足し算・引き算の結果(単語)を取得する」デモをやってみる。API」で入力文の疑わしい部分をAIが指摘するデモを作る。classで事前学習済のVGG16モデルを使った画像識別クラス/tensorflow2.0(tf.keras)ランダムフォレストで回帰してみる/気象情報と電力データその2もっと見るPythonでWebアプリやってみるviews.py(python)からデータを渡して、Chart.jsでRaderチャートを描く/Chart.js+djangoWEBブラウザ上にドラッグ&ドロップした画像ファイルをBase64に変換して表示するWEBブラウザで手描きしたイメージをJPEG・PNG変換後Base64エンコードするもっと見るPythonで自動化やってみるWebアプリケーションで自動的に値を参照、スクロール他Tips/Selenium&pythonWebアプリケーションで自動的に何かをクリックするTips/Selenium&pythonWebアプリケーションへの自動入力・選択のTipsあれこれ/Selenium&pythonもっと見るPythonで数学・グラフィックスやってみるモンティ・ホール問題で、ちょっと暇つぶし。最近、台風が怖すぎる!!!生産性向上しろと言いながら、片方で足をひっぱるなんて・・と呆れてます。/軽減税率のニュースを見てもっと見るBOKU62歳の文系SE”BOKU”です。<arakan_no_boku@yahoo.co.jp>興味の向いたものを、つまみ食い的に勉強してます。自分が消化した内容を、頭の整理と備忘を兼ねてブログに書いてます。IT系・・特に機械学習・プログラムネタが中心ですが、IT以外のネタになる時もあります。(43)スポンサーリンクはてなブログをはじめよう!arakan_no_bokuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。