Значения маски по величине в тензоре - TensorFlow 2.0 - PullRequest
0 голосов
/ 01 марта 2020

Я использую Python 3.7 и TensorFlow 2.0, и у меня есть тензор формы (5, 3). Теперь в этом тензоре я хочу отсортировать веса в каждом слое по их абсолютным значениям и замаскировать на ноль веса наименьшей величины, скажем, для 20% значений.

Итак, 20% тензора, имеющего форму: (5, 3) = 3. Поэтому я хочу замаскировать эти 3 наименьших значения магнитуды в тензоре в ноль.

Код, который у меня есть, на самом деле не работает, так как я сначала пытаюсь преобразовать тензор в numpy массив и затем удалить 20% наименьшего веса. Тем не менее, это удаляет наименьшие значения и не принимает абсолютное значение чисел, что я и хочу.

Код:

x = tf.random.uniform(minval=-10, maxval=10, shape=(5, 3), dtype=tf.float32)

# Convert from tensor to numpy array-
x_tf = x.numpy()

# remove smallest 20% of numbers-
x_tf[x_tf < np.percentile(x_tf, 20)] = 0

Есть ли способ маскировать Наименьшие значения магнитуд в тензоре 'x'?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...