Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.clip_by_value

Wersja TensorFlow 1 Wyświetl źródło na GitHub

Przycina wartości tensora do określonej wartości min i max.

Używany w notebookach

Używany w samouczkach

Biorąc pod uwagę tensor t , ta operacja zwraca tensor tego samego typu i kształtu co t z jego wartościami przyciętymi do clip_value_min i clip_value_max . Wszelkie wartości mniejsze niż clip_value_min są ustawiane na clip_value_min . Wszelkie wartości większe niż clip_value_max są ustawiane na clip_value_max .

Na przykład:

Podstawowe użycie przekazuje wartość skalarną jako wartość minimalną i maksymalną.

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)

Wartości min i max mogą mieć ten sam rozmiar co t lub mogą być nadawane do tego rozmiaru.

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)

Rozgłaszanie celowo kończy się niepowodzeniem, jeśli zwiększysz wymiary 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]

TypeError jeśli spróbujesz tf.cast int do wartości typu float ( tf.cast wejście do float ).

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 lub IndexedSlices .
clip_value_min Minimalna wartość do przycięcia. Tensor skalarny lub taki, który można nadać do kształtu t .
clip_value_max Minimalna wartość do przycięcia. Tensor skalarny lub taki, który można nadać do kształtu t .
name Nazwa operacji (opcjonalnie).

IndexedSlices Tensor lub IndexedSlices .

tf.errors.InvalidArgumentError : Jeśli tensory klipów wyzwolą rozgłaszanie tablicowe, co spowoduje, że zwrócony tensor będzie większy niż wartość wejściowa.
TypeError Jeśli int32 wejścia to int32 a clip_value_min parametru clip_value_min lub clip_value_max to float32