Python &引用;掩码不能是标量“;在keras.max()函数中

Python &引用;掩码不能是标量“;在keras.max()函数中,python,tensorflow,keras,neural-network,conv-neural-network,Python,Tensorflow,Keras,Neural Network,Conv Neural Network,当我在作业中使用Keras.max(box_scores,keep_dims=False)时,我得到了一个错误,它是“掩码不能是标量”。 但是当我使用Keras.max(box_scores,axis=-1,keep_dims=False)时,我得到了结果。但是我不明白。这个函数中axis=-1的作用是什么来纠正这个错误 box_scores = box_confidence * box_class_probs box_classes = K.argmax(box_scores, axis=-1

当我在作业中使用Keras.max(box_scores,keep_dims=False)时,我得到了一个错误,它是“掩码不能是标量”。 但是当我使用Keras.max(box_scores,axis=-1,keep_dims=False)时,我得到了结果。但是我不明白。这个函数中axis=-1的作用是什么来纠正这个错误

box_scores = box_confidence * box_class_probs
box_classes = K.argmax(box_scores, axis=-1) 
box_class_scores = K.max(box_scores,keepdims=False)
filtering_mask = ((box_class_scores)>=threshold)
scores = tf.boolean_mask(box_class_scores,filtering_mask ,name="filtering_scores")
boxes = tf.boolean_mask(boxes,filtering_mask ,name="filtering_boxes")
classes = tf.boolean_mask(box_classes,filtering_mask ,name="filtering_classes")
这里,box_置信度=形状张量(19,19,5,1), 盒子——形状张量(19,19,5,4), box_class_probs——形状张量(19,19,5,80), 和threshold——实际值,如果[highest class probability score

对于
max
函数
参数指定计算最大值的维度列表(或一个维度或所有维度的
None
)。当使用负整数时,它们的解释类似于Python数组的负标记(即
-1
表示最后一个维度,
-2
-second from last,等等)

因此,当您不指定
参数时,将使用默认值
,从而产生标量输出(即张量中所有值的最大值)。当您指定轴=-1时,只有最后一个维度被减少,因此从形状张量
(a,b,c,d)
可以得到形状张量
(a,b,c)

奇怪的是,
keras
文档没有在这里指定它