Tensor flow勉強会3
-
Upload
tak9029 -
Category
Engineering
-
view
2.873 -
download
2
Transcript of Tensor flow勉強会3
![Page 1: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/1.jpg)
05/03/2023
シーエイトラボ株式会社
TensorFlow を C++ の観点から
TensorFlow 勉強会 第 3 回
C8Lab Copyright 2014 C8Lab Inc. All rights reserved
![Page 2: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/2.jpg)
2
自己紹介新村拓也(しんむら たくや)1990年鹿児島生まれレコメンド、検索エンジン、画像解析、未来予測などのデータ周りのことをやっています。シーエイトラボ株式会社代表取締役
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
![Page 3: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/3.jpg)
3
今日の話の注意事項 成功体験はほとんど話しません ある程度技術よりの話になります 皆さんもお分かりの通り、開発は壁にぶち当たることが多いです 使った時に苦労したことを話します TensorFlow を Dis るわけではありません TF に限らず、どんなライブラリや言語でもこれどうするんだっけ?という悩みがあると思います 同じ悩みを抱えているだろう人がいると思われます 勉強会なので、質疑や懇親会で議論して悩みを共有して解決しましょう! TF0.7 でのないようになります。 0.8 では改正されている点もあります。
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
![Page 4: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/4.jpg)
4
今回の話の経緯 物体の相対位置計測
画像に移るとある物体とカメラの相対位置を計測 分類ではなく回帰問題
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
・カメラとの相対距離(x,y,z)・カメラとの相対角度
(roll,pitch,yaw)
を算出する。
![Page 5: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/5.jpg)
5
当初やってたこと (x, y z, roll, pitch , yaw) = (1, 2, 3, 0.5π, 1.5π, 0.2π)=> このまま教師データに使おう!!!!!(標準化したとしても)
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
正解( 1, 2, 3, 0.5π, 1.5π, 0.1π ) 出力( 1, 2, 3, 0.5π, 1.5π, -
1.9π )
この誤差を伝播すれば。。。
![Page 6: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/6.jpg)
6 05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
間違いなのでは
![Page 7: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/7.jpg)
7
理由
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
正解( 1, 2, 3, 0.01π, 0.01π, 0.01π ) 観測( 1, 2, 3, -0.99π, -0.99π, -0.99π )
そんなに違う?
![Page 8: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/8.jpg)
8
対策 単位四元数(クヲォータニオン)の係数を使おう
複素数の虚部を3次元に拡張したもの 姿勢計測の分野でよく用いられる 3 D ゲームなどでもよく用いられている
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
![Page 9: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/9.jpg)
9
問題再び
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
h=0.1
h=0.2
h=0.3
h=0.4
四元数の条件を満たしていない。
![Page 10: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/10.jpg)
10
単位四元数の条件
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
各出力を2乗して足したら1になる必要がある
![Page 11: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/11.jpg)
11
条件を満たすために 出力層の発火関数は以下の条件を満たす必要がある
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
さすがにデフォルトの機能では無理
![Page 12: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/12.jpg)
12
やっと本題 Adding a New Op
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
![Page 13: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/13.jpg)
13
オペレーション追加に必要なこと オペレーションを定義する( C++ )
インプットアウトプット定義 カーネルに登録及び実装をする( C++ )
実際にインプットがきたらどのように計算するか (必要なら)勾配を定義する( python )
評価関数をそのオペレーションへのインプットの勾配で定義
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
![Page 14: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/14.jpg)
14
オペレーション登録
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
コレ
![Page 15: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/15.jpg)
15
カーネル実装登録
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
コレ
![Page 16: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/16.jpg)
16
とりあえずビルドしてみる
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
結果
Include するべきファイルがない!何故?Ubuntu でも同様の現象が起きました。
![Page 17: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/17.jpg)
17
原因
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
Include パス内にある中身の違い
バイナリからインストールした時 ソースからビルドした時
ソースからビルドとバイナリからビルドした時に中身が違う。。
![Page 18: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/18.jpg)
18
反省
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
他の環境ビルドされた成果物を信じたお前が悪い
![Page 19: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/19.jpg)
19
問題再び
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
結果
リンカエラーや、 tensorflow なんてやついないと怒られたり。。g++ を xcode 経由で入れているから何か問題があるのか?
![Page 20: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/20.jpg)
20
結局
Ubuntu でやったら解決しました
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
![Page 21: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/21.jpg)
21
最後の問題 勾配定義
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
プログラムだとちょっとわかりにくかったのでコメントから解読
![Page 22: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/22.jpg)
22
意味 勾配の定義
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
入力 u 出力 a
return するもの
引数で与えられる grad
計算してあげないとダメなもの
![Page 23: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/23.jpg)
23
結果とまとめ 無事に Op 登録を行えました 念の為に mnist を使ってチェック
ミスがあれば精度 0.098 になります まとめ
ドキュメントにあるんだから楽勝だろうと思っていたらヤケドした オープンソースなんだからソースからビルドしましょう 何故か解決してしまった Ubuntu, Mac の違いが気になりっぱなし ドキュメントよりコード、コメントのほうが参考になった 自由自在に使いこなすまでの道のりは遠い… .
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved
![Page 24: Tensor flow勉強会3](https://reader035.fdocument.pub/reader035/viewer/2022081511/58719a151a28ab044e8b57ed/html5/thumbnails/24.jpg)
24
ご清聴有難うございました!
05/03/2023C8Lab Copyright 2014 C8Lab Inc. All rights reserved