def __call__(self, sess, epoch, iteration, model, loss):
if iteration == 0 and epoch % self.at_every_epoch == 0:
total = 0
total_old = 0
correct_old = 0
correct = 0
for values in self.batcher:
total_old += len(values[-1])
feed_dict = {}
for i in range(0, len(self.placeholders)):
feed_dict[self.placeholders[i]] = values[i]
truth = np.argmax(values[-1], 1)
# mask truth
truth_noneutral = ma.masked_values(truth, 0)
truth_noneutral_compr = truth_noneutral.compressed()
predicted = sess.run(tf.arg_max(tf.nn.softmax(model), 1),
feed_dict=feed_dict)
pred_nonneutral = ma.array(predicted, mask=truth_noneutral.mask)
pred_nonneutral_compr = pred_nonneutral.compressed()
correct_old += sum(truth == predicted)
correct += sum(truth_noneutral_compr == pred_nonneutral_compr)
total += len(truth_noneutral_compr)
acc = float(correct) / total
self.update_summary(sess, iteration, "AccurayNonNeut", acc)
print("Epoch " + str(epoch) +
"\tAccNonNeut " + str(acc) +
"\tCorrect " + str(correct) + "\tTotal " + str(total))
return acc
return 0.0
评论列表
文章目录