TensorFlow(テンソルフロー)。Googleの機械学習/ディープラーニング/多層ニューラルネットワークライブラリです。データフローグラフを使用したライブラリで、複雑なネットワークを分かりやすく記述できます。

オープンソースのAI・人工知能/TensorFlowとは

TensorFlow(テンソルフロー)。Googleの機械学習/ディープラーニング/多層ニューラルネットワークライブラリです。データフローグラフを使用したライブラリで、複雑なネットワークを分かりやすく記述できます。

TensorFlow(テンソルフロー)とは、Googleのディープラーニングライブラリです。データフローグラフを使用したライブラリで、複雑なネットワークを分かりやすく記述できます。

目次

「TensorFlow」基本情報
  ・概要
  ・主な特徴
  ・同様製品(概要情報)
  ・導入事例
  ・ライセンス情報
  ・ダウンロード

ざっくりわかる「TensorFlow」
1.TensorFlowで画像認識
  ・TensorFlowのチュートリアル「Image Recognition」
  ・TensorFlow画像認識 実例集
2.TensorFlowのインストール(Linux/Mac/Windows/Google Cloud Platform)
  ・Linux編
  ・Mac編
  ・Windows編(1) Windows7/8向け
  ・Windows編(2) Windows10向け
  ・Google Cloud Platform編
3.TensorFlowでのPythonプログラミング
  ・TensorFlowで「Hello World」
  ・TensorFlow「四則演算」 カンタンなPythonプログラム
  ・TensorFlow「数学関数まとめ」(1) 基礎関数
  ・TensorFlow「数学関数まとめ」(2) 応用関数
  ・TensorFlowコード解説「MNISTチュートリアル」
  ・TensorFlowコード解説 3サンプル
  ・機械学習のための「Python」+「Ruby on Rails」連携
4.TensorFlowのスマートフォンアプリ(Android/iOS)をビルドする方法
  ・【Android】TensorFlow画像認識アプリ(1) PC(仮想マシン)環境ビルド
  ・【Android】TensorFlow画像認識アプリ(2) クラウド(AWS)環境ビルド
  ・【Android】TensorFlow画像認識アプリ 動作する仕組み
  ・【iOS】リアルタイムカメラ入力に対する画像認識アプリ
  ・【iOS】サッカー選手画像認識アプリ
  ・【iOS】「真田丸」出演者画像認識アプリ

「TensorFlow」基本情報

概要

「ディープラーニング」とは

機械学習とは、人間が学習するのと同じように機械が学習することを目指した人工知能研究の1分野です。ディープラーニングは機械学習の中の1つです。

ディープラーニングとは、ニューロン(神経細胞)が信号の受け渡しをすることにより情報処理をしているという脳の仕組みを、ニューラルネットワークとしてコンピュータ内に実現し、それを多層化したものです。

ニューラルネットワークは、入力層と出力層の間にある中間層(情報識別層)が多いほど、より正確な認識ができるようになります。

ディープラーニングは、音声認識、自然言語処理(翻訳)、Google検索エンジン(画像検索/ウェブ検索最適化)、Googleフォト(顔認識/被写体認識)、Gmail(メール分別)、Inbox(メール自動返信文作成)、YouTube、広告事業など、Googleのほとんどのサービスを支えるコア技術となっています。

[参考情報:「機械学習」と「ディープラーニング」の違い]

→OSS×Cloud News →ざっくりわかる「機械学習」---第2回 「機械学習」「ディープラーニング」の違い

基本説明

「TensorFlow」の読み方は、日本では「テンソルフロー」が多く、英語圏では「テンソーフロー」が多いようです。

「Tensor(テンソル)」とは、線形の量を表す概念で、多次元データ構造を表すものです。「TensorFlow」は、多次元データ構造を流れるように処理し、ディープラーニングを行います。

TensorFlowの特徴として、データフローグラフによる柔軟性、ローレベルオペレータも手書きできる汎用性、高いパフォーマンス、スケーラビリティ、研究レベルから実プロダクトまで扱える効率性などがあります。

利用方法例として、画像に写っているものを認識して文章化するアルゴリズム、各種数値計算、自然言語処理(翻訳)、など多岐におよび、新しい応用分野が広がり続けています。

コア部分はC++で実装されていて、ユーザ向けにPythonのインターフェースが用意されています。

経緯

2011年、Googleは「DistBelief」というディープラーニング基盤を開発し、音声認識/イメージ検索などのサービスの性能向上に大きく貢献しました。しかし、各プロダクトとの結合が強く汎用性が低かったため、公開できませんでした。

そのような問題を解決し、依存性を排除し、汎用性を高め、性能を高めて開発されたのが「TensorFlow」です。「TensorFlow」の性能は、「DistBelief」の2倍とされています。

2015年11月、「TensorFlow」がオープンソース公開されました。

主な特徴

データフローグラフ

TensorFlowの処理は、データフローグラフの「構築」+「実行」の2フェーズで行われます。

データの流れ(フロー)を定義する「グラフ」を基本としてデータの処理を行います。

「Deep Flexibility」(深い柔軟性)

柔軟にニューラルネットワークを構築できます。C++で低レベル処理を書くこともできます。

「True Portability」(真の携帯性)

TensorFlowではCPU用/GPU用でコードを分ける必要はありません。移植性にも優れています。

「Connect Research and Production」(研究と製品の接続)

Googleでは、研究者もエンジニアも同じくTensorFlowを用いているようです。このような使い方をすることで、プロダクト転用が容易になります。

スケーラビリティ

モバイル端末、PC、ハイエンドサーバなど各マシンのリソースに応じてスケールします。

チュートリアル

各種チュートリアル用データセットが用意されていて、すぐに試せます。

MNIST:手書きの数字を判別
CNN:画像認識
Word2Vec:各単語の関係を学習
RNN:文章から次の単語予測
Seq2Seq Model:フランス語を英語に翻訳 など

簡易/柔軟な記述方式

シンプルかつ分かりやすいコーディングで記述できます。自動微分の機能が内蔵されており、計算処理と目的関数を定義するだけで学習できます。

Webインターフェイス「TensorBoard」

Webインターフェイスで、学習状況確認、ニューラルネットワーク可視化ができます。コードだけでは分かりづらいモデルをグラフ化できます。

利用用途

利用方法例として、次のようなものが想定されています。
・顔認識
・音声認識
・被写体認識
・画像検索
・画像を認識して文章化するアルゴリズム
・各種数値計算
・自然言語処理(翻訳)
・リアルタイム翻訳
・Web検索最適化
・メール分別
・メール自動返信文作成
・自動運転車

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

商用製品:IBM「Watson」など。

オープンソース製品:「​Chainer」「Caffe」「Microsoft Cognitive Toolkit」など。

導入事例

Googleが自社のプロダクトにも使用しているディープラーニングライブラリであり、高性能でもあるため、大きな注目を集めています。

ライセンス情報

TensorFlowのライセンスは、「Apache 2.0ライセンス」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

→TensorFlow →Installing TensorFlow

TOPに戻る

ざっくりわかる「TensorFlow」

ディープラーニングライブラリ「TensorFlow」について、さまざまな角度から紹介します。

1.TensorFlowで画像認識

TensorFlowで画像認識を行う方法について、「キュウリ」から「ゆるゆり」まで実例を紹介します。

TensorFlowのチュートリアル「Image Recognition」

概要
TensorFlowに画像認識チュートリアル「Image Recognition」が付属しています。
原文は英語であるため、それを日本語訳した情報です。
TensorFlow画像認識の基本について勉強できます。

解説テーマ
・Python APIでの使用法
・C++ API での使用法
・詳細を学ぶためのリソース

ページリンク
→TensorFlowチュートリアル - 画像認識(翻訳)

TensorFlow画像認識 実例集

プロの方から趣味の方まで、さまざまな方がTensorFlowを使った画像認識を行っています。各種実例を紹介します。

[「キュウリ」編(1)]

概要
静岡県でキュウリ農家を営む小池さんが開発した「TensorFlowキュウリ仕分け機」について紹介しています。
非常に手間がかかるキュウリ仕分け作業を自動化するために、開発に着手し、見事に完成されています。

解説テーマ
・お母さんの「仕分けの技」を AI に
・TensorFlow で初めて試すディープラーニング
・Google クラウドで「イボ」を見分ける AI へ

ページリンク
→Google Cloud Platform Japan Blog『キュウリ農家とディープラーニングをつなぐ TensorFlow』

[「キュウリ」編(2)]

概要
キュウリ仕分け機製作者の方にお話を聞いてきたレポートです。

解説テーマ
・約三行要約
・会場でお聞きしたこと
・個人的感想

ページリンク
→データの境界『噂の「TensorFlowでキュウリの仕分けを行うマシン」がMFT2016に展示されていたので実物を見てきた』

[「トヨタ クラウン」編]

概要
自称旧車マニアの方が「クラウンの画像データを投げたらそれが何代目なのかを判別するマシーン」を開発された記録です。

解説テーマ
・プログラム準備編
・画像準備編
・実行編

ページリンク
→EeePCの軌跡『TensorFlowで歴代「クラウン」の画像を判別させてみた』

[「顔認識」編]

概要
TensorFlowで畳み込みニューラルネットワークを構築し、既存データセットを使って、「顔認識器」を作成する方法についての解説です。

解説テーマ
・TensorFlowのインストール
・データのダウンロード
・画像の読み込み
・畳み込みニューラルネットワークの構築
・モデルの訓練と評価
・実行
・ソースコード
・おわりに

ページリンク
→TensorFlowを使って顔認識器を作る

[「ももクロ」編]

概要
「ももいろクローバーZ」メンバーの顔識別を行うアプリ開発記録です。前編+中編+後編の3部作になっています。

ページリンク
→TensorFlowによるももクロメンバー顔認識

[「ゆるゆり」編]

概要
TVアニメーション「ゆるゆり(1期+2期)」と「ゆるゆり(3期)」について、制作会社が異なるためキャラクターデザインが微妙に異なります。その差異を見分ける「ゆるゆり制作会社判定システム」の開発記録です。

解説テーマ
・TensorFlowとは
・TensorFlowのインストール
・まずはHello, world!
・MNISTサンプルの実行
・独自のデータセットを使う
・ゆるゆりの制作会社判定

ページリンク
→kivantium活動日記『TensorFlowでアニメゆるゆりの制作会社を識別する』

TOPに戻る

2.TensorFlowのインストール(Linux/Mac/Windows/Google Cloud Platform)

各環境にTensorFlowをインストールする方法を紹介します。

Linux編

Linux環境へのTensorFlowインストール例です。インストーラー「Anaconda」を使用しています。

[導入環境]

・Ubuntu 16.04 LTS
・Anaconda
・Python 3.5 (Python3)

[解説テーマ]

・インストール手順
・Jupyter Notebook (旧称: iPython Notebook) を利用できるようにする
・サンプルプログラムを実行して、インストールできていることを確認
・ディアクティベート
・再アクティベート
・インストールが終わった後は

[ページリンク]

→Python でデータサイエンス『Ubuntu Linux に TensorFlow をインストール』

Mac編

Mac環境へのTensorFlowインストール例です。

[導入環境]

・Mac

[解説テーマ]

・Homebrewのインストール
・pyenv-virtualenvのインストール
・Python 3.5.2(最新版)のインストール
・Python 3.5.2のTensorFlow用の環境を作成
・作成したTensorFlow用の環境へ切り替え
・pipのインストール
・TensorFlowのインストール
・PyCharmのインストール
・PyCharmでプロジェクト作成&TensorFlow環境にプロジェクト設定を適用
・TensorFlowのMNISTデモを稼働させる

[ページリンク]

→Qiita『Python未経験エンジニアがMacでTensorFlowの実行環境+快適なコーディング環境を構築するまで』

Windows編(1) Windows7/8向け

Windows環境へのTensorFlowインストール例です。TensorFlowはWindowsをサポートしていないため、「Docker for Windows」を使用して仮想環境内にインストールします。

[導入環境]

・Windows 8.1

[解説テーマ]

・やりたいこと
・必要な動作環境
・Docker for Windowsの準備
・TensorFlowの環境構築
・Windowsとの共有フォルダを設定

[ページリンク]

→Qiita『Windows上でTensorFlowを使用する環境構築』

Windows編(2) Windows10向け

Windows環境へのTensorFlowインストール例です。Win10で使用できるようになった「Bash on Ubuntu on Windows」を使用して、インストールを行います。

[導入環境]

・Windows10(Anniversary Update適用済)

[解説テーマ]

・Bashインストール
・Anacondaインストール
・TensorFlowインストール
・X11関連のインストール

[ページリンク]

→Qiita『Bash on Ubuntu on WindowsでTensorFlowを使うためのメモ』

Google Cloud Platform編

クラウド環境「Google Cloud Platform(GCP)」へのTensorFlowインストール例です。インストーラー「Anaconda」を使用しています。

[導入環境]

・GCP「Container Engine」

[解説テーマ]

1. 申し込む
2. 利用する
3. ログイン
4. Tensorflowをインストールする
5. 実行
6. その他

[ページリンク]

→neuralnetの日記『Google Cloud Plathome上にTensorflowを展開する』

TOPに戻る

3.TensorFlowでのPythonプログラミング

TensorFlowでのPythonプログラミングについて、「Hello World」「四則演算」「コード解説」「Ruby on Railsとの連携」など、ざっくりと紹介します。

TensorFlowで「Hello World」

[概要]

TensorFlowで行うプログラミングの第一歩「Hello World」についての解説です。

[解説テーマ]

・セットアップ & Hello world
・hello world の解説
 →TensorFlowにおける計算処理
 →Hello worldはどのように実行されているか

[ページリンク]

→Developers.IO『TensorFlowで Hello Worldを動かしてみた&その解説』

TensorFlow「四則演算」 カンタンなPythonプログラム

[概要]

カンタンなPythonプログラム
 1: x = 1
 2: y = x + 2
 3: print(y)
を、TensorFlow風に書き直して、詳しく解説しています。

[解説テーマ]

・TensorFlowのインストール(MacOS編)
・カンタンなPythonプログラムの作成
・TensorFlowでカンタンなPythonプログラムを書き直す

[ページリンク]

→Qiita『知識ゼロからTensorFlowを使った機械学習で人工知能を作るー入門編1』

TensorFlow「数学関数まとめ」(1) 基礎関数

[概要]

TensorFlowで主に使う基本的な数学関連関数がまとめられています。
使用例としてサンプルコードも掲載されており、リファレンスとして活用できます。

[解説テーマ]

・Arithmetic Operators(四則演算)
・Basic Math Functions(基礎的な数学関数)
・使用例(サンプルコード)

[ページリンク]

→Qiita『TensorFlow入門 - 四則演算と基礎的な数学関数まとめ』

TensorFlow「数学関数まとめ」(2) 応用関数

[概要]

「行列計算」「複素数計算」「論理積」「セグメント平均計算」などの応用関数がまとめられています。
サンプルコードも併記されています。

[解説テーマ]

1. 四則演算
2. 基本的な数学関数
3. 行列演算関数
4. 複素数関数
5. テンソルの縮約
6. セグメント
7. シーケンスの比較とインデックス

[ページリンク]

→みらいテックラボ『TensorFlow はじめの一歩(3)』

TensorFlowコード解説「MNISTチュートリアル」

[概要]

TensorFlowに付属しているチュートリアル「MNIST」のコードについて解説しています。

[ページリンク]

→Qiita『tensorflowの初心者向けMNISTチュートリアルをやってみた。』

TensorFlowコード解説 3サンプル

[概要]

「行列掛け算」「ゆるゆり制作会社識別」「タイタニック号生存者予測」などのコードが解説されています。
サンプルコードも併記されています。

[解説テーマ]

・TensorFlowを使った開発
・TensorFlowって誰のためのツール? イベントを通じて思ったこと

[ページリンク]

→CodeZine『Google発の深層学習フレームワーク「TensorFlow」が一般エンジニアに与える可能性』

機械学習のための「Python」+「Ruby on Rails」連携

[概要]

「RailsアプリケーションからPythonスクリプトをそのまま実行」する2つの方法を紹介。

[解説テーマ]

・基本的な考え方
・Railsアプリケーションのrakeタスクでpythonのスクリプトを実行する
・Railsで取得したデータを使って、協調フィルタリングのスクリプトを実行してみる

[ページリンク]

→Qiita『Ruby on Railsから、Pythonの機械学習のスクリプトを実行して、人工知能を作る方法』

TOPに戻る

4.TensorFlowのスマートフォンアプリ(Android/iOS)をビルドする方法

TensorFlowアプリをスマートフォン(タブレット)にインストールすると、「手書き文字認識」や「画像認識」などを行えます。それらのアプリをビルドする方法を紹介します。

【Android】TensorFlow画像認識アプリ(1) PC(仮想マシン)環境ビルド

[概要]

Win10PC内の仮想マシン(Ubuntu 14.04)で、TensorFlow画像認識アプリをビルドする手順を紹介しています。

[解説テーマ]

0. ビルド環境
1. ビルド手順
2. 動作例

[ページリンク]

→Google OS実験室『TensorFlowのデモを動かす』

【Android】TensorFlow画像認識アプリ(2) クラウド(AWS)環境ビルド

[概要]

AWS(Ubuntu)環境でのアプリビルド手順を紹介しています。

[解説テーマ]

1.環境
1.1.PC
1.2.ビルド環境
1.3.Android端末
2.ビルドまでの道のり
2.1.AWS(Ubuntu)
2.2.PC→Android
3.アプリを動かしてみる

[ページリンク]

→TensorFlowの日本語まとめ『TensorFlowデモのAndroidアプリビルド』

【Android】TensorFlow画像認識アプリ 動作する仕組み

[概要]

「TensorFlowアプリはどのような仕組みで動作するのか?」について解説されています。

[解説テーマ]

・動かし方
・事前準備
 ・1.Bazelの導入
 ・2.Android NDKの導入
・Build TensorFlow for Android
・仕組み
 ・Androidサイド
 ・C++サイド

[ページリンク]

→Qiita『TensorFlowの画像認識をモバイルで動かす&その仕組み』

【iOS】リアルタイムカメラ入力に対する画像認識アプリ

[概要]

iPhoneのカメラから入力された画像を認識して、「椅子」「扇風機」などの名称を表示するアプリのビルド方法です。

[解説テーマ]

・ビルド手順
・サンプルをビルドする
・cameraサンプル実行例
・パフォーマンス
・ビルド手順の情報ソース
・サンプルのソースコードを読んでみる
・自分のアプリに組み込む
・まとめ

[ページリンク]

→Over&Out その後『TensorFlowをiOSで動かしてみる』

【iOS】サッカー選手画像認識アプリ

[概要]

「本田圭佑」「ネイマール」「オーバメヤン」の3選手について訓練させて、判別するアプリビルド手順です。

[解説テーマ]

・1. データセットの用意
・2. TensorFlowで学習させる
・3. 学習済みのデータ(変数)をTensorSwift用のファイルに書き出す
・4. TensorSwiftを使ってアプリを作る
・変数読み込みとソフトマックス回帰モデルの作成
・顔認識
・画像判定
・テストアプリ

[ページリンク]

→Qiita『TensorFlow & TensorSwiftを使ったiOSアプリの試作』

【iOS】「真田丸」出演者画像認識アプリ

[概要]

NHK大河ドラマ「真田丸」出演者について訓練を行い、画像認識するアプリのビルド手順です。

[解説テーマ]

・題材
・アプリの構成
・環境
・手順
・サーバ側
・携帯アプリ側
・作ったもの
・感想

[ページリンク]

→SHANON ENGINEER'S BLOG『顔認識(TensorFlow)でiOSアプリを作ってみた〜真田丸編〜』

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

TensorFlow最新TOPICS

【OSS】Google、モバイルデバイス向け機械学習ライブラリ「TensorFlow Lite(開発者向けプレビュー版)」を発表---「TensorFlow」の軽量版、iOS/Androidなど様々なプラットフォームに対応(2017年11月20日 11:03)

GoogleのTensorFlowチームは、11月14日、 モバイルデバイス向け機械学習ライブラリ「TensorFlow Lite(開発者向けプレビュー版)」を発表した。 【「TensorFlow Lite」とは】 ・機械学習ライブラリ「TensorFlow」のモバイル/組み込みデバイス向け軽量版 ・モバイルデバイス向けに最適化 ・バイナリサイズを小さくし、デバイス上で機械学習モデル...

イベント情報

無料資料プレゼント

AI技術の方向性と企業の活用シナリオ

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter