У меня есть обычная сеть прямой передачи, которая создает вектор v. Затем элементы v используются как ненулевые записи разреженной матрицы M (предположим, что координаты предопределены). Затем разреженная матрица умножается на плотный вектор и на полученном скаляре определяется потеря. Я хочу вернуть распространение w.r.t. веса сети, что влечет за собой переход через разреженную матрицу.Обратные градиенты через разреженный тензор?
Это кажется вполне разумным прецедентом для разреженной матрицы, но, похоже, такая функциональность не поддерживается. В самом деле, даже называя tf.gradients (M, [v]) выдает ошибку:
AttributeError: 'SparseTensor' object has no attribute 'value_index'
я делаю что-то не так или я правильно в предполагая, что эта функция не (пока?) Существуют? Если последнее, то есть ли обход для этого конкретного случая использования, чтобы не переписать все разреженные тензорные операции с определенными градиентами?