Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tensor and Arrow
Search
Kenta Murata
December 08, 2018
Technology
0
880
Tensor and Arrow
Apache Arrow Tokyo Meetup 2018.12.08
Kenta Murata
December 08, 2018
Tweet
Share
More Decks by Kenta Murata
See All by Kenta Murata
waitany と waitall を作った話
mrkn
0
130
HolidayJp.jl を作りました
mrkn
0
130
Calling Julia functions from Streamlit applications
mrkn
1
350
Red Data Tools で切り開く Ruby の未来
mrkn
3
1.1k
Method-based JIT compilation by transpiling to Julia
mrkn
0
6.6k
Apache Arrow C++ Datasets
mrkn
4
1.5k
Reducing ActiveRecord memory consumption using Apache Arrow
mrkn
0
1.6k
RubyData and Rails
mrkn
0
3k
RubyData Current and Future
mrkn
1
3.4k
Other Decks in Technology
See All in Technology
見えづらい活動の成果の伝え方は日頃からめちゃくちゃ悩んでるけど、実際こんな取り組みをしな がら温度感を合わせにいってるよ / Conveying Hard-to-See Results
kakehashi
4
2k
LINEヤフー新卒採用 コーディングテスト解説 実装問題編
lycorp_recruit_jp
1
13k
地域DXにおけるGrafana活用事例
wacky
0
120
ラブグラフ紹介資料 〜プロダクト解体新書〜 / Lovegraph Product Deck
lovegraph
0
14k
トークナイザー入門
payanotty
2
1k
不要なリソースを自動で定期的に整理する方法 ~Sandboxアカウントのコストを削減しよう!~
amixedcolor
3
120
Perlで始めるeBPF: 自作Loaderの作り方 / Getting started with eBPF in Perl_How to create your own Loader
takehaya
1
990
New Relicを活用したシステム監視の強化とオブザーバビリティ向上
sugoto911
1
110
Graph Database と Generative AI の素敵な関係
oracle4engineer
PRO
11
1.9k
エンジニア向け会社紹介資料
caddi_eng
14
270k
OPENLOGI Company Profile for engineer
hr01
1
12k
Azure App Service on Linux の Sidecar に Phi-3 を配置してインテリジェントなアプリケーションを作ってみよう/jazug-anniv14
thara0402
0
520
Featured
See All Featured
Music & Morning Musume
bryan
46
6.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.6k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
How GitHub Uses GitHub to Build GitHub
holman
473
290k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.7k
Rails Girls Zürich Keynote
gr2m
93
13k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
660
The Pragmatic Product Professional
lauravandoore
31
6.2k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Transcript
Tensor and Apache Arrow Kenta Murata Speee, Inc.
Apache Arrow Tokyo Meetup 2018.12.08 self.introduction • Kenta Murata (mrkn)
• Full-time CRuby committer at Speee, Inc. • Ruby, C/C++, Python, Julia, etc. • pycall.rb, mxnet.rb, enumerable-statistics, etc.
Apache Arrow Tokyo Meetup 2018.12.08 ⽬次 • テンソルについて • Apache
Arrow とテンソルの関係 • 私がいまやっていること • 未来の展望
Apache Arrow Tokyo Meetup 2018.12.08 テンソル • 多次元の数値配列 • 0次元
(0階): スカラー • 1次元 (1階): ベクトル • 2次元 (2階): ⾏列 • それ以上: テンソル x = 1 + 2i <latexit sha1_base64="Gu+MGk1MyZRkEbU0sEfqgUBth+I=">AAAB7XicbZDNSgMxFIXv1L9a/6ou3QSLIAhlpgi6EYpuXFaw00I7lEyaaWMzyZBkxDL0Hdy4UMSt7+POtzFtZ6GtBwIf595L7j1hwpk2rvvtFFZW19Y3ipulre2d3b3y/oGvZaoIbRLJpWqHWFPOBG0aZjhtJ4riOOS0FY5upvXWI1WaSXFvxgkNYjwQLGIEG2v5T1feWY31yhW36s6ElsHLoQK5Gr3yV7cvSRpTYQjHWnc8NzFBhpVhhNNJqZtqmmAywgPasShwTHWQzbadoBPr9FEklX3CoJn7eyLDsdbjOLSdMTZDvVibmv/VOqmJLoOMiSQ1VJD5R1HKkZFoejrqM0WJ4WMLmChmd0VkiBUmxgZUsiF4iycvg1+repbvziv16zyOIhzBMZyCBxdQh1toQBMIPMAzvMKbI50X5935mLcWnHzmEP7I+fwBdieOYg==</latexit> <latexit sha1_base64="Gu+MGk1MyZRkEbU0sEfqgUBth+I=">AAAB7XicbZDNSgMxFIXv1L9a/6ou3QSLIAhlpgi6EYpuXFaw00I7lEyaaWMzyZBkxDL0Hdy4UMSt7+POtzFtZ6GtBwIf595L7j1hwpk2rvvtFFZW19Y3ipulre2d3b3y/oGvZaoIbRLJpWqHWFPOBG0aZjhtJ4riOOS0FY5upvXWI1WaSXFvxgkNYjwQLGIEG2v5T1feWY31yhW36s6ElsHLoQK5Gr3yV7cvSRpTYQjHWnc8NzFBhpVhhNNJqZtqmmAywgPasShwTHWQzbadoBPr9FEklX3CoJn7eyLDsdbjOLSdMTZDvVibmv/VOqmJLoOMiSQ1VJD5R1HKkZFoejrqM0WJ4WMLmChmd0VkiBUmxgZUsiF4iycvg1+repbvziv16zyOIhzBMZyCBxdQh1toQBMIPMAzvMKbI50X5935mLcWnHzmEP7I+fwBdieOYg==</latexit> <latexit sha1_base64="Gu+MGk1MyZRkEbU0sEfqgUBth+I=">AAAB7XicbZDNSgMxFIXv1L9a/6ou3QSLIAhlpgi6EYpuXFaw00I7lEyaaWMzyZBkxDL0Hdy4UMSt7+POtzFtZ6GtBwIf595L7j1hwpk2rvvtFFZW19Y3ipulre2d3b3y/oGvZaoIbRLJpWqHWFPOBG0aZjhtJ4riOOS0FY5upvXWI1WaSXFvxgkNYjwQLGIEG2v5T1feWY31yhW36s6ElsHLoQK5Gr3yV7cvSRpTYQjHWnc8NzFBhpVhhNNJqZtqmmAywgPasShwTHWQzbadoBPr9FEklX3CoJn7eyLDsdbjOLSdMTZDvVibmv/VOqmJLoOMiSQ1VJD5R1HKkZFoejrqM0WJ4WMLmChmd0VkiBUmxgZUsiF4iycvg1+repbvziv16zyOIhzBMZyCBxdQh1toQBMIPMAzvMKbI50X5935mLcWnHzmEP7I+fwBdieOYg==</latexit> <latexit sha1_base64="Gu+MGk1MyZRkEbU0sEfqgUBth+I=">AAAB7XicbZDNSgMxFIXv1L9a/6ou3QSLIAhlpgi6EYpuXFaw00I7lEyaaWMzyZBkxDL0Hdy4UMSt7+POtzFtZ6GtBwIf595L7j1hwpk2rvvtFFZW19Y3ipulre2d3b3y/oGvZaoIbRLJpWqHWFPOBG0aZjhtJ4riOOS0FY5upvXWI1WaSXFvxgkNYjwQLGIEG2v5T1feWY31yhW36s6ElsHLoQK5Gr3yV7cvSRpTYQjHWnc8NzFBhpVhhNNJqZtqmmAywgPasShwTHWQzbadoBPr9FEklX3CoJn7eyLDsdbjOLSdMTZDvVibmv/VOqmJLoOMiSQ1VJD5R1HKkZFoejrqM0WJ4WMLmChmd0VkiBUmxgZUsiF4iycvg1+repbvziv16zyOIhzBMZyCBxdQh1toQBMIPMAzvMKbI50X5935mLcWnHzmEP7I+fwBdieOYg==</latexit> X = 1 2 3 4 5 6 <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> <latexit sha1_base64="ck8pdC+ekZH4nUmSP+ZG7r8lEyk=">AAAB2XicbZDNSgMxFIXv1L86Vq1rN8EiuCozbnQpuHFZwbZCO5RM5k4bmskMyR2hDH0BF25EfC93vo3pz0JbDwQ+zknIvSculLQUBN9ebWd3b/+gfugfNfzjk9Nmo2fz0gjsilzl5jnmFpXU2CVJCp8LgzyLFfbj6f0i77+gsTLXTzQrMMr4WMtUCk7O6oyaraAdLMW2IVxDC9YaNb+GSS7KDDUJxa0dhEFBUcUNSaFw7g9LiwUXUz7GgUPNM7RRtRxzzi6dk7A0N+5oYkv394uKZ9bOstjdzDhN7Ga2MP/LBiWlt1EldVESarH6KC0Vo5wtdmaJNChIzRxwYaSblYkJN1yQa8Z3HYSbG29D77odOn4MoA7ncAFXEMIN3MEDdKALAhJ4hXdv4r15H6uuat66tDP4I+/zBzjGijg=</latexit> <latexit sha1_base64="77KbD42ui+pDCBJCFiHXvNCCRYo=">AAACI3icbZBNS8NAEIYn9avGqtWrl0VRPJXE74sgiOBRwWqhCWWzmdalm03Y3Ygl9Bd58a/oQVAR/4qbWsSvgWEf3plhZ94oE1wbz3t2KhOTU9Mz1Vl3rja/sFhfql3qNFcMmywVqWpFVKPgEpuGG4GtTCFNIoFXUf+4rF/doNI8lRdmkGGY0J7kXc6osVKnfhJEqYj1ILFP0RqSQxJE2OOyiBJqFL8duj7ZIFs2t0kQuDsWdm3uuQHK+KupU1/zGt4oyF/wx7AG4zjr1B+DOGV5gtIwQbVu+15mwoIqw5nAoRvkGjPK+rSHbYuSJqjDYnTukKxbJSbdVNmUhozU7xMFTXR5ke20+13r37VS/K/Wzk33ICy4zHKDkn1+1M0FMSkpvSMxV8iMGFigTHG7K2HXVFFmrMOuNcH/ffJfuNxq+JbPPajCCqzCJviwD0dwCmfQBAZ38AAv8OrcO0/O26ddFWfs2zL8COf9A9Y9o7k=</latexit> <latexit sha1_base64="77KbD42ui+pDCBJCFiHXvNCCRYo=">AAACI3icbZBNS8NAEIYn9avGqtWrl0VRPJXE74sgiOBRwWqhCWWzmdalm03Y3Ygl9Bd58a/oQVAR/4qbWsSvgWEf3plhZ94oE1wbz3t2KhOTU9Mz1Vl3rja/sFhfql3qNFcMmywVqWpFVKPgEpuGG4GtTCFNIoFXUf+4rF/doNI8lRdmkGGY0J7kXc6osVKnfhJEqYj1ILFP0RqSQxJE2OOyiBJqFL8duj7ZIFs2t0kQuDsWdm3uuQHK+KupU1/zGt4oyF/wx7AG4zjr1B+DOGV5gtIwQbVu+15mwoIqw5nAoRvkGjPK+rSHbYuSJqjDYnTukKxbJSbdVNmUhozU7xMFTXR5ke20+13r37VS/K/Wzk33ICy4zHKDkn1+1M0FMSkpvSMxV8iMGFigTHG7K2HXVFFmrMOuNcH/ffJfuNxq+JbPPajCCqzCJviwD0dwCmfQBAZ38AAv8OrcO0/O26ddFWfs2zL8COf9A9Y9o7k=</latexit> <latexit sha1_base64="Fx6HmpuUKmVwQN8aZtHcxPvlIlY=">AAACLnicbZBLSwMxEMez9VXXV9Wjl2BRPJXd+rwIRRE8VrAP6JaSzU7b0Gx2SbJiWfqJvPhV9CCoiFc/hukD0daBIT/+M0Nm/n7MmdKO82pl5uYXFpeyy/bK6tr6Rm5zq6qiRFKo0IhHsu4TBZwJqGimOdRjCST0OdT83uWwXrsDqVgkbnU/hmZIOoK1GSXaSK3cledHPFD90DxpfYDPsedDh4nUD4mW7H5gu3gfF00eYs+zjwwcmzyxPRDBT1Mrl3cKzijwLLgTyKNJlFu5Zy+IaBKC0JQTpRquE+tmSqRmlMPA9hIFMaE90oGGQUFCUM10dO4A7xklwO1ImhQaj9TfEykJ1fAi02n266rp2lD8r9ZIdPusmTIRJxoEHX/UTjjWER56hwMmgWreN0CoZGZXTLtEEqqNw7YxwZ0+eRaqxYJr+MbJly4mdmTRDtpFB8hFp6iErlEZVRBFD+gJvaF369F6sT6sz3FrxprMbKM/YX19A+jQpU4=</latexit> <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> <latexit sha1_base64="8t1COri06Ue5zSsWgWX9QCScSwM=">AAACLnicbZBLSwMxEMezPuv6qnr0EiyKp7Jb6+MiFEXwWME+oFtKNjttQ7PZJcmKZekn8uJX0YOgIl79GKYPRFsHhvz4zwyZ+fsxZ0o7zqs1N7+wuLScWbFX19Y3NrNb21UVJZJChUY8knWfKOBMQEUzzaEeSyChz6Hm9y6H9dodSMUicav7MTRD0hGszSjRRmplrzw/4oHqh+ZJ6wN8jj0fOkykfki0ZPcD28UHuGDyCHueXTRwbPLE9kAEP02tbM7JO6PAs+BOIIcmUW5ln70gokkIQlNOlGq4TqybKZGaUQ4D20sUxIT2SAcaBgUJQTXT0bkDvG+UALcjaVJoPFJ/T6QkVMOLTKfZr6uma0Pxv1oj0e2zZspEnGgQdPxRO+FYR3joHQ6YBKp53wChkpldMe0SSag2DtvGBHf65FmoFvKu4ZtirnQxsSODdtEeOkQuOkUldI3KqIIoekBP6A29W4/Wi/VhfY5b56zJzA76E9bXN+oQpVI=</latexit> x = ⇥ 1 2 3 ⇤T <latexit sha1_base64="QGpRrgHAPj0l7ioV+t/VFBig2NQ=">AAACI3icbVDLSgMxFM34rOOr6tJNsCiuykwVFEEounFZoS/o1JLJ3LahmcyQZKRl6L+48VfcuFCKGxf+i+kD0dYLlxzOuZfcc/yYM6Ud59NaWl5ZXVvPbNibW9s7u9m9/aqKEkmhQiMeybpPFHAmoKKZ5lCPJZDQ51Dze7djvfYIUrFIlPUghmZIOoK1GSXaUK3sledHPFCD0Dxpf4ivsedDh4nUD4mWrD+0XXyCC6bPbA9E8MM/lFvZnJN3JoUXgTsDOTSrUis78oKIJiEITTlRquE6sW6mRGpGOQxtL1EQE9ojHWgYKEgIqplOPA7xsWEC3I6kaaHxhP29kZJQjW2YSXNhV81rY/I/rZHo9mUzZSJONAg6/aidcKwjPA4MB0wC1XxgAKGSmVsx7RJJqDax2iYEd97yIqgW8q7B9+e54s0sjgw6REfoFLnoAhXRHSqhCqLoCb2gN/RuPVuv1sj6mI4uWbOdA/SnrK9vVZWjaQ==</latexit> <latexit sha1_base64="QGpRrgHAPj0l7ioV+t/VFBig2NQ=">AAACI3icbVDLSgMxFM34rOOr6tJNsCiuykwVFEEounFZoS/o1JLJ3LahmcyQZKRl6L+48VfcuFCKGxf+i+kD0dYLlxzOuZfcc/yYM6Ud59NaWl5ZXVvPbNibW9s7u9m9/aqKEkmhQiMeybpPFHAmoKKZ5lCPJZDQ51Dze7djvfYIUrFIlPUghmZIOoK1GSXaUK3sledHPFCD0Dxpf4ivsedDh4nUD4mWrD+0XXyCC6bPbA9E8MM/lFvZnJN3JoUXgTsDOTSrUis78oKIJiEITTlRquE6sW6mRGpGOQxtL1EQE9ojHWgYKEgIqplOPA7xsWEC3I6kaaHxhP29kZJQjW2YSXNhV81rY/I/rZHo9mUzZSJONAg6/aidcKwjPA4MB0wC1XxgAKGSmVsx7RJJqDax2iYEd97yIqgW8q7B9+e54s0sjgw6REfoFLnoAhXRHSqhCqLoCb2gN/RuPVuv1sj6mI4uWbOdA/SnrK9vVZWjaQ==</latexit> <latexit sha1_base64="QGpRrgHAPj0l7ioV+t/VFBig2NQ=">AAACI3icbVDLSgMxFM34rOOr6tJNsCiuykwVFEEounFZoS/o1JLJ3LahmcyQZKRl6L+48VfcuFCKGxf+i+kD0dYLlxzOuZfcc/yYM6Ud59NaWl5ZXVvPbNibW9s7u9m9/aqKEkmhQiMeybpPFHAmoKKZ5lCPJZDQ51Dze7djvfYIUrFIlPUghmZIOoK1GSXaUK3sledHPFCD0Dxpf4ivsedDh4nUD4mWrD+0XXyCC6bPbA9E8MM/lFvZnJN3JoUXgTsDOTSrUis78oKIJiEITTlRquE6sW6mRGpGOQxtL1EQE9ojHWgYKEgIqplOPA7xsWEC3I6kaaHxhP29kZJQjW2YSXNhV81rY/I/rZHo9mUzZSJONAg6/aidcKwjPA4MB0wC1XxgAKGSmVsx7RJJqDax2iYEd97yIqgW8q7B9+e54s0sjgw6REfoFLnoAhXRHSqhCqLoCb2gN/RuPVuv1sj6mI4uWbOdA/SnrK9vVZWjaQ==</latexit> <latexit sha1_base64="QGpRrgHAPj0l7ioV+t/VFBig2NQ=">AAACI3icbVDLSgMxFM34rOOr6tJNsCiuykwVFEEounFZoS/o1JLJ3LahmcyQZKRl6L+48VfcuFCKGxf+i+kD0dYLlxzOuZfcc/yYM6Ud59NaWl5ZXVvPbNibW9s7u9m9/aqKEkmhQiMeybpPFHAmoKKZ5lCPJZDQ51Dze7djvfYIUrFIlPUghmZIOoK1GSXaUK3sledHPFCD0Dxpf4ivsedDh4nUD4mWrD+0XXyCC6bPbA9E8MM/lFvZnJN3JoUXgTsDOTSrUis78oKIJiEITTlRquE6sW6mRGpGOQxtL1EQE9ojHWgYKEgIqplOPA7xsWEC3I6kaaHxhP29kZJQjW2YSXNhV81rY/I/rZHo9mUzZSJONAg6/aidcKwjPA4MB0wC1XxgAKGSmVsx7RJJqDax2iYEd97yIqgW8q7B9+e54s0sjgw6REfoFLnoAhXRHSqhCqLoCb2gN/RuPVuv1sj6mI4uWbOdA/SnrK9vVZWjaQ==</latexit>
Apache Arrow Tokyo Meetup 2018.12.08 テンソルの⽤途 • 元々は物理学で多重線形性を持つ量を表現するために作られた概念 例) 応⼒テンソル、弾性率テンソル、エネルギー運動量テンソル、
計量テンソル、etc. • すべての観測値はテンソルで表現できる • ⾳声、株価の履歴、画像、映像、テキスト、etc. • 機械学習モデルへの⼊⼒と出⼒はテンソル • 密なテンソルと疎なテンソルがある
Apache Arrow Tokyo Meetup 2018.12.08 密なテンソル • ほぼ全ての要素が⾮ゼロ • 2次元以上のテンソルの場合、値の並べ⽅は
C ⾔語⽅式 (row- major) と Fortran ⽅式 (column-major) の2種類ある • 密なテンソルの例: • 画像 (特に写真) • 複数銘柄の株価履歴
Apache Arrow Tokyo Meetup 2018.12.08 疎なテンソル • ゼロの要素が⾮常に多いテンソル • ⾮ゼロの要素だけを効率よく保持する形式がある
• 疎なテンソルが適しているものの例: • 購買履歴によるユーザの特徴づけ • BOW による⽂書の特徴量
RubyData Tokyo Meetup 2018 購買履歴によるユーザの特徴づけ Ϣʔβ 1 … 1
2 … 2 3 1 … 3 4 4 4 2 … 2 4 … 2 … 3 … 1 … 3 2 4 … 1 3 2 2 … 2 1 … 1 1 1 … 2 1 3 5 3 … ộ ộ ộ ộ ộ ộ ộ ộ ộ ộ ộ ộ ộ …
Apache Arrow Tokyo Meetup 2018.12.08 Apache Arrow が 解決しようとしていること •
異なるプログラミング⾔語、異なるシステム間の分断 • 各⾔語にデータフレームライブラリが存在して、それぞれ 独⽴にデータ構造と機能を実装している • テンソルでもデータフレームのように複数システム間の 分断が起きている❗
Apache Arrow Tokyo Meetup 2018.12.08 テンソルの分断 • 論理的なデータ構造は同じだが、物理的な実装がシステム間で 異なる •
システム間で対応している機能が微妙に異なる • システム間でデータ交換する仕組みが存在しない • 現状でも密なテンソルは交換しやすい • 疎なテンソルは複雑なデータ構造を持っているため難しい • etc.
RubyData Tokyo Meetup 2018 Apache Arrow で 解決できそう
Apache Arrow Tokyo Meetup 2018.12.08 Apache Arrow による解決 • Apache
Arrow が代表的なテンソルのフォーマットを扱 えるようになる • 既存のシステムを Apache Arrow が対応しているフォー マットに対応させる • Apache Arrow を仲介してデータを交換する
Apache Arrow Tokyo Meetup 2018.12.08 データフレームとテンソル • Apache Arrow はデータフレームのライブラリなのに、
テンソルってどうなの? • カラムを独⽴に利⽤するときはデータフレームが便利 • ⼀⽅で、複数のカラムをまとめて処理するとき、(疎な) テ ンソルに変換して処理する場合がある 例) データフレーム → 疎なテンソル → PCA → 次元削減 → 密なテンソル
Apache Arrow Tokyo Meetup 2018.12.08 私が今やっていること • Apache Arrow への疎なテンソルの導⼊
• https://github.com/apache/arrow/pull/2546 • 昨⽇やっと first step の実装が完了 • 対応フォーマット: COO (多次元), CSR (2次元) • 密なテンソルからの変換 • ⼊出⼒
Apache Arrow Tokyo Meetup 2018.12.08 まだやれてないこと • まだマージされてない! • 疎なテンソルの対応フォーマットを増やす
• 疎なテンソルから密なテンソルへの変換 • C++ 以外の⾔語のバインディングでの対応 • 既存システムとの交換への対応 • scipy.sparse や tensorflow など • Apache Arrow の対応フォーマットを多くのシステムに対応させる • 例) Tensorflow は COO フォーマットのみ対応 → 増やす • テンソルの操作、テンソルを⽤いた計算は?
Apache Arrow Tokyo Meetup 2018.12.08 Plures (XND) • https://xnd.io/ •
NumPy の構成要素をきれいに分離して gumath, xnd, ndtypes の3つのライブラリを作る • NumPy が Python で果たしたハブの役割を、⾔語中⽴的 に担当することで、複数のシステム間のハブとして働く • テンソルの操作・計算はこれらのライブラリが担当する ようになる (はず!)
Apache Arrow Tokyo Meetup 2018.12.08 テンソル利⽤の未来予想図 • システム間でのテンソルの交換 ⇒ Apache
Arrow • テンソルの操作 ⇒ Apache Arrow & XND • テンソルを⽤いた計算 ⇒ XND
Apache Arrow Tokyo Meetup 2018.12.08 私の次の予定 (優先度順) • #2546 をマージさせる
(クリティカルパス) • scipy.sparse と pydata.sparse との交換処理を実装 • CSC フォーマットの実装 • CSF フォーマットの実装 • Python, Ruby, Julia バインディング