У меня есть две разреженные матрицы, объявленные с использованием tf.sparse_placeholder
. Мне нужно выполнить поэлементное умножение между двумя матрицами. Но я не могу найти такую реализацию в tensorflow
. Наиболее связанная функция - tf.sparse_tensor_dense_matmul
, но это функция, выполняющая матричное умножение между одной разреженной матрицей и одной плотной матрицей.
Я надеюсь найти выполнение поэлементного умножения двух разреженных матриц. Есть ли реализация этого в tensorflow
?
Я показываю следующий пример выполнения умножения между плотными матрицами. Я с нетерпением жду решения.
import tensorflow as tf
import numpy as np
# Element-wise multiplication, two dense matrices
A = tf.placeholder(tf.float32, shape=(100, 100))
B = tf.placeholder(tf.float32, shape=(100, 100))
C = tf.multiply(A, B)
sess = tf.InteractiveSession()
RandA = np.random.rand(100, 100)
RandB = np.random.rand(100, 100)
print sess.run(C, feed_dict={A: RandA, B: RandB})
# matrix multiplication, A is sparse and B is dense
A = tf.sparse_placeholder(tf.float32)
B = tf.placeholder(tf.float32, shape=(5,5))
C = tf.sparse_tensor_dense_matmul(A, B)
sess = tf.InteractiveSession()
indices = np.array([[3, 2], [1, 2]], dtype=np.int64)
values = np.array([1.0, 2.0], dtype=np.float32)
shape = np.array([5,5], dtype=np.int64)
Sparse_A = tf.SparseTensorValue(indices, values, shape)
RandB = np.ones((5, 5))
print sess.run(C, feed_dict={A: Sparse_A, B: RandB})
Большое тебе спасибо!!!