def compile_time_operation(self, learning_option, cluster): """ define mean-variance normalization(MVN) operation for input tensor. """ # get input input_ = self.get_input('input') indim = self.get_dimension('input') # get attr # optional field normalize_variance = self.get_attr('normalize_variance', default=True) across_channels = self.get_attr('across_channels', default=False) eps = float(self.get_attr('epsilon', default=10**-9)) mvn = L.MVN(input_, name=self.name, normalize_variance=normalize_variance, across_channels=across_channels, epsilon=eps) #set output dimension outdim = indim self.set_output('output', mvn) self.set_dimension('output', outdim)
def test_mvn2(self): n = caffe.NetSpec() n.input1 = L.Input(shape=make_shape([6, 4, 64, 64])) n.bnll1 = L.MVN(n.input1, normalize_variance=False, across_channels=True, eps=0.01) self._test_model(*self._netspec_to_model(n, 'mvn2'))
def test_mvn(self): n = caffe.NetSpec() n.input1 = L.Input(shape=make_shape([6, 4, 64, 64])) n.bnll1 = L.MVN(n.input1, eps=0.01) self._test_model(*self._netspec_to_model(n, 'mvn'))
def MVN(self, bottom, name='mvn'): return L.MVN(bottom, name=name)