October 2020
Intermediate to advanced
832 pages
13h 42m
Japanese
この付録では、TensorFlowが通常の浮動小数点数や整数のテンソル以外にサポートしているデータ構造(文字列、不調和テンソル、疎テンソル、テンソル配列、集合、キュー)を簡単に紹介する。
テンソルはバイト列を保持できる。この種のテンソルは、自然言語処理(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テンソル)では、文字列の長さはテンソルの形情報の一部になっている。 ... |
Read now
Unlock full access