TensorFlow~入門編~

TensorFlow

現在、ディープランニングは様々な企業に使用され影響を与えています。

ディープランニングとは十分なデータ量があれば、人間の力なしに機械が自動的にデータから特徴を抽出してくれるディープニューラルネットワーク(DNN)を用いた学習方法の事をいいます。

ディープランニングにもライブラリがあります。

ライブラリとは、特定の処理を再利用するために切り出されたプログラムの一部であり、様々なことに合わせて処理を行う時に、最初から全部の処理をかかなくても、ライブラリをつかえば簡単に特定の処理を行うことができます。

ディープランニングのライブラリにも様々なものがあり、TensorFlowもディープランニングのライブラリの1つです。

ここでは、TensorFlowの説明をします。

TensorFlowとは?

TensorFlow(テンソルフロー)とは、Googleが開発しオープンソースで公開している、機械学習向けに開発されたエンドツーエンドのオープンソース プラットフォームです

機械学習で最新の実験を行い、また、デベロッパーがML搭載アプリケーションを簡単に開発してデプロイできるよう、各種ツールやライブラリ、コミュニティリソースを備えたものとなっています。

TensorFlowの特徴

Tensor(テンソル)とは線形的な量を表す概念を一般化したもので、多次元の配列として表現出来るものの事です。

また、TensorFlowは多次元のデータ構造の処理が行えるディープランニング(深層学習)のライブラリです。

ですが、TensorFlowを始めるには機械学習やディープランニングの基礎知識が必要となります。

TensorFlowの活用事例

TensorFlowの活用事例を簡単にですが紹介します。

顔の画像から特徴を抽出し、高い精度で識別を行う顔認識、人の声を認識させて話している人を識別する音声認識が利用されています。

また、被写体の認識、画像検索などのあらゆる分野で使用されることが想定されています。

TensorFlowの基礎知識

TensorFlowでは処理が計算グラフで表現されます。

計算、文字列の出力、ファイルの保存なども計算グラフで表現されます。

計算グラフを使用することで、事前に計算処理が最適化され高速演算が行われ、不要な計算が減り、並列計算も可能になっています。

また、TensorFlowは性能が高く、便利なライブラリですがTensorFlowを使用するにはスペックの高いマシンでないと上手く動作しない可能性があります。

CPUだけでも処理はすることが出来ますが、GPU(グラフィックボート、グラフィックカード)を搭載していないと高性能を上手く発揮できないということもあります。

TensorFlowのCPU版とGPU版の違い

TensorFlowは公式ページからインストールすることが可能ですが、CPU版GPU版があります。

CPU版は機械学習における処理速度が遅くなってしまいます。

ですが負荷をかけたくない場合はGPU版ではなくCPU版をインストールするという選択肢がありますので使っているマシンによって選択する必要があります。

TensorFlowに対応している環境

TensorFlowはmacOS、Ubuntu/Linux、Windows環境に対応しています。

CPUは64bitのみ対応しています。

ハードウェアはCPU、NVIDIA GPU、Google TPU、Snapdragon Hexagon DSPなどに対応しており、Android Neural Networks API経由でAndroid 端末のハードウェアアクセラレータも使用することが可能です。

Android、iOS、Raspberry Piといったモバイル機器でも使用することが出来ますが、本格的にTensorFlowを使用する場合はPCを使用した方がいいと言われています。

TensorFlowにて使用出来るプログラミング言語はPython, C、Java, Go言語があります。

上記のプログラミング言語が使用することが出来ますが、JavaやGo言語は安全性を保証しないと公式で発表されています。

TensorFlowサンプルコード

$python
>>> import tensorflow as tf
>>> hello = tf.constant(‘Hello, World”‘)
>>> sess = tf.Session()
>>> print(sess.run(hello))

このコードはHello, Worldと出力します。

Javaで同じように出力するには

public static void main(String[] args){
	System.out.println("Hello, World");
}

このコードとなります

TensorFlowの記述方法は他言語と比べ独特なものとなっています。

まとめ

TensorFlowについて説明しました。

TensorFlowはディープランニングのライブラリの1つです。

ディープランニングはこの先様々なことに影響を与えていくと予想されるため、ディープランニングのライブラリは重要な役割を持っています。