Submit Search
Upload
Caffeのデータレイヤで夢が広がる話
•
36 likes
•
17,383 views
M
Masaki Saito
Follow
Caffeのデータレイヤに手を加えることで,いろいろと可能性が広がる話をします
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 17
Download now
Download to read offline
Recommended
How to Develop Experiment-Oriented Programs
How to Develop Experiment-Oriented Programs
Kenta Oono
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
Etsuji Nakai
Development and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and maf
Kenta Oono
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使う
Daisuke Tanaka
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させる
nobu_k
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
Kerasで深層学習を実践する
Kerasで深層学習を実践する
Kazuaki Tanida
Introduction to Chainer and CuPy
Introduction to Chainer and CuPy
Kenta Oono
Recommended
How to Develop Experiment-Oriented Programs
How to Develop Experiment-Oriented Programs
Kenta Oono
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
Etsuji Nakai
Development and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and maf
Kenta Oono
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使う
Daisuke Tanaka
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させる
nobu_k
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
Kerasで深層学習を実践する
Kerasで深層学習を実践する
Kazuaki Tanida
Introduction to Chainer and CuPy
Introduction to Chainer and CuPy
Kenta Oono
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Kenta Oono
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Norihiko Nakabayashi
機械学習を利用したちょっとリッチな検索
機械学習を利用したちょっとリッチな検索
nobu_k
SensorBeeのご紹介
SensorBeeのご紹介
Daisuke Tanaka
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
Kotaro Nakayama
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Yahoo!デベロッパーネットワーク
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Kenta Oono
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太
Preferred Networks
Chainer入門と最近の機能
Chainer入門と最近の機能
Yuya Unno
SensorBeeの紹介
SensorBeeの紹介
Shuzo Kashihara
bigdata2012nlp okanohara
bigdata2012nlp okanohara
Preferred Networks
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
Etsuji Nakai
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
Satoshi Kume
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
Jiro Nishitoba
Jubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組み
JubatusOfficial
経済学のための実践的データ分析 1. イントロダクション/Jupyter Notebook をインストールする
経済学のための実践的データ分析 1. イントロダクション/Jupyter Notebook をインストールする
Yasushi Hara
20171212 gtc pfn海野裕也_chainerで加速する深層学習とフレームワークの未来
20171212 gtc pfn海野裕也_chainerで加速する深層学習とフレームワークの未来
Preferred Networks
Jubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCT
Yuya Unno
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
Kenta Oono
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
Ryosuke Okuta
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
More Related Content
What's hot
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Kenta Oono
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Norihiko Nakabayashi
機械学習を利用したちょっとリッチな検索
機械学習を利用したちょっとリッチな検索
nobu_k
SensorBeeのご紹介
SensorBeeのご紹介
Daisuke Tanaka
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
Kotaro Nakayama
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Yahoo!デベロッパーネットワーク
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Kenta Oono
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太
Preferred Networks
Chainer入門と最近の機能
Chainer入門と最近の機能
Yuya Unno
SensorBeeの紹介
SensorBeeの紹介
Shuzo Kashihara
bigdata2012nlp okanohara
bigdata2012nlp okanohara
Preferred Networks
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
Etsuji Nakai
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
Satoshi Kume
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
Jiro Nishitoba
Jubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組み
JubatusOfficial
経済学のための実践的データ分析 1. イントロダクション/Jupyter Notebook をインストールする
経済学のための実践的データ分析 1. イントロダクション/Jupyter Notebook をインストールする
Yasushi Hara
20171212 gtc pfn海野裕也_chainerで加速する深層学習とフレームワークの未来
20171212 gtc pfn海野裕也_chainerで加速する深層学習とフレームワークの未来
Preferred Networks
Jubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCT
Yuya Unno
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
Kenta Oono
What's hot
(20)
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
機械学習を利用したちょっとリッチな検索
機械学習を利用したちょっとリッチな検索
SensorBeeのご紹介
SensorBeeのご紹介
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太
Chainer入門と最近の機能
Chainer入門と最近の機能
SensorBeeの紹介
SensorBeeの紹介
bigdata2012nlp okanohara
bigdata2012nlp okanohara
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
Jubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組み
経済学のための実践的データ分析 1. イントロダクション/Jupyter Notebook をインストールする
経済学のための実践的データ分析 1. イントロダクション/Jupyter Notebook をインストールする
20171212 gtc pfn海野裕也_chainerで加速する深層学習とフレームワークの未来
20171212 gtc pfn海野裕也_chainerで加速する深層学習とフレームワークの未来
Jubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCT
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
Similar to Caffeのデータレイヤで夢が広がる話
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
Ryosuke Okuta
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
Preferred Networks
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18
Shunya Ueta
Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東
Hokuto Kagaya
サブカルのためのWord2vec
サブカルのためのWord2vec
DeNA
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
Preferred Networks
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
Takayoshi Tanaka
SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料
ttt_miura
FastDepth: Fast Monocular Depth Estimation on Embedded Systems
FastDepth: Fast Monocular Depth Estimation on Embedded Systems
harmonylab
Trainable Calibration Measures for Neural Networks from Kernel Mean Embeddings
Trainable Calibration Measures for Neural Networks from Kernel Mean Embeddings
harmonylab
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Preferred Networks
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
de:code 2017
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
Yoshiyuki Nakamura
2018 07-23
2018 07-23
Yuji Oshima
画像処理分野における研究事例紹介
画像処理分野における研究事例紹介
nlab_utokyo
CUDA & OpenCL GPUコンピューティングって何?
CUDA & OpenCL GPUコンピューティングって何?
Toshiya Komoda
PreadNet
PreadNet
Junya Kuwada
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
cvpaper. challenge
情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game
Yoshiaki Rikitake
Similar to Caffeのデータレイヤで夢が広がる話
(20)
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
私とOSSの25年
私とOSSの25年
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18
Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東
サブカルのためのWord2vec
サブカルのためのWord2vec
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料
FastDepth: Fast Monocular Depth Estimation on Embedded Systems
FastDepth: Fast Monocular Depth Estimation on Embedded Systems
Trainable Calibration Measures for Neural Networks from Kernel Mean Embeddings
Trainable Calibration Measures for Neural Networks from Kernel Mean Embeddings
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
2018 07-23
2018 07-23
画像処理分野における研究事例紹介
画像処理分野における研究事例紹介
CUDA & OpenCL GPUコンピューティングって何?
CUDA & OpenCL GPUコンピューティングって何?
PreadNet
PreadNet
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game
Caffeのデータレイヤで夢が広がる話
1.
Caffeのデータレイヤで夢が広がる話 第27回コンピュータビジョン勉強会@関東 2015/01/31 @rezoolab (齋藤
真樹)
2.
自己紹介 • 東北大学岡谷研D2 齋藤
真樹 (DC2) – Twitter ID: @rezoolab – コンピュータビジョンに関する理論研究 • 主な業績: CVPR 2本 (+1?) – コンピュータビジョン最先端ガイド6 執筆 – 真面目に就職先探していますのでお気軽に お声がけください
3.
Convolutional Neural Networks
(CNNs) from flickr.com/photos/125992663/14601014695/ 今回はみんな大好きCaffeについての話です
4.
Caffe • 畳み込みニューラルネット(CNN)をGPUで高速に学習・評価できる – AlexNet,
GoogleNet, VGG (おすすめ) の学習済モデルが利用可能 – C++で実装.Python/Matlab bindingも提供されている • データセットとレイヤ構成を指定するだけで,誰でも簡単にCNNを 学習,評価できる(と思われている)
5.
Caffe難易度表 (独断と偏見) 比較的取りかかりやすい • Pre-trained
modelを利用した特徴量抽出 • 106オーダーの画像を使って一から多クラス分類 • Transfer Learningによる多クラス分類 ちょっと難しい • 回帰問題,セグメンテーション問題への応用 • C++弄って独自のレイヤを実装,評価 結構難しい • Deep Boltzmann Machineの実装 • Recurrent Neural Networkの実装 • 最高精度達成してトップ会議通す(超赤海)
6.
Caffeのアーキテクチャ (学習時) • CaffeのネットワークはBlobとLayerの2種類から成り立つ –
Blob: CNNの実データを格納するデータ構造 – Layer: 畳み込みやプーリング,内積などの操作単位 “data” “conv1” “pool1” “fc1” “loss” Layer Blob “label” [( , 3), ( , 5), …] 3 Key-Value Store “data” “conv1” “pool1” “fc1” “loss”
7.
Caffe::DataLayer • レイヤの種類とパラメータを.prototxtファイルに記述 • 入力画像に対して出力が1つの離散ラベルだとCaffeはほんとうに楽 “data”
指定されたKVS(LevelDB, LMDB)から画像を バッチ数分ロードし,Blobに伝える “data” “data” “true” • Key: 画像ファイル名など(重複がなければなんでもいい) • Value: 画像データとラベルのペアをシリアライズ化した文字列 “data” “data” “label” “data” “data” 画像データのみ 画像と離散値1つ 画像と複数の離散・連続値
8.
データレイヤ問題を解決するための2つの方法 データレイヤを増やす
9.
解決案1: データレイヤを2つ用意して対応 • データセットを画像データと教師データの2つに分割して対応 •
そのようなツールは存在しないのでpythonで組む必要あり – (caffeの説明はあっさりすぎてコード読む他ない) “data” “data” “true” 画像 “data” “data” “true”“true”教師 KVS1 KVS2
10.
解決案1: データレイヤを2つ用意して対応 • 画像データ用KVSの作り方 –
Valueの実態はProtocol Bufferで定義された構造体Datum – ndarrayをdatumに変換するcaffe.io.array_to_datum()がある shapeは (channels, height, width) 整合性のためにBGRオーダーがベター import cv2 from caffe.io import array_to_datum # load an image (BGR order) and serialize it img = cv2.resize(cv2.imread(path), shape).transpose([2,0,1]) img_datum = array_to_datum(img) img_str = img_datum.SerializeToString() # put img_str into KVS db.Put(key=path, value=img_str)
11.
解決案1: データレイヤを2つ用意して対応 • 教師データ用KVSの作り方 –
そのような便利関数は存在しない(世間は厳しい) – 浮動小数点の配列を格納するためのフィールド “Datum::float_data”の中に入れる from caffe.io import caffe_pb2 # suppose that arr is a one-dimensional np.ndarray d = caffe_pb2.Datum() d.float_data.extend(list(arr)) d.channels, d.height, d.width = arr.size, 1, 1 datum_str = d.SerializeToString() # put datum_str into KVS kvs2.Put(key=path, value=datum_str)
12.
自前でデータレイヤを作る データレイヤ問題を解決するための2つの方法
13.
解決案2: 自前でデータレイヤを作る • 既存のデータレイヤが対応していないのなら,自前で作ってみよう •
面倒だけど色々と融通が効く 1. データレイヤ単体で複数のBlobを出力 2. caffe付属のdata augmentationをさらに拡張 “data1” “true1”“data2” “true2”“data”
14.
Caffe (client) 解決案2: 自前でデータレイヤを作る •
http経由でBlobを取得するHTTPDataLayerを作りました – データ加工等の面倒な箇所はすべてサーバに委託 “localhost/blob” Server KVS1 “data” http request response KVS2 “data1” “data2” [“data1”, “data2”] [blob1, blob2]
15.
解決案2: 自前でデータレイヤを作る DEMO
16.
まとめ • Caffeで識別以外の学習を行う方法は2つある 1. データレイヤを2つ作成してがんばる 2.
データレイヤを新しく作成する • 応用としてデータレイヤ用のhttpクライアントとサーバを書いた • 研究室で試運転中.機能を整えたらGithubで公開
17.
おわり ※アイコンはCC BY 3.0のDripiconsを使用しました:
http://www.flaticon.com/packs/dripicons/ ※イラストはCC BY-NC-ND 4.0の寿司ゆきを使用しました: http://awayuki.net/sushiyuki/
Download now