def check_forward(self, f_data, f_p_data, l2_reg):
xp = cuda.get_array_module(f_data)
num_examples = len(f_data)
f = chainer.Variable(f_data)
f_p = chainer.Variable(f_p_data)
loss = n_pair_mc_loss(f, f_p, l2_reg)
loss_for_each = []
for i in range(num_examples):
exps = []
for j in set(range(num_examples)) - {i}:
exp_ij = xp.exp(f_data[i].dot(f_p_data[j]) -
f_data[i].dot(f_p_data[i]))
exps.append(exp_ij)
loss_i = xp.log(1.0 + sum(exps))
loss_for_each.append(loss_i)
loss_expected = xp.asarray(loss_for_each, dtype=np.float32).mean()
testing.assert_allclose(loss.data, loss_expected, atol=1e-2)
test_n_pairs_mc_loss.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录