Tensorflow 是否有一种可微的方法将张量转换为int64?

Tensorflow 是否有一种可微的方法将张量转换为int64?,tensorflow,keras,casting,sparse-matrix,gradient,Tensorflow,Keras,Casting,Sparse Matrix,Gradient,我正在创建一个层,它使用输入张量来创建一个SparseTensor,也就是说,输入张量是SparseTensor各自的索引和值 自: 索引:形状的二维int64张量 因为tf.cast(x,tf.int64)是不可微的,所以我不确定这是否可以实现 另一种选择是基于tf.round(),找到一个转折点,但SparseTensor不接受不同类型的张量作为索引 有没有一种方法可以将张量转换为整数,而不必为梯度设置None 如何使用之前的层输出(即浮点张量)创建SparseTensor?任何类型的舍入函

我正在创建一个层,它使用输入张量来创建一个SparseTensor,也就是说,输入张量是SparseTensor各自的索引和值

自:

索引:形状的二维int64张量

因为
tf.cast(x,tf.int64)
是不可微的,所以我不确定这是否可以实现

另一种选择是基于
tf.round()
,找到一个转折点,但SparseTensor不接受不同类型的张量作为索引

有没有一种方法可以将张量转换为整数,而不必为梯度设置
None


如何使用之前的层输出(即浮点张量)创建SparseTensor?

任何类型的舍入函数几乎在任何地方都有0的导数。@interjay类似的方法可以工作,但是SparseTensor构造类不会接受
float32
张量作为索引,任何类型的舍入函数几乎在任何地方都有0的导数。@interjay类似的东西可以工作,但是SparseTensor构造类不会接受
float32
张量作为索引