2024-05-15 23:57:08 发布
网友
我想改进我当前的代码,以提高我的GPU上的执行性能,因此我将替换它不支持的操作,以避免将它们委派给CPU。你知道吗
其中一个操作是从稀疏到密集. 那么,有没有什么方法可以从它的索引和值中创建一个张量(常量),就好像它是一个稀疏张量一样?你知道吗
我使用了一些变通方法,比如使用numpy获取数组,然后使用tensor = tf.constant(numpyarray)创建数组,但我正在寻找一种“仅Tensorflow”的方法。你知道吗
tensor = tf.constant(numpyarray)
^{}目前不支持坐标格式(索引和值)的实例化,因此numpy/scipy解决方案实际上也不错:
import scipy.sparse as sps A = sps.coo_matrix((values, (indices[0,:], indices[1,:])), shape=your_shape) tensor_A = tf.constant(A.to_dense())
如果有一个不可训练的tf.Variable可以作为一个选项(请参见here了解与tf.constant的区别),您可以使用tf.sparse_to_dense
tf.Variable
tf.constant
tf.sparse_to_dense
tensor_A = tf.Variable( \ tf.sparse_to_dense(indices, your_shape, values), \ trainable=False \ )
^{} 目前不支持坐标格式(索引和值)的实例化,因此numpy/scipy解决方案实际上也不错:
如果有一个不可训练的
tf.Variable
可以作为一个选项(请参见here了解与tf.constant
的区别),您可以使用tf.sparse_to_dense
相关问题 更多 >
编程相关推荐