付録F特殊なデータ型
この付録では、TensorFlowが通常の浮動小数点数や整数のテンソル以外にサポートしているデータ構造(文字列、不調和テンソル、疎テンソル、テンソル配列、集合、キュー)を簡単に紹介する。
F.1 文字列
テンソルはバイト列を保持できる。この種のテンソルは、自然言語処理(16章参照)で特に役に立つ。
>>> tf.constant(b"hello world") <tf.Tensor: id=149, shape=(), dtype=string, numpy=b'hello world'>
Unicode文字列で文字列テンソルを作ろうとした場合、TensorFlowが自動的にUTF-8にエンコードする。
>>> tf.constant("cafe") <tf.Tensor: id=138, shape=(), dtype=string, numpy=b'caf\xc3\xa9'>
Unicode文字列を表現するテンソルを作ることもできる。1個のUnicodeコードポイント†1を表す32ビット整数の配列を作ればよい。
[†1] Unicodeコードポイントがどういうものかよくわからない場合には、https://docs.python.org/ja/3/howto/unicode.htmlを参照のこと。
>>> tf.constant([ord(c) for c in "cafe"]) <tf.Tensor: id=211, shape=(4,), dtype=int32, numpy=array([ 99, 97, 102, 233], dtype=int32)>
tf.string型のテンソルでは、文字列の長さはテンソルの形情報の一部になっていない。つまり、文字列はアトミックな値だと見なされている。しかし、Unicode文字列テンソル(つまりint32テンソル)では、文字列の長さはテンソルの形情報の一部になっている。 ... |
Get scikit-learn、Keras、TensorFlowによる実践機械学習 第2版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.