SlideShare une entreprise Scribd logo
1  sur  53
Androidで動かす
はじめてのDeepLearning
narrative nights株式会社
三好康祐
Jinnan Android Meetup vol.1
1. DeepLearningのデモを動かしてみる
Javaで(Deepでない)ニューラルネットでデモを動かして
みる
TensorFlowでニューラルネットのデータを書き出してみ
る
TensorFlowでDeepLearningで書き出したデータに差し替
えてみる
4.でやった内容の説明
今日やること
ここまで
できる限り専門用語なしで
説明します
https://github.com/miyosuda/intro-to-dl-android
まずこちらからソース一式をダウンロード.
中にAndroidStudioのプロジェクトが二つ.
デモをビルドして実行
デモ1
• ImageClassification
• TensorFlowを使った画像認識
• カメラを向けるとリアルタイ
ムに1000種類の中から一番近
いと思われるものを提示する
デモ2
• HandWriting
• TensorFlowを使った手書き数
字認識
• 0〜9の数字の認識
ニューラルネットとは
float[] -> [ニューラルネット] -> float[]
floatの配列を入れるとfloat
の配列が出てくる
float[224*224*3] float[1000]
ニューラルネ
ット
224ピクセルx
224ピクセルx
RGB3色
キツネ = 0.00002
電車 = 0.00002
ゴリラ = 0.44
オラウータン= 0.161
…
…
ノートパソコン= 0.034
カルボナーラ = 0.0001
1000個の候補の中から
一番値が大きかったのが
ゴリラ
float[28*28] float[10]
ニューラルネ
ット
28ピクセルx
28ピクセル
グレースケール
0 = 0.00002
1 = 0.00002
2 = 0.03
3 = 0.95
4 = 0.02
…
…
9 = 0.012
10個の値の中から
一番大きいのを提示
• “0.72” -> ただの数字
• {0.72, 0.45, 0.11} -> 配列
• { {0.72, 0.45, 0.11},
{0.23, 1.24, 5.23},
{2.23, 0.12, 1.12} } -> 二次元配列
• “0.72” -> 0階テンソル
• {0.72, 0.45, 0.11} -> 1階テンソル
• { {0.72, 0.45, 0.11},
{0.23, 1.24, 5.23},
{2.23, 0.12, 1.12} }
-> 2階テンソル
-> 3階テンソル
…
…
…
テンソル テンソル
テンソルに対
するいろんな
計算
Javaでニューラルネッ
トを動かす
// TensorFlowを使った文字認識を行う場合
//private TensorFlowDigitDetector mDetector = new TensorFlowDigitDetector();
// Javaによる文字認識を行う場合
private JavaDigitDetector mDetector = new JavaDigitDetector();
• HandWriting プロジェクトソース内
• jp/narr/tensorflowmnist/MainActitivity.java
42行目〜46行目
• TensorFlowDigitDetector の行をコメントアウトして、
JavaDigitDetectorを動かす様に切り替えます
• JavaDigitDetecotor.java
input -> float[784]
28x28(=784)個のピクセル値を0.0〜1.0にして、
ベタにつなげて1次元の配列にしたもの
これに演算をかけて、10個のfloat値(“0”~”9”のそ
れぞれのもっともらしさ)を出す
// 784x10のweight値
private float[][] weightW = new float[784][10];
// 10個のbias値
private float[] biasB = new float[10];
• JavaDigitDetecotor.java
• assets内のテキストファイル(w.csv, b.csv)
からロード
public int detectDigit(int[] pixels) {
…
float[] input = new float[784];
…
// 10個の出力値を準備
float[] output = new float[10];
// input と weightW の掛け算を行う
for (int j = 0; j < 784; ++j) {
for (int i = 0; i < 10; ++i) {
output[i] += input[j] * weightW[j][i];
}
}
// それに biasB を足す
for (int i = 0; i < 10; ++i) {
output[i] += biasB[i];
}
…
}
output = input * W + b
784個 10個
• softMax()
10個の値を合計して1.0になる様にするexp()を
使った計算 (各出力値も0.0~1.0の間になる)
exp(10) -> 22026.5
exp(5) -> 148.4
exp(0) -> 1.0
exp(-5) -> 0.00674
exp(-10) -> 0.0000454
exp()の結果は必ず0より大きい正の値になる
例:
private float[] softMax(float[] values) {
// 各値のexp値
float[] expValues = new float[values.length];
float expSum = 0.0f; // 各値のexp値の合計
for (int i = 0; i < values.length; ++i) {
// 各値のexp値を出す
float exp = (float) Math.exp(values[i]);
expValues[i] = exp;
expSum += exp; // 合計値を加算
}
// 合計値で割って、全部のexp値の合計が1になる様にする
for (int i = 0; i < values.length; ++i) {
expValues[i] /= expSum;
}
// 結果はそれぞれ0.0~1.0の間の値
return expValues;
}
output = softmax(input * W + b)
784個 10個 10個
10個の出力の内最大のものが、output[3]なら、
文字が”3”だと推測
// 784x10のweight値
private float[][] weightW = new float[784][10];
// 10個のbias値
private float[] biasB = new float[10];
次に、ファイルから読み込んだこれらの値を
TensorFlowを使って書き出してみます
MacにTensorFlowをインストール
します
https://github.com/miyosuda/intro-to-dl-
android/wiki/TensorFlow%E3%81%AEMac%E3%81%
B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%8
2%B9%E3%83%88%E3%83%BC%E3%83%AB%E6
%89%8B%E9%A0%86
こちらの手順でインストール
Weightの書き出し
python-scripts/example1.pyを実行します
$ source ~/tensorflow/bin/activate
(tensorflow)$ cd (#intro-to-dl-on-androidのディレクトリ#)/python-scripts
(tensorflow)$ python example1.py
TensorFlowの流れ
1. グラフの定義
2. グラフの実行
グラフ
テンソル
テンソル
計算 計算 計算テンソル テンソル …
テンソル
MNIST
• 訓練用の55000組の手書き画像(28x28ピクセル)と
正解データ(0〜9)
• 10000組の確認用データ(画像+正解データ)
• 違いは訓練用と確認用に分けただけ
https://github.com/miyosuda/intro-to-dl-
android/blob/master/python-scripts/example1.py
# [グラフ定義]
# 入力用の値のいれ物(=PlaceHolder)を作成する. ここには画像データをテンソルにしたものが
# 入ってくる.
# Noneは"数が未定"を表す. 学習時はここが100になり、確認時は10000になる.
# なので、学習時は(100x784)のテンソル、確認時は(10000x784)のテンソルになる.
x = tf.placeholder(tf.float32, [None, 784])
# 784x10個の重み. 学習により変化していく.
W = tf.Variable(tf.zeros([784, 10]))
# 10個のBias値. 学習により変化していく.
b = tf.Variable(tf.zeros([10]))
# (x * W + b)の結果をsoftmax関数に入れ、その結果をyとする.
# yは学習時は(100x10)のテンソル. 確認時は(10000x10)のテンソルになる.
y = tf.nn.softmax(tf.matmul(,x W) + b)
# 損失関数(正解とどれくらいずれているかを表すもの)を定義していく
# y_ は正解データを入れる入れもの.
# Noneとなっているが、学習時にはここが100になり、
# y_は(100, 10)のテンソルとなる.
y_ = tf.placeholder(tf.float32, [None, 10])
# ニューラルネットの出した10個の値と正解の10個の値(正解部分だけが1の配列)を
# もちいて、どれくらいずれていたか、を出す.
# 小さければ小さいほど正解に近かった事を表す値.(合計をひとつのスカラー値として集めたもの)
# 100個分の合計を求める
cross_entropy = -tf.reduce_sum(y_ * tf.log(y))
# 上記のずれを小さくする様に学習させるOptimizerを用意する.
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
学習時の入力
• 学習時は入力画像(28x28ピクセルのfloat値)を100個
分まとめて入れている
100個
• 出力(float[10])も100個まとめて出てくる
正解データ
• 正解データ(0~9のどれになるか)もoutputと同じ様
に10個の値の配列となっている
例: 正解が5の場合
0 1 2 3 4 5 6 7 8 9
y_ = {0,0,0,0,0,1,0,0,0,0}
-y_ * log(y)
正解と出力のずれ
正解 output
正解
output
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
log(0.0) -> -∞
log(0.0001) -> -9.21
log(0.1) -> -2.3
log(0.5) -> -0.69
log(0.9) -> -0.11
log(1.0) -> 0.0
0.0〜1.0の値のlog()
0.0以下の負の数になる
-log(0.0) -> ∞
-log(0.0001) -> 9.21
-log(0.1) -> 2.3
-log(0.5) -> 0.69
-log(0.9) -> 0.11
-log(1.0) -> 0.0
マイナスを掛けると
-log(1.0)が最小で0.0
正解
output
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
正解
-log(output)
0 1 2 3 4 5 6 7 8 9
x xx x x x x x x x
合計?
正解
-log(output)
5
x掛ける
求めようとしているずれの値
ここしか残らない
-y_ * log(y)
output[5]が1.0(=正解と完全に一致)ならばこの値は0
output[5]が1.0から小さくなればなるほど、
この値は大きくなる
=>この値が小さければ小さいほどより正解に
近い値をoutputできるニューラルネット
この値を小さくする様にWとbを調整していく
学習後のWとbを書き出したものが、
Javaから読み込んで使っていた
weightWとbiasB
Android用TensorFlow
ライブラリの利用
• TensorFlowのAndroid用ライブラリを用いれば、さっきのデモで
Javaで書いていた部分を代わりに処理してくれる
• Android側のTensorFlowライブラリが読み込める形式で書き出す
必要がある。
• 書き出し用のスクリプト
python-scripts/example2.py
(example1.pyと同じものをTensorFlowライブラリ用形式に書き
出し)
• グラフ構造とWeightの値をまとめて書き出し/読み込みをする。
// TensorFlowを使った文字認識を行う場合
private TensorFlowDigitDetector mDetector = new TensorFlowDigitDetector();
// Javaによる文字認識を行う場合
//private JavaDigitDetector mDetector = new JavaDigitDetector();
jp/narr/tensorflowmnist/MainActitivity.java
TensorFlowDigitDetectorを利用する
TensotFlowDigitDetecotor.java
JNI(c++のnative)側でassetsからニューラルネッ
トの学習済みのデータ(=グラフ構造とVariable
の中身をまとめたもの)を読みこんで実行
TensotFlowDigitDetecotor.java
データを差し替えるだけで、ニューラルネット
の中身をより複雑にしたもの(DeepLearningで
学習させたもの)が実行できる
学習&データ書き出し用のスクリプト
python-scripts/example3.py
詳細はこちら
『TesorFlow: Pythonで学習したデータをAndroidで実行』
http://qiita.com/miyosuda/items/e53ad2efeed0ff04060
6
今回は以上になります

Contenu connexe

Tendances

実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだことnishio
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門hoxo_m
 
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法Nagi Teramo
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類t dev
 
スパース推定
スパース推定スパース推定
スパース推定y-uti
 
マルチメディア情報ハイディング
マルチメディア情報ハイディングマルチメディア情報ハイディング
マルチメディア情報ハイディングAkinori Ito
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木 Miyoshi Yuya
 
KDD Cup 2021 時系列異常検知コンペ 参加報告
KDD Cup 2021 時系列異常検知コンペ 参加報告KDD Cup 2021 時系列異常検知コンペ 参加報告
KDD Cup 2021 時系列異常検知コンペ 参加報告GentaYoshimura
 
論文に関する基礎知識2015
論文に関する基礎知識2015論文に関する基礎知識2015
論文に関する基礎知識2015Mai Otsuki
 
さるでも分かりたい9dofで作るクォータニオン姿勢
さるでも分かりたい9dofで作るクォータニオン姿勢さるでも分かりたい9dofで作るクォータニオン姿勢
さるでも分かりたい9dofで作るクォータニオン姿勢ytanno
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/PrismNaoki Aoyama
 
Microsoft Malware Classification Challenge 上位手法の紹介 (in Kaggle Study Meetup)
Microsoft Malware Classification Challenge 上位手法の紹介 (in Kaggle Study Meetup)Microsoft Malware Classification Challenge 上位手法の紹介 (in Kaggle Study Meetup)
Microsoft Malware Classification Challenge 上位手法の紹介 (in Kaggle Study Meetup)Shotaro Sano
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説suckgeun lee
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Masahito Zembutsu
 
An Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionAn Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionTakeshi Yamamuro
 
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会Junpei Tsuji
 
DID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpactDID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpactYusuke Kaneko
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 

Tendances (20)

実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
 
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類
 
スパース推定
スパース推定スパース推定
スパース推定
 
マルチメディア情報ハイディング
マルチメディア情報ハイディングマルチメディア情報ハイディング
マルチメディア情報ハイディング
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
 
KDD Cup 2021 時系列異常検知コンペ 参加報告
KDD Cup 2021 時系列異常検知コンペ 参加報告KDD Cup 2021 時系列異常検知コンペ 参加報告
KDD Cup 2021 時系列異常検知コンペ 参加報告
 
論文に関する基礎知識2015
論文に関する基礎知識2015論文に関する基礎知識2015
論文に関する基礎知識2015
 
さるでも分かりたい9dofで作るクォータニオン姿勢
さるでも分かりたい9dofで作るクォータニオン姿勢さるでも分かりたい9dofで作るクォータニオン姿勢
さるでも分かりたい9dofで作るクォータニオン姿勢
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/Prism
 
Microsoft Malware Classification Challenge 上位手法の紹介 (in Kaggle Study Meetup)
Microsoft Malware Classification Challenge 上位手法の紹介 (in Kaggle Study Meetup)Microsoft Malware Classification Challenge 上位手法の紹介 (in Kaggle Study Meetup)
Microsoft Malware Classification Challenge 上位手法の紹介 (in Kaggle Study Meetup)
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
 
An Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionAn Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List Compression
 
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
 
DID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpactDID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpact
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 

Similaire à Androidで動かすはじめてのDeepLearning

GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackTakahiro Yoshimura
 
「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門Hideto Masuoka
 
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説LeapMind Inc
 
Linq To Fun
Linq To FunLinq To Fun
Linq To Fundeflis
 
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Yasutomo Kawanishi
 
C#アプリの作り方入門
C#アプリの作り方入門C#アプリの作り方入門
C#アプリの作り方入門森理 麟
 
Infer.netによるldaの実装
Infer.netによるldaの実装Infer.netによるldaの実装
Infer.netによるldaの実装池田 直哉
 
Deep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlowDeep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlowTadaichiro Nakano
 
ユニットテスト 1日目
ユニットテスト 1日目ユニットテスト 1日目
ユニットテスト 1日目Yoshiki Shibukawa
 
TensorFlowの導入
TensorFlowの導入TensorFlowの導入
TensorFlowの導入yuf yufkky
 
TensorFlowの導入
TensorFlowの導入TensorFlowの導入
TensorFlowの導入yuf yufkky
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装Shinya Akiba
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest informationSony Network Communications Inc.
 
多相な関数の定義から学ぶ、型クラスデザインパターン
多相な関数の定義から学ぶ、型クラスデザインパターン多相な関数の定義から学ぶ、型クラスデザインパターン
多相な関数の定義から学ぶ、型クラスデザインパターンTaisuke Oe
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
HTML5 Conference LT TensorFlow
HTML5 Conference LT TensorFlowHTML5 Conference LT TensorFlow
HTML5 Conference LT TensorFlowisaac-otao
 
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Takashi J OZAKI
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio CodeAkira Inoue
 

Similaire à Androidで動かすはじめてのDeepLearning (20)

GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hack
 
「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門
 
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
Linq To Fun
Linq To FunLinq To Fun
Linq To Fun
 
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
 
Xtext 紹介
Xtext 紹介Xtext 紹介
Xtext 紹介
 
C#アプリの作り方入門
C#アプリの作り方入門C#アプリの作り方入門
C#アプリの作り方入門
 
Infer.netによるldaの実装
Infer.netによるldaの実装Infer.netによるldaの実装
Infer.netによるldaの実装
 
Deep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlowDeep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlow
 
ユニットテスト 1日目
ユニットテスト 1日目ユニットテスト 1日目
ユニットテスト 1日目
 
TensorFlowの導入
TensorFlowの導入TensorFlowの導入
TensorFlowの導入
 
TensorFlowの導入
TensorFlowの導入TensorFlowの導入
TensorFlowの導入
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information
 
多相な関数の定義から学ぶ、型クラスデザインパターン
多相な関数の定義から学ぶ、型クラスデザインパターン多相な関数の定義から学ぶ、型クラスデザインパターン
多相な関数の定義から学ぶ、型クラスデザインパターン
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
HTML5 Conference LT TensorFlow
HTML5 Conference LT TensorFlowHTML5 Conference LT TensorFlow
HTML5 Conference LT TensorFlow
 
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 

Androidで動かすはじめてのDeepLearning