教育

あなたもTensorflowを使いこなそう!定数、変数、placeholderの使い方まとめ

あなたもTensorflowを使いこなそう!定数、変数、placeholderの使い方まとめ

今や人工知能(AI)開発に欠かせない存在となったといっても過言ではないTensorflow。Tensorflowを使いこなすうえで必要不可欠なのが定数、変数、そしてplaceholderの使い方です。定数や変数という概念は、一般的なプログラミング言語に共通して存在するものですので、ご存知の方も多いことでしょう。

Tensorflowでは、この定数、変数に加えてplaceholderなるものが存在します。Tensorflowを使いこなすためには、この3つの概念と使い方をしっかりと習得する必要があるのです。

そこで今回では、placeholderとは何なのか、そしてTensorflowにおける定数、変数、placeholderの使い方を詳しく解説していきます。

そもそもTensorflowとは

Tensorflow公式

まずTensorflowは、Googleが提供している、機械学習の様々な分野で使用できるオープンソフトウェアライブラリのことで、2015年11月に公開されました。

オープンソフトウェアライブラリとは、汎用性の高いプログラムをひとまとめにしたもので、ソースコードを変更、配布することのできるもののことです。誰でも無料で使用することができます。

Tensorflowは、公式サイトによると、

 『データフローグラフを使用した数値計算用のオープンソフトウェアライブラリです。グラフのノードは数学的演算を表し、グラフのエッジはそれらの間で伝達される多次元データ配列(テンソル)を表す。 柔軟なアーキテクチャにより、1つのAPIを使用してデスクトップ、サーバー、またはモバイルデバイスの1つ以上のCPUまたはGPUに計算を展開できます。』

と説明されています。機械学習について深く理解していないと、この説明の意味がよくわからないのではないでしょうか。

Tensor(テンソル)とは、線形的な量を表す概念を一般化したものになります。Tensorは多次元配列として表現できます。具体的にはTensorflowは、多次元のデータ構造を、次から次へと流れるように処理することができるもので、言い換えるとディープラーニング(深層学習)を実現できるライブラリ。

Tensorflow

Tensorflowで使える機能一覧

Tensorflowで使える機能一覧

では、Tensorflowを使うといったいどのようなことができるのでしょうか。ここではTensorflowの機能をご紹介しながら、Tensorflowでできることについてお話ししましょう。

TensorBoard

Tensorflowを使用する際には、プログラムの内容について理解したり、デバッグをしたり、どのようなディープニューラルネットワークの構造になっているか、また学習がうまくいっているのかどうかということをすばやく正確に確認する必要があります。
この確認作業を補助する目的として、TensorflowにはTensorBoardという視覚化のためのツールが存在します。このTensorBoardを使用することによって、Tensorflowのグラフを視覚化したり、画像などの追加データを表示することが可能です。

分散処理

TensorflowはiOSやAndroidなど、あらゆる環境でも動作するようにするため、分散学習が行えます。

分散学習とは、データフローグラフを構築した後に、計算すべきものを複数に分散して並列処理を行うこと。この分散処理によってTensorflowは、「ビッグデータ」と呼ばれる大量のデータを扱うことができるのです。

Tensorflowの使い方?定数?

Tensorflowの使い方?定数?

Tensorflowのplaceholderについて学ぶ前に、まずは基本となる定数の使い方についておさらいしておくことにしましょう。

定数は他のあらゆる言語においても存在する概念ですので、プログラミングの知識のある方であれば何となくイメージはできるのではないでしょうか。

Tensorflowでは、定数はtf.constant()で宣言することができます。()の中に入る数値が初期値となります。ただし、ここで注意しておかなければならないのですが、tf.constant()で宣言した定数を、そのままprint()で出力しようとしても、出力されません。tf.constant()では、計算グラフが定義されただけですので、値を表示するためにはtf.Session()でセッションを処理して実行する必要があります。

Tensorflowの使い方?変数?

Tensorflowの使い方?変数?

定数について理解ができたら、もう一つ基本として知っておきたいのが変数の使い方について。変数も、あらゆるプログラム言語において、必須の概念となりますので、ご存知の方も多いのではないでしょうか。

Tensorflowでは、変数はtf.Variable()で宣言します。()内には初期値を指定。さらに、変数に新たに値を代入するにはtf.assign()を使用します。ここではtf(変数,代入する値)といったように指定します。実際にセッション内で変数を使用するためにはtf.initialize_all_variables()を実行して変数の初期化を行う必要があります。

Tensorflowでのplaceholderの使い方

Tensorflowでのplaceholderの使い方

定数、変数の使い方について理解できたところでいよいよ本題です。

Tensorflowでのplaceholderの使い方について学んでいくことにしましょう。Tensorflowにおいてplaceholderとはどんな役割を果たしているのでしょうか。

placeholderは、データが格納される入れ物の役割を果たしているということができます。本来であれば、あらかじめデータが与えられたのちに計算グラフを定義、構築していくのですが、データが未定の場合に、データを未定のまま計算グラフを定義、構築しなければならない場合があります。そのような場合に、placeholderで、とりあえずデータを入れる入れ物だけを用意しておいて、具体的な値は、実行時に与えるようにするのです。
実際には、Tensorflowでplaceholderを定義する際にはtf.placeholder()と記述します。また、Tensorflowでは、tf.placeholder(tf.int32,[3])といったように指定すれば、配列型の入れ物を用意することができます。さらに[]内にNoneを指定することにより、実行時に任意のサイズの配列を与えることも可能です。

Tensorflowを使うときのポイント

Tensorflowを使うときのポイント

Tensorflowを使うための基本となる定数、変数、placeholderの使い方についてご紹介してきました。

そこでここからは、Tensorflowを実際に使うときに必要となるポイントとして、利用環境についてお話ししましょう。

Tensorflowが対応しているOS環境は、MacOS、Ubuntu/Linux、Windowsとさまざまです。いずれのOSにおいても使用できるCPUは64bitのみ。また、Tensorflowで使用できるプログラミング言語はPython、C言語、C++となっています。

いずれの環境を選択した場合でも、本格的にTensorflowを使用したい場合は、GPUの性能が優れたPCを使用することをお勧めします。GPUは本来グラフィックや映像などを処理するものですが、複雑で大量の演算を行うTensorflowの動作もスムーズにしてくれるのです。

 

テクノロジーのイメージ

今回は、Tensorflowを使いこなすための基礎として、Tensorfolowとは何か?から、定数、変数、そしてplaceholderの使い方までをご紹介してきました。

なかでもplaceholderは、Tensorflowならではの概念であり、データを格納するための「入れ物」をあらかじめ用意しておくためのものでした。

Tensorflowを使用することで、画像認識や音声認識、ビッグデータの解析などディープラーニング(深層学習)の処理が可能になります。そして、今後もTensorflowが活躍するジャンル、分野は広がっていくでしょう。ですからPlaceholderの考え方をマスターして、Tensorflowを使いこなしていきたいですよね。

トップへ戻る
タイトルとURLをコピーしました