在 TensorFlow 1.12 中,您可以使用tf.math.unsorted_segment_sum计算张量沿线段的最大值。
论据之一:
segment_ids:张量。必须是以下类型之一:int32、int64。一个张量,其形状是 data.shape.END 的前缀 } out_arg { name: "output" description: << END 与 data 具有相同的形状,除了第一个 segment_ids.rank 维度被替换为具有大小 num_segments。
Q1:我不明白这是什么意思。我想segment_ids应该是[0,1,2,3,...],并且序列号以 0 开头。
然后我尝试通过测试不同的值来验证我的假设segment_ids:
print(sess.run(tf.unsorted_segment_max(tf.constant([0.1, 0.2, 0.3, 0.3, 0.4]),
tf.constant([2, 0, 1, 1, 0]), 3)))
#[0.4 0.3 0.1], correct
print(sess.run(tf.unsorted_segment_max(tf.constant([0.1, 0.2, 0.3, 0.3, 0.4]),
tf.constant([3, 0, 1, 1, 0]), 3)))
#[ 4.0000001e-01 3.0000001e-01 -3.4028235e+38], number 2 worked, but 3 didnt
print(sess.run(tf.unsorted_segment_max(tf.constant([0.1, 0.2, 0.3, 0.3, 0.4]),
tf.constant([3, 0, …Run Code Online (Sandbox Code Playgroud)