寻找两个张量的交点

问题描述

我用过骰子系数是通过语义分割神经网络中的2xintersection / union计算的。 y_true和y_pred的交集由tf.math.reduce_sum(y_pred * y_true)找到。请有人帮我弄清楚,两个张量的乘积如何等于交点?

解决方法

这是乘法的特殊情况,变成交集。

考虑

    typedef struct coordinate{
    float x[MAX_REC];
    float y[MAX_REC];
    char name[MAX_REC][IDENTIFIER+1];
    }coor;

    typedef struct perimeter_area{
    float perimeter[MAX_REC];
    float area[MAX_REC];
    char  name_s[IDENTIFIER];
    }pa;


    int main(){

.
.
.
insertion_sort(&f2,number_new_row);
.
.
.
}
void insertion_sort(pa *f2,int row){
    float tmp_area;
    float tmp_perimeter;
    char  tmp_name[IDENTIFIER];
    int j;

    for(int i=0; i<row; ++i){
        tmp_area=f2->area[i];
        strcpy(tmp_name,f2->name_s[i]);
        j=i-1;
        while(j>=0 && tmp_area<f2->area[j+1]){
            f2->area[j+1]=f2->area[j];
            j--;
        }
        f2->area[j+1]=tmp_area;
        strcpy(f2->name_s[i],f2->name_s[j]);
        strcpy(f2->name_s[j],tmp_name);
    }

}

y_true = [
[0,1,0],[1,1]
]

然后y_pred = [ [0,1],1] ] 将是

y_true * y_pred

下一个res = [ [0,1] 给出tf.reduce_sum()中所有数字的总和(即交集)。换句话说,resres的位置均设为1时,元素将设置为1。

y_true