このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.clip_by_value

TensorFlow 1バージョン GitHubでソースを表示

テンソル値を指定した最小値と最大値にクリップします。

ノートブックで使用

チュートリアルで使用

テンソルt与えられると、この操作はtと同じタイプと形状のテンソルを返し、その値はclip_value_minclip_value_maxクリップされます。 clip_value_minより小さい値はすべてclip_value_minに設定されclip_value_minclip_value_maxより大きい値はすべてclip_value_maxに設定されclip_value_max

例えば:

基本的な使用法では、最小値と最大値としてスカラーを渡します。

t = tf.constant([[-10., -1., 0.], [0., 2., 10.]])
t2 = tf.clip_by_value(t, clip_value_min=-1, clip_value_max=1)
t2.numpy()
array([[-1., -1.,  0.],
       [ 0.,  1.,  1.]], dtype=float32)

minとmaxはtと同じサイズか、そのサイズにブロードキャスト可能です。

t = tf.constant([[-1, 0., 10.], [-1, 0, 10]])
clip_min = [[2],[1]]
t3 = tf.clip_by_value(t, clip_value_min=clip_min, clip_value_max=100)
t3.numpy()
array([[ 2.,  2., 10.],
       [ 1.,  1., 10.]], dtype=float32)

tの次元を拡張すると、意図的にブロードキャストが失敗します。

t = tf.constant([[-1, 0., 10.], [-1, 0, 10]])
clip_min = [[[2, 1]]] # Has a third axis
t4 = tf.clip_by_value(t, clip_value_min=clip_min, clip_value_max=100)
Traceback (most recent call last):

InvalidArgumentError: Incompatible shapes: [2,3] vs. [1,1,2]

intfloat値にクリップしようとすると、 TypeErrorスローされます(入力を最初にfloat tf.castするtf.cast )。

t = tf.constant([[1, 2], [3, 4]], dtype=tf.int32)
t5 = tf.clip_by_value(t, clip_value_min=-3.1, clip_value_max=3.1)
Traceback (most recent call last):

TypeError: Cannot convert ...

t TensorまたはIndexedSlices
clip_value_min クリップする最小値。スカラーTensorまたはtの形状にブロードキャスト可能なもの。
clip_value_max クリップする最小値。スカラーTensorまたはtの形状にブロードキャスト可能なもの。
name 操作の名前(オプション)。

クリップされたTensorまたはIndexedSlices

tf.errors.InvalidArgumentError :クリップテンソルが配列のブロードキャストをトリガーすると、返されるテンソルが入力よりも大きくなります。
TypeError 入力のdtypeがint32で、 clip_value_minまたはclip_value_maxfloat32