def forward_pass(self, inputs, param_vector): new_shape = inputs.shape[:2] for i in [0, 1]: pool_width = self.pool_shape[i] img_width = inputs.shape[i + 2] new_shape += (pool_width, img_width / pool_width) result = inputs.reshape(new_shape) return np.max(np.max(result, axis=2), axis=3)
def logsumexp(x): """Numerically stable log(sum(exp(x))), also defined in scipy.misc""" max_x = np.max(x) return max_x + np.log(np.sum(np.exp(x - max_x)))
def logsumexp(X, axis, keepdims=False): max_X = np.max(X) return max_X + np.log(np.sum(np.exp(X - max_X), axis=axis, keepdims=keepdims))
def logsumexp(X, axis=1): max_X = np.max(X) return max_X + np.log(np.sum(np.exp(X - max_X), axis=axis, keepdims=True))