第 2 特集 第 2章 ご購入はこちら データの入出力 / 型 / 構造から実行メカニズムまで レッスン 2…TensorFlow プログラミングの基礎知識 渡邉 輝 表 1 TensorFlow のデータ型一覧 [ノード]演算処理 X1 データ型 足す 掛ける X2 [エッジ] データの流れ X3 (X1+X2) ×X3 図 1 TensorFlow の基本概念「グラフ」のイメージ データがエッジ(矢印線)によって流れノードでデータに対しての演算処 理が実行される.エッジは必ず一方通行で両方向になることはない.そ の性質から有向非巡回グラフとも呼ばれる ここでは前章で構築した開発環境を利用して,コー ディングをしながら TensorFlow の基本への理解を深 めていきます. ● 準備…開発環境の立ち上げ Docker で 開 発 環 境 を 作 成 し た 方 は,Docker Quickstart Terminal を立ち上げ,TensorFlow 開発用 コンテナを起動し(docker start コマンド),コンテナ OS にアクセスしたら Jupyter Notebook を起動してく ださい(jupyter notebook コマンド). マシンに直接インストールした方は,ターミナルま たはコマンド・プロンプトから Jupyter Notebook だ けを起動します.ブラウザから Jupyter Notebook へ アクセスし,サンプル・コーディング用の新規ファイ ルを作成したら準備完了です. ● 各ノードをエッジでつないだものがグラフ TensorFlow は「グラフ」という概念に基づいて算術 演 算 を 実 装 す る よ う 設 計 さ れ て い ま す. 従 っ て TensorFlow を利用する場合には, 「グラフ」とは何か, それをどのように実装,実行するのかを理解しなけれ ばなりません. グラフを構成する要素はノードとエッジです (図 1).ノードは丸や四角で表現され,特定の演算処 理を実装します.エッジはノードをつなぐ矢印線で データの流れを表現します.1 つのノードの観点から 64 Python の型 説 明 32 ビット浮動小数点 DT_FLOAT DT_DOUBLE DT_INT8 DT_INT16 DT_INT32 DT_INT64 DT_UINT8 DT_UINT16 tf.float32 tf.float64 tf.int8 tf.int16 tf.int32 tf.int64 tf.uint8 tf.uint16 DT_STRING tf.string DT_BOOL tf.bool 真偽値 DT_COMPLEX64 tf.complex64 32 ビット浮動小数点を 2 つ使う複 素 数( それ ぞれ実数部分と虚数部 分を表現する) 64 ビット浮動小数点 8 ビット符号あり整数 16 ビット符号あり整数 32 ビット符号あり整数 64 ビット符号あり整数 8 ビット符号なし整数 16 ビット符号なし整数 変 数 長のバイト配 列 ( テンソルの各 要 素が バイト配列) DT_COMPLEX128 tf.complex128 64 ビット浮動小数点を 2 つ使う複 素 数( それ ぞれ実数部分と虚数部 分を表現する) DT_QINT8 tf.qint8 量子化された処理に使 われる 8 ビット符号あ り整数 DT_QINT32 tf.qint32 量子化された処理に使 われる 32 ビッ ト符 号 あり整数 DT_QUINT8 tf.quint8 量子化された処理に使 われる 8 ビット符号な し整数 見ると,自分自身に向けられたエッジは入力を意味 し,外向きのエッジは演算後の出力を意味します.つ まり,グラフとは一連の演算処理です.データがエッ ジによって流れを制御され,ノードに実装された演算 処理によって次々と姿を変えていくことになります. TensorFlow はグラフを構築するための部品を提供し ます. ● グラフ内に流せるデータはテンソルという構 造をとる グラフ内に流すことのできるデータはテンソルとい 2017 年 3 月号
© Copyright 2024 ExpyDoc