Предположим, что A - разреженный двумерный двоичный тензор (NxN), а B - вектор (1xN). Я хочу масштабировать столбцы A на B: A_{i, j} <- A_{i, j} x B_{j}
Я ищу эффективный способ сделать это. В настоящее время я пробовал два метода, но они слишком медленные:
- Преобразуйте B в диагональную матрицу BD и используйте
tf.sparse_tensor_dense_matmul(A, BD)
. Это вернет плотную матрицу, и в результате метод неэффективен. - Использование map_fn для разреженных тензоров
tf.SparseTensor(A.indices, tf.map_fn(func, (A.values, A.indices[:, 1]), dtype=tf.float32), A.dense_shape)
. Это возвращает разреженный тензор, но кажется, что одна из функцийmap_fn
илиSparseTensor
является узким местом.
Спасибо!