コンテンツにスキップ

TensorFlow

出典: フリー百科事典『ウィキペディア(Wikipedia)』
TensorFlow
開発元 Google, Yuan Tang, Arm[1]
初版 2015年11月9日 (9年前) (2015-11-09)
最新版 2.18.0[2] ウィキデータを編集 - 2024年10月24日 (3か月前) [±]
リポジトリ ウィキデータを編集
プログラミング
言語
[3][4]
対応OS
種別 機械学習ライブラリ
ライセンス Apache License 2.0
公式サイト tensorflow.org ウィキデータを編集
テンプレートを表示
TensorFlow.js
最新版
4.22.0 / 2024年10月22日 (4か月前) (2024-10-22)[5]
リポジトリ tfjs - GitHub
プログラミング
言語
JavaScript
公式サイト www.tensorflow.org/js
テンプレートを表示
TensorFlow for Java
初版 2020年10月8日 (4年前) (2020-10-08)
最新版
1.0.0 / 2024年12月7日 (2か月前) (2024-12-07)[6]
リポジトリ java - GitHub
プログラミング
言語
Java
ライセンス Apache License 2.0
公式サイト www.tensorflow.org/jvm
テンプレートを表示

TensorFlow(テンソルフロー、テンサーフロー)とは、Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリである。

概要

[編集]

機械学習数値解析ニューラルネットワークディープラーニング)に対応しており、GoogleDeepMindの各種サービスなどでも広く活用されている。

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:17AIにも詳しいルーカス・ビーワルド英語版は、GoogleはTensorFlowのコードオープンソースにした事で、AIの真の価値はAIの「エンジン」ではなく、AIを賢くするのに必要な「データ」である事を示したと語った。そのためGoogleは「データ」の部分は公開しないだろうと述べた[13]

対応プログラミング言語PythonJavaScriptC++JavaC言語[3]。C言語は他の言語のバインディングを開発することを想定してAPIが作られている[4]。JavaScript版としてTensorFlow.jsがあり、ウェブブラウザの中で実行可能である。Java版は2020年に作り直しになり、C++版のAPIを呼び出す形となり、基本的に全ての機能が利用可能になった。

対応OS64ビットLinux(ただしバイナリ配布はUbuntu用)、macOSWindows[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

[編集]
LiteRT
開発元 Google
最新版
1.0.1 / 2024年9月4日 (5か月前) (2024-09-04)[25]
リポジトリ LiteRT - GitHub
プログラミング
言語
C++
対応OS
前身 TensorFlow Lite
ライセンス Apache License 2.0
公式サイト ai.google.dev/edge/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 は、AndroidiOS組み込みLinuxRaspberry Piなど)、マイクロコントローラに対応している[29]

GPUはLiteRT本家の実装はOpenGL ESOpenCLMetalを使った汎用的な実装となっている[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]

から揚げ配膳ロボット
から揚げをロボットに画像認識させるためにTensorFlowが使われている。
きゅうり仕分けロボット
キュウリの選別(選果)はパート労働者にすぐ任せられるような仕事ではなく、会得するには数ヶ月かかると言われている。学習用画像としてキュウリの画像7,000枚を使ったがそれでもまだ数が少なくて過学習が発生し、新たなキュウリの画像では正解率が70%程度に落ちる事が課題とされている[44][45]
ドローンで撮影した写真の解析
空撮画像から、TensorFlowを利用して車両台数をカウントするアルゴリズムを構築したとして展示された。

脚注

[編集]
  1. ^ tensorflow/AUTHORS at master · tensorflow/tensorflow”. December 23, 2024閲覧。
  2. ^ "Release 2.18.0"; 閲覧日: 2024年10月27日; 出版日: 2024年10月24日.
  3. ^ a b API Documentation”. January 28, 2025閲覧。
  4. ^ a b Install TensorFlow for C”. January 28, 2025閲覧。
  5. ^ Releases · tensorflow/tfjs”. January 28, 2025閲覧。
  6. ^ Releases · tensorflow/java”. January 28, 2025閲覧。
  7. ^ a b Google Just Open Sourced TensorFlow, Its Artificial Intelligence Engine”. Wired (November 9, 2015). 10 November 2015閲覧。
  8. ^ Google、機械学習ライブラリ「TensorFlow 1.0」正式版を初リリース”. Internet watch (2017年2月16日). 2017年2月16日閲覧。
  9. ^ Announcing TensorFlow 1.0”. Google Research Blog (2017年2月15日). 2017年2月16日閲覧。
  10. ^ Credits”. TensorFlow.org. 10 November 2015閲覧。
  11. ^ a b c "TensorFlow: Open source machine learning" "It is machine learning software being used for various kinds of perceptual and language understanding tasks" — Jeffrey Dean, minute 0:47 / 2:17 from Youtube clip
  12. ^ TensorFlow: Large-scale machine learning on heterogeneous systems”. TensorFlow.org. Google Research (November 9, 2015). 10 November 2015閲覧。
  13. ^ グーグルは、なぜAIエンジンをオープンソース化したのか?”. WIRED.jp (2015年12月5日). 2017年11月27日閲覧。
  14. ^ Installing TensorFlow | TensorFlow
  15. ^ a b Installing TensorFlow on Ubuntu | TensorFlow
  16. ^ An in-depth look at Google’s first Tensor Processing Unit (TPU) | Google Cloud Big Data and Machine Learning Blog  |  Google Cloud Platform
  17. ^ TensorFlow on ROCm — ROCm installation (Linux)”. rocm.docs.amd.com. 18 January 2025閲覧。
  18. ^ TensorFlow* Optimizations from Intel”. Intel. 18 January 2025閲覧。
  19. ^ TensorFlow Neuron — AWS Neuron Documentation”. awsdocs-neuron.readthedocs-hosted.com. 18 January 2025閲覧。
  20. ^ TensorFlow* Optimizations on Modern Intel® Architecture | Intel® Software
  21. ^ Intel Optimized Tensorflow Wheel Now Available | Intel® Software
  22. ^ TensorFlow in Anaconda - Anaconda
  23. ^ 中田敦 (2018年5月23日). “日本企業が生み出した深層学習Chainer、フェイスブックやグーグルが認める”. Nikkei Business Publications. 2018年10月28日閲覧。
  24. ^ Google、オープンソース機械学習ライブラリの最新版「TensorFlow 1.5」を発表”. アイティメディア (2018年1月30日). 2018年10月28日閲覧。
  25. ^ Releases · google-ai-edge/LiteRT”. January 18, 2025閲覧。
  26. ^ グーグル、「TensorFlow Lite」開発者プレビュー発表--モバイルや組み込み端末向け”. ZDNet Japan (2017年11月16日). 2017年11月26日閲覧。
  27. ^ 「機械学習オン・ザ・ゴー」の時代 Googleの「TensorFlow Lite」公開”. クラウド Watch (2017年11月20日). 2017年11月26日閲覧。
  28. ^ TensorFlow Lite is now LiteRT - Google Developers Blog”. January 18, 2025閲覧。
  29. ^ LiteRT overview”. January 18, 2025閲覧。
  30. ^ LiteRT/tflite/delegates/gpu/README.md at main · google-ai-edge/LiteRT”. January 19, 2025閲覧。
  31. ^ ARM-software/armnn: Arm NN ML Software. The code here is a read-only mirror of https://review.mlplatform.org/admin/repos/ml/armnn”. January 19, 2025閲覧。
  32. ^ ARM-software/ComputeLibrary: The Compute Library is a set of computer vision and machine learning functions optimised for both Arm CPUs and GPUs using SIMD technologies.”. January 19, 2025閲覧。
  33. ^ NPU の LiteRT デリゲート”. January 18, 2025閲覧。
  34. ^ NeuroPilot 介绍 | MediaTek Dimensity Developer Center”. January 18, 2025閲覧。
  35. ^ TensorFlow models on the Edge TPU”. January 18, 2025閲覧。
  36. ^ Neural Networks API”. January 18, 2025閲覧。
  37. ^ Android 向けアクセラレーション サービス(ベータ版)”. January 18, 2025閲覧。
  38. ^ LiteRT delegate for NPUs”. February 22, 2025閲覧。
  39. ^ 米Google発のAIオープンソース「TensorFlow」を使ったデータ分析支援を8月に提供開始”. @Press. 2016年8月12日閲覧。
  40. ^ Comma.ai、高速道路自動走行のデータをオープンソースで公開―低価格の自動運転車に道”. TechCrunch Japan. 2016年8月15日閲覧。
  41. ^ マリオカート64の全自動走行をGoogleの機械学習ライブラリ「TensorFlow」でやってみたムービー”. GIGAZINE (2017年1月11日). 2017年11月26日閲覧。
  42. ^ TensorFlow×マリオカートでキノコカップ優勝も可能なリカレントニューラルネットワーク「MariFlow」を開発”. GIGAZINE (2017年11月6日). 2017年11月26日閲覧。
  43. ^ 「TensorFlow」でから揚げ配膳ときゅうりの仕分けを自動化、Googleがアピール”. MONOist (2017年3月28日). 2017年11月26日閲覧。
  44. ^ TensorFlowでキュウリの選別・仕分けを学習する”. Dylan Raithel、笹井 崇司(翻訳) (2016年9月14日). 2017年11月27日閲覧。
  45. ^ キュウリ農家とディープラーニングをつなぐ TensorFlow”. 佐藤一憲 (2016年8月5日). 2017年11月27日閲覧。

関連項目

[編集]

外部リンク

[編集]