Have you already take a look at:

  

      github.com/tensorflow/tensorflow
  

  
    
  
	  
  

  
    
      Back-propagating gradients through a sparse tensor? 2
    

    
      
        opened 
        
          
        
        Jan 22, 2017
      
      

        
          closed 
        
          
        
        Jun 16, 2017
      
        

      
        
          
          zergylord
        
      
    

    
        stat:awaiting tensorflower
    
  


  
    I have a normal feed-forward network that produces a vector v. The elements of v… are then used as the non-zero entries of a sparse matrix M (assume the coordinates are predefined). The sparse matrix is then multiplied by a dense vector and a loss is defined on the resulting scalar. I want to back-propagate the loss w.r.t. the weights of the network, which entails going through the sparse matrix. 

This seems like a perfectly reasonable use-case for a sparse matrix, but it appears that such functionality is not supported. Indeed, even calling tf.gradients(M,[v]) produces an error:

> AttributeError: 'SparseTensor' object has no attribute 'value_index'

Am I doing something wrong or am I correct in presuming that this functionality doesn't (yet?) exist? If the latter, then is there a work-around for this particular use-case short of rewriting all of the sparse tensor operations with gradients defined?