TensorFlow使用三个dense tensor来表达一个sparse tensor:indices、values、dense_shape。

假如我们有一个dense tensor:

[[1, 0, 0, 0]
[0, 0, 2, 0]
[0, 0, 0, 0]]

那么用SparseTensor表达这个数据对应的三个dense tensor如下:

indices:[[0, 0], [1, 2]]values:[1, 2]dense_shape:[3, 4]

可以通过以下两种方法,将sparse tensor转化为dense tensor:

tf.sparse_to_dense(sparse_indices, output_shape, sparse_values, default_value=0, validate_indices=True, name=None)tf.sparse_tensor_to_dense(sp_input, default_value=0, validate_indices=True, name=None)

SparseTensor(indices, values, dense_shape)

indices: 一个2D的 int64 Tensor,shape为(N, ndims),指定了sparse tensor中的索引, 例如: indices=[[1,3], [2,4]]说明,dense tensor中对应索引为[1,3], [2,4]位置的元素的值不为0.
values: 一个1D tensor,shape为(N)用来指定索引处的值. For example, given indices=[[1,3], [2,4]], the parameter values=[18, 3.6] specifies that element [1,3] of the sparse tensor has a value of 18, and element [2,4] of the tensor has a value of 3.6.
dense_shape: 一个1D的int64 tensor,形状为ndims,指定dense tensor的形状.

相对应的有一个tf.sparse_placeholder,如果给这个sparse_placeholder喂数据呢?

sp = tf.sparse_placeholder(tf.int32)

with tf.Session() as sess:
#就这么喂就可以了
feed_dict = {sp:(indices, values, dense_shape)}

tensorflow中目前没有API提供denseTensor->SparseTensor转换

tf.sparse_tensor_to_dense(sp_input, default_value=0, validate_indices=True, name=None)

把一个SparseTensor转化为DenseTensor.

sp_input: 一个SparceTensor.
default_value:没有指定索引的对应的默认值.默认为0.
validate_indices: 布尔值.如果为True的话,将会检查sp_input的indices的lexicographic order和是否有重复.
name: 返回tensor的名字前缀.可选.

Reference:

https://segmentfault.com/a/1190000008793389

SparseTensor相关推荐

  1. tf.sparse.SparseTensor

    为什么用tf.sparse.SparseTensor的原因 节约内存 在表达一个稀疏矩阵时候,不用一个很大的矩阵 tf.sparse.SparseTensor(indices, values, den ...

  2. python打印tensor_如何在TensorFlow中打印SparseTensor内容?

    你看到这个错误是因为SparseTensor不是一个真正的张量,它是一个包含3个密集张量的元张量.在 尝试在SparsetSensor上使用print(),您将看到内部详细信息:indices=Ten ...

  3. 3D MinkowskiEngine稀疏模式重建

    3D MinkowskiEngine稀疏模式重建 本文看一个简单的演示示例,该示例训练一个3D卷积神经网络,该网络用一个热点向量one-hot vector重构3D稀疏模式.这类似于Octree生成网 ...

  4. MinkowskiEngine多GPU训练

    MinkowskiEngine多GPU训练 目前,MinkowskiEngine通过数据并行化支持Multi-GPU训练.在数据并行化中,有一组微型批处理,这些微型批处理将被送到到网络的一组副本中. ...

  5. MinkowskiEngine语义分割

    MinkowskiEngine语义分割 要运行示例,请安装Open3D与PIP安装open3d-python. cd /path/to/MinkowskiEngine python -m exampl ...

  6. MinkowskiEngine demo ModelNet40分类

    MinkowskiEngine demo ModelNet40分类 本文将看一个简单的演示示例,该示例训练用于分类的3D卷积神经网络.输入是稀疏张量,卷积也定义在稀疏张量上.该网络是以下体系结构的扩展 ...

  7. MinkowskiEngine实用函数和类

    MinkowskiEngine实用函数和类 sparse_quantize MinkowskiEngine.utils.sparse_quantize(coords, feats=None, labe ...

  8. Minkowski坐标管理

    Minkowski坐标管理 坐标键 classMinkowskiEngine.CoordsKey(D) init(D) 初始化self. See help(type(self))有关准确的签名. ge ...

  9. Minkowski修剪

    Minkowski修剪 Minkowski修剪 Class MinkowskiEngine.MinkowskiPruning 从MinkowskiEngine.SparseTensor中删除指定的坐标 ...

最新文章

  1. AR凭什么成为元宇宙和现实间的技术纽带?听听业内怎么说|量子位· 对撞派...
  2. oracle SQL性能优化
  3. 今晚直播 | 清华大学​高天宇:对比学习及其在NLP中的应用
  4. mybatis传set参数
  5. GCC10.1.0最新版编译
  6. 列举计算机网络用途,计算机网络及网页制作(简答题)
  7. mysql /*! 50100 ... */ 条件编译
  8. pd怎么转成mysql_powerdesigner中实现PDM到MYSQl数据库的转换《转》
  9. 微信H5(WAP)支付,遇到的那些坑
  10. HSRP协议 实现单 双机热备份(计算机网络课设)
  11. boost电路输出电流公式_开关电源BOOST拓扑计算公式和参考分析
  12. PHP僵尸网络,byob--建立自己的僵尸网络
  13. C. Not Adjacent Matrix
  14. python协程多线程HTMLParser下载mp3
  15. [Android系统原理及开发要点详解
  16. OA系统是把无所不能的“万能钥匙”?
  17. 计算机视觉项目实战-图像特征检测harris、sift、特征匹配
  18. DataGrip数据库配置导出步骤
  19. 曾经爱过你试听,歌曲曾经爱过你mp3下载,歌词 - 郑源
  20. NLP系列(3)_用朴素贝叶斯进行文本分类(下)

热门文章

  1. css布局:左边固定宽度,右边自适应宽度或右侧固定,左侧自适应三种方法
  2. Golang-go mod download 出现 dial tcp 34.64.4.17:443: i/o timeout
  3. Pandas实战教程 | 两列相减
  4. java调用cmd执行maven命令
  5. 马来西亚的吉梦达乳胶床垫以纯天然的姿势震憾入驻中国
  6. 【实战经验】--Xilinx--IPcore--MCB(DDR3)运用
  7. [嵌入式] 重温Mini2440(一)移植U-Boot
  8. 我的世界服务器物品栏变白色咋办,我的世界:喜欢这些乳白色方块的玩家,多有这样的爱好,你可有?...
  9. Arcgis加载在线地图(内涵各种在线地图)
  10. PS、PCL、GDI