Как я могу отбросить явные 0 из tf.SparseTensor? - PullRequest
0 голосов
/ 06 мая 2018

В каждую эпоху моего модельного обучения, tf.SparseTensor меняет свои значения, чтобы иметь более явные нули. Удаление таких явных нулей сделало бы количество явных ребер малым, и, следовательно, все вычисления были бы быстрее.

Итак, мне нужен способ отбросить явные нули из tf.SparseTensor, чтобы сделать его более "тонким". Кто-нибудь знает способ сделать это?

1 Ответ

0 голосов
/ 07 мая 2018

Вы можете решить эту проблему, используя tf.sparse_retain() op:

st = ...  # A `tf.SparseTensor` object.

# Compute a vector of booleans indicating which values of `st` should be dropped
# (if False) or retained (if True)
is_nonzero = tf.not_equal(st.values, 0)

# `tf.sparse_retain()` computes a new `tf.SparseTensor` with the specified values
# retained in the output.
st_without_zeros = tf.sparse_retain(st, is_nonzero)
...