Submit Search
Upload
Cogbot no9 CNTKハンズオン資料
•
Download as PPTX, PDF
•
1 like
•
4,632 views
貴志 上坂
Follow
2017/11/30に開催したCogbot勉強会で実施したCNTKハンズオンの資料です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 33
Download now
Recommended
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
貴志 上坂
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
貴志 上坂
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
第5回 cogbot勉強会!
第5回 cogbot勉強会!
貴志 上坂
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
貴志 上坂
NS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service Fabric
貴志 上坂
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
貴志 上坂
Recommended
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
貴志 上坂
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
貴志 上坂
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
第5回 cogbot勉強会!
第5回 cogbot勉強会!
貴志 上坂
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
貴志 上坂
NS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service Fabric
貴志 上坂
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
貴志 上坂
Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介
貴志 上坂
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
貴志 上坂
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
貴志 上坂
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
貴志 上坂
クラウドデザインパターンのススメ
クラウドデザインパターンのススメ
貴志 上坂
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
貴志 上坂
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
貴志 上坂
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
More Related Content
More from 貴志 上坂
Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介
貴志 上坂
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
貴志 上坂
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
貴志 上坂
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
貴志 上坂
クラウドデザインパターンのススメ
クラウドデザインパターンのススメ
貴志 上坂
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
貴志 上坂
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
貴志 上坂
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
More from 貴志 上坂
(8)
Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
クラウドデザインパターンのススメ
クラウドデザインパターンのススメ
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Cogbot no9 CNTKハンズオン資料
1.
2017/11/30 株式会社ネクストスケープ 上坂 貴志 Microsoft MVP
for Mircosoft Azure Cogbot 勉強会 # 9 Cognitive Toolkit ハンズオン
2.
自己紹介 好きな技術 ドメイン駆動設計! アジャイル! 深層学習! 株式会社ネクストスケープ クラウド事業本部 C&T部 部長 エバンジェリスト
/ ITアーキテクト / CSA上坂 貴志 Microsoft MVP for Microsoft Azure Scrum(認定スクラムマスター) 2017年 ◆ Cogbot コミュニティ登壇 2016年 ◆ Schoo ドメイン駆動設計入門 出演 ◆ UMTP モデリングフォーラム2016 登壇 ◆QCon Tokyo 2016 DDD実践報告 ◆de:code 2016 登壇 ◆NS Study No.6 Azure IoTHub紹介 登壇 ◆アプレッソ Azure MLセミナー登壇 ◆SANSAN DDD勉強会発表 2015年 ◆FEST2015 (Channel9で動画公開) ◆Developers Summit 2015 ◆QCon Tokyo 2015 ◆de:code 2015 登壇 ◆他多数 うえさか たかし
3.
AzureMLの入門記事 「ゼロからはじめるAzure」 シリーズにて、 全4回でAzureML入門記事 を執筆中です。 現在第1回が公開されており ます。 是非ご覧ください~ https://news.mynavi.jp/article/zeroazure-10/
4.
Azureもくもく新宿 Conpassで「Azureもくもく会@新宿」と検索してください! AIをもくもくする日です。 • AzureML • Cognitive
Services • CNTK などなど
5.
環境作成
6.
環境作成 • Azure Notebooksを使用する場合 1.
Azure Notebooksにアクセスしてログインしておきます。 • https://notebooks.azure.com 2. 次のいずれかのリンクをブラウザで開きます。 • https://notebooks.azure.com/nsuesaka/libraries/cogbot-no9 • https://goo.gl/TDTPtB 3. Cloneをクリックすると、自分の環境へコピーされます。
7.
環境作成 • DataScienceVMを使用する場合 1. 次のいずれかのリンクをブラウザで開きます。 •
https://notebooks.azure.com/nsuesaka/libraries/cogbot-no9 • https://goo.gl/TDTPtB 2. ファイルをクリック→右クリック→ダウンロードでファ イルを1つずつ全てダウンロードします。
8.
1.CNTK MNIST by
DNN
9.
1.CNTK MNIST by
DNN • MNISTを全結合のニューラルネットワークで分類し ます。 • CNTK独自の実装を極力行わず、他のFrameworkに慣 れた人にとって親和性が高い実装方法です。 (Trainerを使用していない)
10.
1.CNTK MNIST by
DNN Scikit-learnのライブラリを使用して、 MNISTをDownload 0~255の数値を0~1に正規化 トレーニングとTestにデータを分割 ラベルの数値0~9をint型に変換
11.
1.CNTK MNIST by
DNN 乱数のシード値を固定して、毎回 同じ乱数を発生させる 発生した乱数値に合わせてト レーニングとラベルを並べ替え
12.
1.CNTK MNIST by
DNN ラベル値0~9をone-hot表現に変換 例:3は0001000000になる Denseは全結合のニューラルネット ワーク層のこと。 最後の層のニューロンが10個なの は、ラベルが0~9で10個だから Cognitive Toolkitでは、モデル定義は このSequentialを使用して層を上か ら順に書いていく 最後の層はActivationをNoneにする ことに注意。Softmaxはここで指定 しない
13.
1.CNTK MNIST by
DNN 直前で定義したモデル (model_mn)に対して、損失関数 交差エントロピーと、クラス分類 エラーを設定するpython関数 @cntk.Functionデコレータによって、 python関数がcntkのFunctionオブジェ クトに変換される。 ここで作ったFunctionオブジェクトが 学習モデルである。(trainメソッドを 持つ) @cntk.Functionデコレータによって、 python関数がcntkのFunctionオブジェクト に変換される。 直上で宣言したVariableオブジェクトを引 数にとっていることに注目 学習モデルの入出力を表す Variableオブジェクトを宣言 Softmaxの結果に対する交差エン トロピー。だからモデル作成の 最後の層のactivationはNoneを指 定した
14.
1.CNTK MNIST by
DNN すいません、epoch_sizeの方が適切 な変数名でした。1epoch内に含ま れるトレーニングデータの数です 学習率をここで決めています ミニバッチのサイズです。32に しています オプティマイザです。SGDやadagladな どがありますが、個人的に最初はAdam から試行するのでAdamにしてあります
15.
1.CNTK MNIST by
DNN ログ出力オブジェクトです。300にす ると、ミニバッチ数32*300= 9600デー タ学習した時点でログを出力します トレーニング実施です 学習済みモデルに対して、テス トを実施してどれぐらい一般化 できているかを確認します
16.
2.CNTK MNIST by
DNN with Trainer
17.
2.CNTK MNIST by
DNN with Trainer • 「1.CNTK MNIST by DNN」を、Trainerというオブジェ クトを使用してトレーニングする方法に実装を変更 しています。 • Trainerを使用すると、Early Stoppingや、学習率の動 的な更新など細かい対応が可能です。 (このハンズオンではそこまで実装していません) • 「1.CNTK MNIST by DNN」との違いだけを解説します。
18.
2.CNTK MNIST by
DNN with Trainer @cntk.Functionデコレータを使ったPython関数がなくなった。 トレーニングはTrainerでこの後に実装するため。 ここではTrainerに渡すためにモデルz、損失関数loss、評価 エラーmetricを個別に宣言している
19.
2.CNTK MNIST by
DNN with Trainer 入出力のVariableであるx, yに 対応したディクショナリでト レーニングとラベルデータを 宣言し、それを渡して学習を 実行 Trainerオブジェクトの生成 1epoch終わるたびにデータ をシャッフル ミニバッチサイズにデータ を切り出し すいません、これ要らないです
20.
2.CNTK MNIST by
DNN with Trainer 学習済みのモデルはtrainerが 持っている。test_minibatchメ ソッドにテスト用データを渡し て一般化を評価している
21.
3.CNTK MNIST by
CNN
22.
3.CNTK MNIST by
CNN • いよいよ深層学習です。CNNを実装します。 • 「2. CNTK MNIST by DNN with Trainer 」を、CNNを使 用するように変更します。 • 「 2. CNTK MNIST by DNN with Trainer 」との違いだけ を解説します。
23.
3.CNTK MNIST by
CNN CNN対応の一番のポイントはこ こ。Trainerはミニバッチでデー タを受け取るので、4次元の行 列を入力にしなければならない。 CNTKでは、画像の形式を (チャンネル数, Height , Width)と して扱う。
24.
3.CNTK MNIST by
CNN このdefault_optionsでは、Sequential 内の各Layerのデフォルトパラメー タを設定しておく Filterのサイズが5x5でフィルター数 が32です。Activationの記載がない のでデフォルトのreluになる。 Padも記載がないため、デフォルト のTrueとなる
25.
4.Change MNIST to
Image Reader Format
26.
4.Change MNIST to
Image Reader Format • これまではMNISTを全量メモリに読み込んでいまし た。 • でも、現実のデータ量はもっと大きく、大量なので メモリに全量読み込むことはできません。 • CNTKはこのシナリオに対応したReaderクラスを用意 しています。 1. CTFReader(Textファイル用) 2. CTBReader(バイナリファイル用) 3. ImageReader(画像ファイル用) • ここではImageReader用にMNISTを加工してファイル に出力し、次の5でImgareReaderを使用するCNNを実 装します。 • 解説はJupyter Notebookに記載してあります。
27.
5.CNTK MNIST by
CNN with Image Reader
28.
5.CNTK MNIST by
CNN with Image Reader • ImageReaderは、他の深層学習用Frameworkのデータ リーダーと同様に入力画像を少しだけ加工してデー タを水増しする機能があります。 • この実装例ではMNIST画像をランダム縮小する加工 を行っています。 • そのため、入力数に上限はありません。 ImageReaderを呼べばそのたびに加工された画像を 取得可能です。(やりすぎると過学習します) • インプットのバリエーションが増えるため、CNNモ デルの層が貧弱だとMNISTにも関わらず認識率が良 くありません。 (この例では良くない)
29.
5.CNTK MNIST by
CNN with Image Reader ランダムに縮小しつつ、jitterによっ て画像に乱れ(ぼかした感じ)を追 加する設定 train_map.txtを読み込んで、対象と なる画像とラベルを読むDeserializer を作成トレーニング画像用のリーダーを作成
30.
5.CNTK MNIST by
CNN with Image Reader テスト画像用のリーダーを作成 test_map.txtを読み込んで、対象と なる画像とラベルを読むDeserializer を作成
31.
5.CNTK MNIST by
CNN with Image Reader 入力値0~255を0~1に正規化
32.
5.CNTK MNIST by
CNN with Image Reader ImageReaderで指定した入力と、モデル に設定した入出力のVariableをマッピン グ リーダーからミニバッチサイ ズのデータを受け取る リーダーを引数に、トレーニ ング実行
33.
5.CNTK MNIST by
CNN with Image Reader テストデータ用のリーダーか らデータを受け取る 評価の実行結果はミニバッチ 単位の平均評価エラー。 それにミニバッチ数を掛けて、 エラー数を求める。 それを累計する 総平均エラー率を算出 これ、何をしているかわかり ますか?端数計算です
Download now