Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Natsutani Minoru
PPTX, PDF
3,779 views
コキュートスTfug
Kerasで組込向けフレームワークを作ろう。コキュートスの紹介
Technology
◦
Related topics:
Deep Learning
•
Read more
4
Save
Share
Embed
Embed presentation
Download
Downloaded 40 times
1
/ 32
2
/ 32
3
/ 32
4
/ 32
5
/ 32
6
/ 32
7
/ 32
8
/ 32
9
/ 32
10
/ 32
11
/ 32
12
/ 32
13
/ 32
14
/ 32
15
/ 32
16
/ 32
17
/ 32
18
/ 32
19
/ 32
20
/ 32
21
/ 32
22
/ 32
23
/ 32
24
/ 32
25
/ 32
26
/ 32
27
/ 32
28
/ 32
29
/ 32
30
/ 32
31
/ 32
32
/ 32
More Related Content
PDF
20170518 eureka dli
by
ManaMurakami1
PDF
ChainerRL の学習済みモデルを gRPC 経由で使ってみる試み (+アルファ)
by
NVIDIA Japan
PDF
Chainer でのプロファイリングをちょっと楽にする話
by
NVIDIA Japan
PDF
FPGAによる大規模データ処理の高速化
by
Kazunori Sato
PPTX
機械学習 / Deep Learning 大全 (4) GPU編
by
Daiyu Hatakeyama
PPTX
コキュートスSwest19
by
Natsutani Minoru
PDF
20180217 FPGA Extreme Computing #10
by
Kohei KaiGai
PDF
20170421 tensor flowusergroup
by
ManaMurakami1
20170518 eureka dli
by
ManaMurakami1
ChainerRL の学習済みモデルを gRPC 経由で使ってみる試み (+アルファ)
by
NVIDIA Japan
Chainer でのプロファイリングをちょっと楽にする話
by
NVIDIA Japan
FPGAによる大規模データ処理の高速化
by
Kazunori Sato
機械学習 / Deep Learning 大全 (4) GPU編
by
Daiyu Hatakeyama
コキュートスSwest19
by
Natsutani Minoru
20180217 FPGA Extreme Computing #10
by
Kohei KaiGai
20170421 tensor flowusergroup
by
ManaMurakami1
What's hot
PDF
CUDAプログラミング入門
by
NVIDIA Japan
PDF
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
by
Kohei KaiGai
PDF
【Jpug勉強会】10大ニュースで振り返るpg con2013
by
Daichi Egawa
PDF
1000: 基調講演
by
NVIDIA Japan
PDF
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
by
ManaMurakami1
PDF
Maxwell と Java CUDAプログラミング
by
NVIDIA Japan
PDF
Fpga online seminar by fixstars (1st)
by
Fixstars Corporation
PDF
1070: CUDA プログラミング入門
by
NVIDIA Japan
PDF
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
by
ManaMurakami1
PDF
(JP) GPGPUがPostgreSQLを加速する
by
Kohei KaiGai
PDF
GPU クラウド コンピューティング
by
NVIDIA Japan
PDF
20171212_GTCJapan_InceptionSummt_HeteroDB
by
Kohei KaiGai
PDF
20190926_Try_RHEL8_NVMEoF_Beta
by
Kohei KaiGai
PDF
Cuda
by
Shumpei Hozumi
PPTX
DLLab 2018 - Azure Machine Learning update
by
Daiyu Hatakeyama
PDF
Flow in VR Funhouse MOD Kit
by
NVIDIA Japan
PPTX
Cld017 nh シリーズリリース
by
Tech Summit 2016
PDF
Cld017 nh シリーズリリース
by
Tech Summit 2016
PDF
20171220_hbstudy80_pgstrom
by
Kohei KaiGai
PDF
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
by
喜智 大井
CUDAプログラミング入門
by
NVIDIA Japan
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
by
Kohei KaiGai
【Jpug勉強会】10大ニュースで振り返るpg con2013
by
Daichi Egawa
1000: 基調講演
by
NVIDIA Japan
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
by
ManaMurakami1
Maxwell と Java CUDAプログラミング
by
NVIDIA Japan
Fpga online seminar by fixstars (1st)
by
Fixstars Corporation
1070: CUDA プログラミング入門
by
NVIDIA Japan
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
by
ManaMurakami1
(JP) GPGPUがPostgreSQLを加速する
by
Kohei KaiGai
GPU クラウド コンピューティング
by
NVIDIA Japan
20171212_GTCJapan_InceptionSummt_HeteroDB
by
Kohei KaiGai
20190926_Try_RHEL8_NVMEoF_Beta
by
Kohei KaiGai
Cuda
by
Shumpei Hozumi
DLLab 2018 - Azure Machine Learning update
by
Daiyu Hatakeyama
Flow in VR Funhouse MOD Kit
by
NVIDIA Japan
Cld017 nh シリーズリリース
by
Tech Summit 2016
Cld017 nh シリーズリリース
by
Tech Summit 2016
20171220_hbstudy80_pgstrom
by
Kohei KaiGai
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
by
喜智 大井
Viewers also liked
PDF
Tensor flow usergroup 2016 (公開版)
by
Hiroki Nakahara
PPTX
Fpgax20170924
by
Natsutani Minoru
PDF
FPGAX2016 ドキュンなFPGA
by
Hiroki Nakahara
PDF
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
by
Hiroki Nakahara
PDF
TensorFlow XLAは、 中で何をやっているのか?
by
Mr. Vengineer
PDF
バイナリニューラルネットとハードウェアの関係
by
Kento Tajiri
PDF
(公開版)Reconf研2017GUINNESS
by
Hiroki Nakahara
PPTX
ニューラルチューリングマシン入門
by
naoto moriyama
PPTX
コキュートスDsf
by
Natsutani Minoru
Tensor flow usergroup 2016 (公開版)
by
Hiroki Nakahara
Fpgax20170924
by
Natsutani Minoru
FPGAX2016 ドキュンなFPGA
by
Hiroki Nakahara
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
by
Hiroki Nakahara
TensorFlow XLAは、 中で何をやっているのか?
by
Mr. Vengineer
バイナリニューラルネットとハードウェアの関係
by
Kento Tajiri
(公開版)Reconf研2017GUINNESS
by
Hiroki Nakahara
ニューラルチューリングマシン入門
by
naoto moriyama
コキュートスDsf
by
Natsutani Minoru
Similar to コキュートスTfug
PPTX
いきなりAi tensor flow gpuによる画像分類と生成
by
Yoshi Sakai
PPTX
Kerasで可視化いろいろ
by
Masakazu Muraoka
PPTX
なにわテック20180127
by
Natsutani Minoru
PPTX
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
by
fukuoka.ex
PDF
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
by
de:code 2017
PPTX
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
by
fukuoka.ex
PDF
Kerasで作ったbotの話
by
洵 加治
いきなりAi tensor flow gpuによる画像分類と生成
by
Yoshi Sakai
Kerasで可視化いろいろ
by
Masakazu Muraoka
なにわテック20180127
by
Natsutani Minoru
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
by
fukuoka.ex
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
by
de:code 2017
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
by
fukuoka.ex
Kerasで作ったbotの話
by
洵 加治
More from Natsutani Minoru
PPTX
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
by
Natsutani Minoru
PPTX
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
by
Natsutani Minoru
PPTX
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
by
Natsutani Minoru
PPTX
Interpretable ml
by
Natsutani Minoru
PPTX
Tfug20181105
by
Natsutani Minoru
PPTX
スモールデータ勉強会発表資料(2024年6月10日)公開用 夏谷実 @natsutan
by
Natsutani Minoru
PPTX
自作プログラミング言語の集い
by
Natsutani Minoru
PPTX
Imitation learning for robotics 勉強会資料(20240701)
by
Natsutani Minoru
PPT
パソナテックのAI人材育成の取り組みのご紹介
by
Natsutani Minoru
PPTX
Kof
by
Natsutani Minoru
PPTX
Kyoto dev caffe
by
Natsutani Minoru
PDF
TFLiteのグラフ構造について
by
Natsutani Minoru
PPTX
Rakuten20181027
by
Natsutani Minoru
PPTX
不足するAI人材に対する「パソナテックの人材育成ソリューション」
by
Natsutani Minoru
PPTX
Nagosta 20181020
by
Natsutani Minoru
PPTX
200821 swest
by
Natsutani Minoru
PPTX
ML meetup20190327
by
Natsutani Minoru
PPTX
robotics42.pptx
by
Natsutani Minoru
PPTX
Road damge ai
by
Natsutani Minoru
PPTX
Kyoto devcafe
by
Natsutani Minoru
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
by
Natsutani Minoru
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
by
Natsutani Minoru
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
by
Natsutani Minoru
Interpretable ml
by
Natsutani Minoru
Tfug20181105
by
Natsutani Minoru
スモールデータ勉強会発表資料(2024年6月10日)公開用 夏谷実 @natsutan
by
Natsutani Minoru
自作プログラミング言語の集い
by
Natsutani Minoru
Imitation learning for robotics 勉強会資料(20240701)
by
Natsutani Minoru
パソナテックのAI人材育成の取り組みのご紹介
by
Natsutani Minoru
Kof
by
Natsutani Minoru
Kyoto dev caffe
by
Natsutani Minoru
TFLiteのグラフ構造について
by
Natsutani Minoru
Rakuten20181027
by
Natsutani Minoru
不足するAI人材に対する「パソナテックの人材育成ソリューション」
by
Natsutani Minoru
Nagosta 20181020
by
Natsutani Minoru
200821 swest
by
Natsutani Minoru
ML meetup20190327
by
Natsutani Minoru
robotics42.pptx
by
Natsutani Minoru
Road damge ai
by
Natsutani Minoru
Kyoto devcafe
by
Natsutani Minoru
Recently uploaded
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PDF
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
PMBOK 7th Edition Project Management Process Scrum
by
akipii ogaoga
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PMBOK 7th Edition_Project Management Context Diagram
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PMBOK 7th Edition_Project Management Process_WF Type Development
by
akipii ogaoga
コキュートスTfug
1.
Kerasで組み込み向けフレームワークを作ろう - コキュートスの紹介 - 2017/4/21 株式会社パソナテック エンジニアリング事業部 夏谷 1
2.
今回の発表の目的 2 本日は、コキュートスという俺俺自作フレームワークの中で使っているKerasの機能を紹 介します。それをネタに、みなさんも俺俺フレームワークを作ってください。 もしコキュートスより良い物があったら、僕はそっち使います。
3.
アジェンダ 自己紹介 開発の経緯
コキュートスの紹介 コキュートスとは Kerasからの情報取得 Numpyフォーマット データの型を変更する 3
4.
4 自己紹介
5.
自己紹介 夏谷実 株式会社パソナテック
株式会社パソナテック エンジニアリング事業部 エンジニアマネージメントグループ TFUG KANSAI←New! 5/27! 最近は半導体関連の仕事が多い FPGAが好き プログラミングも好き Deep Learningも好き 5
6.
6 公認キャラにライバル登場 安芸乃 てく(通称:てくのたん) CV:高野麻理佳 Twitter→@techno_tan 高知県出身の将来が不安な女の子(ソ^▽^)ナ 技術を身に着けて自由な働き方をしたいと思っており、上京し パソナテックにインターンとして勤務している。 最近はインターンとしてチャットボットの開発をしていたり、Little Bitsなどを触ってみたりしている。 5/24(水)けーすた! 企業が取り組む最新技術動向が分かる、ケーススタディ型ライトニングトーク イべント開催!GMOインターネット株式会社様のキャラクター美雲このはと のコラボ! あ
き の
7.
7 開発の経緯
8.
開発の経緯 8 NPS-Verilog データフローを定義した らFPGAで動くVerilog を作ろう →そもそも機械学習や Deep Learningが分か ってなく、挫折。 NPU 量子化されたデータを 扱う専用プロセッサを 作ろう。 Cのリファレンスモデル がいるよね。 コキュートス NPUのプロジェクトから、 C言語生成ツールのみ スピンアウト Darknetの影響は受けている
9.
コキュートス(嘆きの川) 9 地獄 (組み込み業界) 地上 (クラウド、GPU) 電力が足りず、GPUやクラウドが使えない世界 組込みエンジニア達 嘆きの川 AIサイエンティスト 層構造
10.
開発の現状 10 NPU MNIST(CNN)sampleは動作 突然のVer2.0 API変更 それに合わせて、プロジェクト名をコキュ ートスに InputLayer Conv2D Conv2D MaxPooling2D Conv2D Conv2D MaxPooling2D Conv2D Conv2D Conv2D MaxPooling2D Conv2D Conv2D Conv2D MaxPooling2D Conv2D Conv2D Conv2D MaxPooling2D flatten Dence Dence Dence Output Kerasに付属するVGG16サンプル動作
11.
11 コキュートスの紹介
12.
コキュートスとは 12 Kerasから、Cソースを半自動生成します。今の所学習はしません。
13.
コキュートスのネット対応方法 13 ①MNIST(CNN) Conv2D ReLU MaxPooling 2D Dense Dense softmax 3x3 valid ②VGG16 Conv2D ReLU MaxPooling 2D Dense Dense softmax 3x3 same Input Layer ③YOLO ZeroPaddin g2D MaxPooling 2D Dense Dense softmax LeakReLU Batch Normalize ④SSD Conv2D MaxPooling 2D Conv2D ZeroPooling 2D GlobalAverag ePooling2D Flatten Flatten Flatten Flatten Concatenate Reshape PriorBox カスタムレイヤー
14.
コキュートスが出力するCソースの特徴 14 特徴2:C言語が出来れば参加OKのフレームワークを目指す。 ・組込機器でのデバッグしやすさを優先 ・C++の機能は使わない。 ・関数ポインタ、ポインタのポインタ、ポインターの配列は使わない。 ・出来る限り、べたにループで回す。 ・環境に応じた最適化は出来る人がする。 特徴1:どんなプアーな環境でも動くCソースを出力する。 ・mallocやファイルシステムを前提としない。 ・実行に必要なメモリ使用量が明確 ・ブラックボックスを作らない ・必要なライブラリを最小にする。 ・特別な処理は、直接Cソースを書き換える。 ・環境に応じた最適化は別途行う。 Pythonの知識が無くてもDeep Learningのプロジェクトに楽しく参加できる!
15.
出力ソースの実例 15 https://github.com/natsutan/cocytus/blob/master/example/vgg16/c/cqt_gen/cqt_gen.c デバッグ中に確認したくなるであろう情報は、全てグ ローバル変数で宣言する。デバッガで止めたときに いつでも確認できる。 初期設定 データの並びを画処理のエンジニアが理解し やすい順番に変換
16.
16 Kerasからの情報取得
17.
Kerasからの情報取得 17 Kerasでモデルを作成 し、学習させる。 ①Summaryの表示 ②JSONの出力 ③学習結果(重み)の 出力
18.
①summaryの表示 18 model.summary() を使う ____________________________________________________________________________________________________ Layer (type)
Output Shape Param # Connected to ==================================================================================================== convolution2d_1 (Convolution2D) (None, 26, 26, 32) 320 convolution2d_input_1[0][0] ____________________________________________________________________________________________________ activation_1 (Activation) (None, 26, 26, 32) 0 convolution2d_1[0][0] ____________________________________________________________________________________________________ convolution2d_2 (Convolution2D) (None, 24, 24, 32) 9248 activation_1[0][0] ____________________________________________________________________________________________________ activation_2 (Activation) (None, 24, 24, 32) 0 convolution2d_2[0][0] ____________________________________________________________________________________________________ maxpooling2d_1 (MaxPooling2D) (None, 12, 12, 32) 0 activation_2[0][0] ____________________________________________________________________________________________________ dropout_1 (Dropout) (None, 12, 12, 32) 0 maxpooling2d_1[0][0] ____________________________________________________________________________________________________ flatten_1 (Flatten) (None, 4608) 0 dropout_1[0][0] ____________________________________________________________________________________________________ dense_1 (Dense) (None, 128) 589952 flatten_1[0][0] 学習データの個数 コンボリューション用の3x3のフィルターが32個あります。重み(学習済みデータ)の個数は いくつですか?3×3×32=288個じゃないの? 各フィルターにbias項があるので、32個増えて288+32 = 320個が正解
19.
②jsonの出力 19 with open(‘output/cnn.json’, ‘w’)
as fp: json_string = model.to_json() fp.write(json_string) json_string = open(json_file, 'r').read() model = model_from_json(json_string) {"kernel_regularizer": null, "name": "block1_conv1", "trainable": true, "kernel_constraint": null, "filters": 64, "activity_regularizer": null, "bias_constraint": null, "strides": [1, 1], "bias_regularizer": null, "kernel_size": [3, 3], "activation": "relu", Keras Layerのコンストラクタに与え る引数がjsonに入っている。 カスタムレイヤーの場合は、json出力のために関数を定義する必要がある。
20.
②jsonの出力 20 一度jsonファイルを読み込むと、model.layersから各層の詳細情報が取得できる。
21.
③学習結果の出力 21 model.save('output/cnn.h5') Hdf5形式で保存できる ディレクトリ構造を持ったファイル形式。 コキュートスでは、Kerasのソースコードを流用して、レイヤー単位のnumpy形式 で保存している
22.
22 Numpy形式について
23.
データをnumpy形式でやりとりする。 23 Numpy形式で保存することで、np.loadで簡単に読み込める。 Numpyの統計情報や、matplolibによる可視化が簡単。 デバッグ時に非常に役に立つ。 重みの分布を可視化 ある画像を入れたときの、特 定の層の出力値の可視化
24.
kerasで特定の層の出力を取り出す。 24 from keras import
backend as K # モデルの読み込み model = VGG16(include_top=True, weights='imagenet', input_tensor=None, input_shape=None) # 入力データをxに設定 img = image.load_img(img_file, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) # K.funtionで第l層の出力を取り出す関数を作る。 l = 10 get_layer_output = K.function([model.layers[0].input, K.learning_phase()], [model.layers[l].output]) # 出力の取り出し layer_output = get_layer_output([x, 0]) 取り出した出力を、np.saveを使ってnumpyフォーマットで保存する。
25.
numpyフォーマット 25 numpyヘッダー - magic number
x93NUMPY - major version, minor version - HEADER_LEN - python dictionary - 型 <f4 float32 - 配列のサイズ (3, 244, 244) np.save(filename, data, allow_pickle=False) を忘れずに float data[3][224][224]; //fseekでヘッダーを飛ばす fseek(fp, 8+2+hsize, 0); //freadでサイズ分読み込み fread(&data, 4, DATA_NUM, fp); Cソースによるnumpy 読み込み
26.
numpyを使ったデバッグ例① 26 VGG16に犬の画像を入れて、レイヤー0 (InputLayer)の値をnumpy出力して比較した。 青:Kerasの出力 赤:コキュートスの出力 Kerasの入力が、全体的に小さい値になっ ている。調べてみると、VGG16では、RGB に対して(103.939, 116.779, 123.68)を引 かないと行けなかった。 コキュートスの画像変換プロ グラムを修正 修正後には一致
27.
numpyを使ったデバッグ例② 27 3x3のコンボリューションの例: ニューロンの反応する場所はあっているけど、計算結果が違う。 →3x3のxとyの取り方が逆でした。
28.
28 データの型を変更する
29.
コキュートスの型変換方法 29 Conv2D 重み float32 出力 float32 入力 unit8,
or float32 MNISTとVGG16では入力の型が違う。 同じソースで処理したいが、Cの枠組み では扱えない。 将来的には、重みを8bitにしたり、柔軟 な型に対応したい。 さて、どうしましょうか? 解決策1:C++の関数テンプレートを使う。 template<typename T,typename U> T Add(T a,U b){ return a+b; } 技術的には正しい選択だが、C++はいろいろ難易度が高い。 解決策2:ポインターをキャストしもって使う。 Cソースの難易度が上がって、手を入れられなくなる。
30.
コキュートスの型変換方法 30 C++のテンプレート関数の仕組みを、コキュートス内部に実装。 C++テンプレート関数の恩恵を受けながらも、Cのソースを出力する。 int $func_name (CQT_LAYER
*lp, void *inp, void *outp) { $weight_type filter3x3[3][3]; $input_type data3x3[3][3]; $weight_type bias; LY_Conv2D *cnvp; cnvp = lp->param_p; $input_type *ip = ($input_type *)inp; ライブラリ生成時に変換 int CQT_Conv2D_same_3x3_if_of (CQT_LAYER *lp, void *inp, void *outp) { float filter3x3[3][3]; float data3x3[3][3]; float bias; LY_Conv2D *cnvp; cnvp = lp->param_p; float *ip = (float *)inp; ソースを書き換えて型を指定。 関数名は一定のルールでマングリング DLの計算は、四則演算+三角関数程度なので、 C言語の暗黙の型変換で十分対応できる。 将来的には、固定少数点数の桁数が違う関数や、特別な仕組みの量子化にも対応予定
31.
まとめ 31 keras コキュートス 組込みCソース 組込み プロセッサ 向け最適化 DSP 向け最適化 FPGA向け 実装 専用HW 向け実装 中間言語としての C言語
32.
まとめ 誰でも参加できる組込向けフレームワークコキュー トスを作ってます。 今、ラズパイでVGG16が動いてます。
Kerasを使うと、独自フレームワークが簡単に作れます 。 numpyを使ってデバッグの効率アップ いろんな型に対応するためにC++の機能を取り込みま した。 中間言語してのC言語 Pythonと組込みCができるともてる 32 ご静聴ありがとうございました。
Editor's Notes
#7
こうのまりか
Download