创建tf.常数给定指标和值

2024-05-15 23:57:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想改进我当前的代码,以提高我的GPU上的执行性能,因此我将替换它不支持的操作,以避免将它们委派给CPU。你知道吗

其中一个操作是从稀疏到密集. 那么,有没有什么方法可以从它的索引和值中创建一个张量(常量),就好像它是一个稀疏张量一样?你知道吗

我使用了一些变通方法,比如使用numpy获取数组,然后使用tensor = tf.constant(numpyarray)创建数组,但我正在寻找一种“仅Tensorflow”的方法。你知道吗


Tags: 方法代码numpygputf数组cpu性能
1条回答
网友
1楼 · 发布于 2024-05-15 23:57:08

^{}目前不支持坐标格式(索引和值)的实例化,因此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

tensor_A = tf.Variable( \
              tf.sparse_to_dense(indices, your_shape, values), \
              trainable=False \
           )

相关问题 更多 >