¿Hay una versión dispersa de tf.multiply?

¿Tensorflow tiene una multiplicación sabia de elementos dispersos? Es decir, una versión dispersa de tf.multiply ()

Solo encontré tf.sparse_tensor_dense_matmul (), pero no es una multiplicación inteligente de elementos.

La función que podría estar buscando es: __mul__

Detalles adicionales de la documentación oficial:

Las ubicaciones de salida correspondientes a los elementos implícitamente cero en el tensor disperso serán cero (es decir, no ocuparán espacio de almacenamiento), independientemente del contenido del tensor denso (incluso si es +/- INF y que INF * 0 == Yaya).

Limitación : esta operación solo transmite el lado denso al lado disperso, pero no a la otra dirección.

Ejemplo:

sp_mat = tf.SparseTensor([[0,0],[0,2],[1,2],[2,1]], np.ones(4), [3,3]) const1 = tf.constant([[1,2,3],[4,5,6],[7,8,9]], dtype=tf.float64) const2 = tf.constant(np.array([1,2,3]),dtype=tf.float64) elementwise_result = sp_mat.__mul__(const1) broadcast_result = sp_mat.__mul__(const2) print("Sparse Matrix:\n",tf.sparse_tensor_to_dense(sp_mat).eval()) print("\n\nElementwise:\n",tf.sparse_tensor_to_dense(elementwise_result).eval()) print("\n\nBroadcast:\n",tf.sparse_tensor_to_dense(broadcast_result).eval()) 

Salida:

 Sparse Matrix: [[ 1. 0. 1.] [ 0. 0. 1.] [ 0. 1. 0.]] Elementwise: [[ 1. 0. 3.] [ 0. 0. 6.] [ 0. 8. 0.]] Broadcast: [[ 1. 0. 3.] [ 0. 0. 3.] [ 0. 2. 0.]]