TensorFlow
ウィキペディアから
TensorFlow(テンソルフロー、テンサーフロー)とは、Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリである。
最新版 |
4.22.0
/ 2024年10月22日[5] |
---|---|
リポジトリ | tfjs - GitHub |
プログラミング 言語 | JavaScript |
公式サイト |
www |
初版 | 2020年10月8日 |
---|---|
最新版 |
1.0.0
/ 2024年12月7日[6] |
リポジトリ | java - GitHub |
プログラミング 言語 | Java |
ライセンス | Apache License 2.0 |
公式サイト |
www |
概要
要約
視点
機械学習や数値解析、ニューラルネットワーク(ディープラーニング)に対応しており、GoogleとDeepMindの各種サービスなどでも広く活用されている。
2015年11月9日にベータ版がApache 2.0 open source licenseの下で公開され[7]、2017年2月15日には正式版となるTensorFlow 1.0がリリースされた[8][9]。
TensorFlowは元々、Google内部での使用のためにGoogle Brainチームによって開発された[10][7]。開発された目的は、人間が用いる学習や論理的思考と似たように、パターンや相関を検出し解釈するニューラルネットワークを構築、訓練することができるシステムのための要求を満たすためである[11]。現在は、Googleのサービスの研究と生産に使用されており、以前に使用されていたクローズドソースのDistBeliefの役割をほぼ置き換えている[11]:min 0:15/2:17 [12]:p.2 [11]:0:26/2:17。AIにも詳しいルーカス・ビーワルドは、GoogleはTensorFlowのコードをオープンソースにした事で、AIの真の価値はAIの「エンジン」ではなく、AIを賢くするのに必要な「データ」である事を示したと語った。そのためGoogleは「データ」の部分は公開しないだろうと述べた[13]。
対応プログラミング言語はPython、JavaScript、C++、Java、C言語[3]。C言語は他の言語のバインディングを開発することを想定してAPIが作られている[4]。JavaScript版としてTensorFlow.jsがあり、ウェブブラウザの中で実行可能である。Java版は2020年に作り直しになり、C++版のAPIを呼び出す形となり、基本的に全ての機能が利用可能になった。
対応OSは64ビットのLinux(ただしバイナリ配布はUbuntu用)、macOS、Windows[14]。
対応ハードウェアはTensorFlow側で配布している物はCPU(x86とARM)[15]とNVIDIA GPU[15]だが、Google TPU[16]、AMD GPU[17]、Intel GPU[18]、AWS Trainium, Inferentia[19]版などをデバイスベンダー側が配布している。
また、TensorFlowベースの強化学習フレームワークDopamineもオープンソースとなっている。
Google Colaboratoryでも使える。
インテル向け
インテルのCPUやGPU用の Intel oneAPI Deep Neural Network Library ではディープラーニング用の最適化が実装されており、これを TensorFlow から利用できるようにしたものをインテルが配布している[20][21]。Anaconda などのディストリビューションでもこちらが採用されていて、pip で配布している物と比べて ResNet-50 が8.6倍高速に学習する[22]。
Eager Execution for TensorFlow
当初のTensorFlowはニューラルネットワークの計算を表現した計算グラフを学習の前にあらかじめ構築する「Define-and-Run」という方式を取っていたが、2018年に公開された新しい機能である「Eager Execution for TensorFlow」はPreferred Networksのディープラーニングフレームワーク「Chainer」などで採用されている、計算の実行時に計算グラフが定義される「Define-by-Run」という方式を取っている[23][24]。
LiteRT
当初、モバイル機器向けは TensorFlow for Mobile が存在した。2017年11月14日に TensorFlow Lite (TFLite) を Google が発表した[26][27]。更に、2024年9月4日、TensorFlow Lite は LiteRT に改名され、TensorFlow ではなく Google AI Edge の管理下となった[28]。LiteRT は、Android、iOS、組み込みLinux(Raspberry Piなど)、マイクロコントローラに対応している[29]。
GPUはLiteRT本家の実装はOpenGL ES、OpenCL、Metalを使った汎用的な実装となっている[30]。Arm NN[31]がLiteRTとONNXに対応していて、ArmのCPUおよびGPU(Maliなど)向けの最適化をかけていて、行列積や畳み込みはArm Compute Library[32]を呼び出す形で実装されている。
NPUは、Qualcomm Hexagon NPU[33]、MediaTek VPU, MDLA[34]、Google Edge TPU[35]などが対応している。
Android上でのニューラルネットワークの実行は、2017年にAndroid 8.1にてNeural Networks API (NNAPI)を導入したが、2024年にAndroid 15にて非推奨になった[36]。LiteRTから実行する形に切り替わり、LiteRT側でCPU・GPU・NPU対応をしている[37]。ただし、2025年2月22日現在、NPUで対応しているのはQualcomm Snapdragonのみ[38]。
応用
以下のような用途に利用可能[39]。
「CeBIT 2017」における展示
2017年3月20日から24日にかけてドイツ・ハノーファーで行われた国際情報通信技術見本市「CeBIT 2017」にて、Googleの日本法人がTensorFlowの採用事例として「から揚げ配膳ロボット」、「きゅうり仕分けロボット」、「ドローンで撮影した写真の解析」の3点を展示した[43]。
脚注
関連項目
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.