def test(model, xs, ts, uss=None):
model.reset_state()
tags = model([Variable(
np.array([x], dtype=np.int32)
) for x in xs])
zss = []
y_mat = np.zeros((2, 2))
zs_mat = tuple(
np.zeros((clf.n_output, clf.n_output))
for clf in model.tagger.classifiers
)
for t, (y, zs) in zip(ts, tags):
y_mat[t, int(cf.sigmoid(y).data[0, 0] > 0.5)] += 1.0
if t:
zss.append(zs)
if uss:
assert len(uss) == len(zss)
for us, zs in zip(uss, zss):
for m, u, z in zip(zs_mat, us, zs):
m[u, cf.softmax(z).data.argmax(1)[0]] += 1
return y_mat, zs_mat
评论列表
文章目录