二维张量如:
[[0,0,1,0,1,0],
[0,1,0,0,0,1]]
我希望在每行的两个1
之间填充1
,例如:
[[0,0,1,1,1,0],
[0,1,1,1,1,1]]
我应该怎么处理tensorflow?thx。
答案 0 :(得分:0)
一些想法给你。 有两种方法可以使用天真的tf-python操作或使用cpp编写自己的方法:
1
使用tf.cast
将矩阵转换为bool,然后得到一个bool张量,然后找到带有tf.where
的非零元素的索引,现在你得到一个形状为[?,2]的指示符张量,对于这个张量的每一行(使用tf.map
),使用tf.range
来构建indices,其中元素应该用一个填充,最后你得到另一个indictor tensor,使用tf.SparseTensor
构造函数来构建想要的你想要的。
2
为你自己在cpp中编写一个op然后将它加载到tensorflow运行时,这可能是一个更好的解决方案,但需要一点cpp的知识,你可以去官方网站看看如何编写自定义操作,你可以直接操纵底层的Eigen::Tensor
,这样就很容易做你想做的事情
希望可以帮到你