TensorFlowの計算グラフはTensor型のノードを作成し、データフローで操作するものです。
特定のNodeを作成するためには、ノードの型を指定することができます。適切な型を選択することで、効率的に処理できたり、最適化が効いて高速になることがあります。
本記事では、TensorFlowで使用されるTensorのdtype
のリストを紹介します。
テンソルのdtypeを確認する方法
作成したテンソルは.dtype
プロパティにアクセスすることでどのデータ型が採用されているかを確認することができます。
例えば、以下のようにconstant
をdtype
なして指定したとしても、テンソルには自動で型が割り当てられていることが分かります。
a
では何も指定していない場合になりますが、.dtype
プロパティにアクセスすることでtf.int32
が使用されていることが分かります。c
では、dtypeを指定することで特定のデータ型になっていることが確認できます。
データ型一覧
TensorFlowのテンソルに指定できる型をまとめます。
int (符号付きの整数)
データ型 | 概要 |
---|---|
tf.int8 | 8ビットの符号付き整数 |
tf.int16 | 16ビットの符号付き整数 |
tf.int32 | 32ビットの符号付き整数 |
tf.int64 | 64ビットの符号付き整数 |
uint (符号なしの整数)
データ型 | 概要 |
---|---|
tf.uint8 | 8ビットの符号なし整数 |
tf.uint16 | 16ビットの符号なし整数 |
tf.uint32 | 2ビットの符号なし整数 |
tf.uint64 | 64ビットの符号なし整数 |
qint (量子化された整数)
データ型 | 概要 |
---|---|
tf.qint8 | 8ビットの量子化済み整数 |
tf.qint16 | 16ビットの量子化済み整数 |
tf.qint32 | 32ビットの量子化済み整数 |
tf.quint16 | 16ビットの量子化済み符号なし整数 |
float (浮動小数点数)
データ型 | 概要 |
---|---|
tf.float16 | 16ビットの浮動小数点数 |
tf.float32 | 32ビットの浮動小数点数 |
tf.float64 | 64ビットの浮動小数点数 |
tf.bfloat16 | 指数部8ビット・仮数部7ビットの浮動小数点数 |
complex (複素数)
データ型 | 概要 |
---|---|
tf.float16 | 16ビットの浮動小数点数 |
tf.float32 | 32ビットの浮動小数点数 |
tf.float64 | 64ビットの浮動小数点数 |
tf.bfloat16 | 指数部8ビット・仮数部7ビットの浮動小数点数 |
bool (真偽値)
データ型 | 概要 |
---|---|
tf.bool | TrueかFalseで表される、真偽値。データ量としては8ビット |
string (文字列)
データ型 | 概要 |
---|---|
tf.string | 文字列を表す型 |
resource (変更されうるリソース)
データ型 | 概要 |
---|---|
tf.resource | ファイルなどのリソースを表す型 |
variant (任意の型)
データ型 | 概要 |
---|---|
tf.variant | 任意の型の値 |
tf.castでデータ型を変換する
tf.cast
を使用すると、以下のように後からデータ型を変更することができます。IPythonではそのまま変数名書いてEnterを押すとtf.Tensor
の情報を見ることができます。