Code Duplication    Length = 16-18 lines in 2 locations

experiments/attention_models/baseline_model.py 1 location

@@ 63-80 (lines=18) @@
60
        glimpse_3 = theano.tensor.signal.downsample.max_pool_2d(glimpse_3, (4,4))
61
        return T.concatenate([glimpse_1, glimpse_2, glimpse_3])
62
63
    def _refined_glimpse_sensor(self, x_t, l_p):
64
        """
65
        Parameters:
66
            x_t - 28x28 image
67
            l_p - 2x1 focus vector
68
        Returns:
69
            7*14 matrix
70
        """
71
        # Turn l_p to the left-top point of rectangle
72
        l_p = l_p * 14 + 14 - 4
73
        l_p = T.cast(T.round(l_p), "int32")
74
75
        l_p = l_p * (l_p >= 0)
76
        l_p = l_p * (l_p < 21) + (l_p >= 21) * 20
77
        glimpse_1 = x_t[l_p[0]: l_p[0] + 7][:, l_p[1]: l_p[1] + 7]
78
        # glimpse_2 = theano.tensor.signal.downsample.max_pool_2d(x_t, (4,4))
79
        # return T.concatenate([glimpse_1, glimpse_2])
80
        return glimpse_1
81
82
    def _multi_gaussian_pdf(self, vec, mean):
83
        norm2d_var = ((1.0 / T.sqrt((2*np.pi)**2 * self.cov_det_var)) *

experiments/attention_models/first_glimpse_model.py 1 location

@@ 55-70 (lines=16) @@
52
            first_l = sampled_l_t
53
        return first_l, wf_grad
54
55
    def _refined_glimpse_sensor(self, x_t, l_p):
56
        """
57
        Parameters:
58
            x_t - 28x28 image
59
            l_p - 2x1 focus vector
60
        Returns:
61
            7*14 matrix
62
        """
63
        # Turn l_p to the left-top point of rectangle
64
        l_p = l_p * 6.67 + 14 - 4
65
        l_p = T.cast(T.round(l_p), "int32")
66
67
        l_p = l_p * (l_p >= 0)
68
        l_p = l_p * (l_p < 21) + (l_p >= 21) * 20
69
        glimpse_1 = x_t[l_p[0]: l_p[0] + 7][:, l_p[1]: l_p[1] + 7]
70
        return glimpse_1
71
72
    def _multi_gaussian_pdf(self, vec, mean):
73
        norm2d_var = ((1.0 / T.sqrt((2*np.pi)**2 * self.cov_det_var)) *