def get_output_for(self, input, **kwargs):
distances = conv_pairwise_distance(input, self.V)
similarities = T.exp(-distances / T.abs_(self.gamma))
norm = T.sum(similarities, 1).reshape((similarities.shape[0], 1, similarities.shape[2], similarities.shape[3]))
membership = similarities / (norm + self.eps)
histogram = T.mean(membership, axis=(2, 3))
if self.spatial_level == 1:
pivot1, pivot2 = membership.shape[2] / 2, membership.shape[3] / 2
h1 = T.mean(membership[:, :, :pivot1, :pivot2], axis=(2, 3))
h2 = T.mean(membership[:, :, :pivot1, pivot2:], axis=(2, 3))
h3 = T.mean(membership[:, :, pivot1:, :pivot2], axis=(2, 3))
h4 = T.mean(membership[:, :, pivot1:, pivot2:], axis=(2, 3))
# Pyramid is not used in the paper
# histogram = T.horizontal_stack(h1, h2, h3, h4)
histogram = T.horizontal_stack(histogram, h1, h2, h3, h4)
return histogram
评论列表
文章目录