マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】TensorFlow


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「TensorFlow」とは
「TensorFlow」基本情報
■概要
TensorFlow(テンソルフロー)とは、Googleのディープラーニングライブラリです。データフローグラフを使用したライブラリで、複雑なネットワークを分かりやすく記述できます。
■「ディープラーニング」とは
機械学習とは、人間が学習するのと同じように機械が学習することを目指した人工知能研究の1分野です。ディープラーニングは機械学習の中の1つです。
ディープラーニングとは、ニューロン(神経細胞)が信号の受け渡しをすることにより情報処理をしているという脳の仕組みを、ニューラルネットワークとしてコンピュータ内に実現し、それを多層化したものです。
ニューラルネットワークは、入力層と出力層の間にある中間層(情報識別層)が多いほど、より正確な認識ができるようになります。
ディープラーニングは、音声認識、自然言語処理(翻訳)、Google検索エンジン(画像検索/ウェブ検索最適化)、Googleフォト(顔認識/被写体認識)、Gmail(メール分別)、Inbox(メール自動返信文作成)、YouTube、広告事業など、Googleのほとんどのサービスを支えるコア技術となっています。
→OSS×CloudNews →ざっくりわかる「機械学習」—第2回 「機械学習」「ディープラーニング」の違い
■基本説明
「TensorFlow」の読み方は、日本では「テンソルフロー」が多く、英語圏では「テンソーフロー」が多いようです。
「Tensor(テンソル)」とは、線形の量を表す概念で、多次元データ構造を表すものです。「TensorFlow」は、多次元データ構造を流れるように処理し、ディープラーニングを行います。
TensorFlowの特徴として、データフローグラフによる柔軟性、ローレベルオペレータも手書きできる汎用性、高いパフォーマンス、スケーラビリティ、研究レベルから実プロダクトまで扱える効率性などがあります。
利用方法例として、画像に写っているものを認識して文章化するアルゴリズム、各種数値計算、自然言語処理(翻訳)、など多岐におよび、新しい応用分野が広がり続けています。
コア部分はC++で実装されていて、ユーザ向けにPythonのインターフェースが用意されています。
■経緯
2011年、Googleは「DistBelief」というディープラーニング基盤を開発し、音声認識/イメージ検索などのサービスの性能向上に大きく貢献しました。しかし、各プロダクトとの結合が強く汎用性が低かったため、公開できませんでした。
そのような問題を解決し、依存性を排除し、汎用性を高め、性能を高めて開発されたのが「TensorFlow」です。「TensorFlow」の性能は、「DistBelief」の2倍とされています。
2015年11月、「TensorFlow」がオープンソース公開されました。
■ユースケース
利用方法例として、次のようなものが想定されています。
・顔認識
・音声認識
・被写体認識
・画像検索
・画像を認識して文章化するアルゴリズム
・各種数値計算
・自然言語処理(翻訳)
・リアルタイム翻訳
・Web検索最適化
・メール分別
・メール自動返信文作成
・自動運転車 など
主な特徴
■データフローグラフ
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インターフェイスで、学習状況確認、ニューラルネットワーク可視化ができます。コードだけでは分かりづらいモデルをグラフ化できます。
補足情報
■同様製品
同様な機能を提供する製品として、次のようなものがあります。
商用製品:IBM「Watson」など。
オープンソース製品:「Chainer」「Caffe」「Microsoft Cognitive Toolkit」など。
■オフィシャルサイト
オフィシャルサイト
ライセンス情報
TensorFlowのライセンスは「Apache License 2.0」です。
詳細について、こちらを参照ください。
→GitHub →tensorflow →LICENSE
ダウンロード
→TensorFlow →Install TensorFlow
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
TensorFlowのチュートリアル「Image Recognition」
■概要
TensorFlowに画像認識チュートリアル「Image Recognition」が付属しています。
原文は英語であるため、それを日本語訳した情報です。
TensorFlow画像認識の基本について学習できます。
■解説テーマ
・Python APIでの使用法
・C++ API での使用法
・詳細を学ぶためのリソース
■ページリンク
→Qiita →TensorFlowチュートリアル – 画像認識(翻訳)
TensorFlow画像認識活用事例① キュウリ仕分け機(1)
■概要
静岡県でキュウリ農家を営む小池さんが開発した「TensorFlowキュウリ仕分け機」について紹介しています。
非常に手間がかかるキュウリ仕分け作業を自動化するために、開発に着手し、見事に完成されています。
■解説テーマ
・お母さんの「仕分けの技」を AI に
・TensorFlow で初めて試すディープラーニング
・Google クラウドで「イボ」を見分ける AI へ
■ページリンク
→Google Cloud Platform Japan Blog →キュウリ農家とディープラーニングをつなぐ TensorFlow
TensorFlow画像認識活用事例② キュウリ仕分け機(2)
■概要
キュウリ仕分け機製作者の方にお話を聞いてきたレポートです。
■解説テーマ
・約三行要約
・会場でお聞きしたこと
・個人的感想
■ページリンク
→データの境界 →噂の「TensorFlowでキュウリの仕分けを行うマシン」がMFT2016に展示されていたので実物を見てきた
TensorFlow画像認識活用事例③ トヨタクラウン識別
■概要
自称旧車マニアの方が「クラウンの画像データを投げたらそれが何代目なのかを判別するマシーン」を開発された記録です。
■解説テーマ
・プログラム準備編
・画像準備編
・実行編
■ページリンク
→EeePCの軌跡 →TensorFlowで歴代「クラウン」の画像を判別させてみた
TensorFlow画像認識活用事例④ 顔認識
■概要
TensorFlowで畳み込みニューラルネットワークを構築し、既存データセットを使って、「顔認識器」を作成する方法についての解説です。
■解説テーマ
・TensorFlowのインストール
・データのダウンロード
・画像の読み込み
・畳み込みニューラルネットワークの構築
・モデルの訓練と評価
・実行
・ソースコード
・おわりに
■ページリンク
TensorFlow画像認識活用事例⑤ アイドルの顔識別
■概要
「ももいろクローバーZ」メンバーの顔識別を行うアプリ開発記録です。前編+中編+後編の3部作になっています。
■ページリンク
→Qiita →TensorFlowによるももクロメンバー顔認識
TensorFlow画像認識活用事例⑥ アニメキャラクターの顔識別
■概要
TVアニメーション「ゆるゆり(1期+2期)」と「ゆるゆり(3期)」について、制作会社が異なるためキャラクターデザインが微妙に異なります。その差異を見分ける「ゆるゆり制作会社判定システム」の開発記録です。
■解説テーマ
・TensorFlowとは
・TensorFlowのインストール
・まずはHello, world!
・MNISTサンプルの実行
・独自のデータセットを使う
・ゆるゆりの制作会社判定
■ページリンク
→Hatena Blog →kivantium活動日記 →TensorFlowでアニメゆるゆりの制作会社を識別する
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
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インストール例です。
■解説テーマ
・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編
クラウド環境「Google Cloud Platform(GCP)」へのTensorFlowインストール例です。インストーラー「Anaconda」を使用しています。
■導入環境
・GCP「Container Engine」
■解説テーマ
1. 申し込む
2. 利用する
3. ログイン
4. Tensorflowをインストールする
5. 実行
6. その他
■ページリンク
→neuralnetの日記 →Google Cloud Plathome上にTensorflowを展開する
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
TensorFlowでのPythonプログラミング
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」が一般エンジニアに与える可能性
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
TensorFlowのスマートフォンアプリ(Android/iOS)をビルドする方法
【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アプリを作ってみた〜真田丸編〜
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。