我已经在Matlab中找到了解决方案:
https://uk.mathworks.com/matlabcentral/answers/85143-find-maximum-number-of-consecutive-negative-values
在Numpy中也有类似的解决方案:
Find consecutive ones in numpy array
但是在Tensorflow中没有找到相应的解决方案。最接近的问题是这个:
Reduce sum with condition in tensorflow
然而,它只计算第一组连续的数字,而不是找到最大的一组。基本上,如果有一个Tensorflow等效于Matlab的RCUMSUMC,那么问题就很容易解决了。
https://uk.mathworks.com/matlabcentral/fileexchange/28685-rcumsumc
我的输入是一个形状为NxHxW的二进制张量,期望的输出是NxW,其中每一列代表连续1的最大数量:
Input = [[1,1,0,0,1,0,1,1,1,1,0,0,1],
[1,0,0,1,1,1,1,1,1,0,0,1,0],
[0,0,0,1,1,1,0,0,1,0,1,1,0]]
Output = [4,6,3]