def x1, x2, target = sample_pair(label, emb_vec)
label: [1,1,2,3,4…,1] #64
emb_vec: word embedding 或者 hidden feature 等 看是要feature learning还是embedding learning #tensor [64,300]
代码内部参数:
r_idx: [[0,0,…0], [1,1…,1],…[63,63…63]] #[64,64]
c_idx=[[0,1,2…63],…[0,1,2,…63]] #[64,64]
label_r [[0,3,1],[0,3,1],[0,3,1]] 把64个label为一组复制64次 #【1,64,64】
label_c [[0,0,0],[3,3,3],[1,1,1]] 把64个label每个复制64次为一组 #【1,64,64】
target_graph [[0,-1,…,1],…[1,-1,1…,1,0]] 64个label两两判别是否label相同,相同为1,相异为-1,对角即同个元素 为0。这里是label-pair #[64,64]
x1: x1_graph[mask], 为一个batch(64)里的emb逐个复制63次后拼成的结果
x2: x2_graph[mask],为一个batch里逐个出去对角按顺序重复64次后拼成的结果
target: 记录了每一对label是否相同