diff --git a/tensorlayer/layers/normalization.py b/tensorlayer/layers/normalization.py index dd7cc2189..7df44c2e4 100644 --- a/tensorlayer/layers/normalization.py +++ b/tensorlayer/layers/normalization.py @@ -92,7 +92,7 @@ def _bias_scale(x, b, data_format): if data_format == 'NHWC': return x * b elif data_format == 'NCHW': - return x * _to_channel_first_bias(b) + return x * b else: raise ValueError('invalid data_format: %s' % data_format) @@ -102,7 +102,7 @@ def _bias_add(x, b, data_format): if data_format == 'NHWC': return tf.add(x, b) elif data_format == 'NCHW': - return tf.add(x, _to_channel_first_bias(b)) + return tf.add(x, b) else: raise ValueError('invalid data_format: %s' % data_format) @@ -291,9 +291,9 @@ def forward(self, inputs): if self.axes is None: self.axes = [i for i in range(len(inputs.shape)) if i != self.channel_axis] + mean, var = tf.nn.moments(inputs, self.axes, keepdims=False) if self.is_train: # update moving_mean and moving_var - mean, var = tf.nn.moments(inputs, self.axes, keepdims=False) self.moving_mean = moving_averages.assign_moving_average( self.moving_mean, mean, self.decay, zero_debias=False ) diff --git a/tensorlayer/layers/pooling.py b/tensorlayer/layers/pooling.py index efcfb2763..d9deedecd 100644 --- a/tensorlayer/layers/pooling.py +++ b/tensorlayer/layers/pooling.py @@ -324,17 +324,19 @@ def __repr__(self): return s.format(classname=self.__class__.__name__, **self.__dict__) def build(self, inputs_shape=None): - self._strides = [1, self.strides[0], self.strides[1], 1] if self.data_format == 'channels_last': + self._strides = [1, self.strides[0], self.strides[1], 1] self.data_format = 'NHWC' elif self.data_format == 'channels_first': self.data_format = 'NCHW' + self._strides = [1, 1, self.strides[0], self.strides[1]] else: raise Exception("unsupported data format") def forward(self, inputs): outputs = tf.nn.max_pool( - input=inputs, ksize=self.filter_size, strides=self._strides, padding=self.padding, name=self.name + input=inputs, ksize=self.filter_size, strides=self._strides, padding=self.padding, name=self.name, + data_format=self.data_format ) return outputs @@ -397,17 +399,19 @@ def __repr__(self): return s.format(classname=self.__class__.__name__, **self.__dict__) def build(self, inputs_shape=None): - self._strides = [1, self.strides[0], self.strides[1], 1] if self.data_format == 'channels_last': self.data_format = 'NHWC' + self._strides = [1, self.strides[0], self.strides[1], 1] elif self.data_format == 'channels_first': self.data_format = 'NCHW' + self._strides = [1, 1, self.strides[0], self.strides[1]] else: raise Exception("unsupported data format") def forward(self, inputs): outputs = tf.nn.avg_pool( - input=inputs, ksize=self.filter_size, strides=self._strides, padding=self.padding, name=self.name + input=inputs, ksize=self.filter_size, strides=self._strides, padding=self.padding, name=self.name, + data_format=self.data_format ) return outputs @@ -473,11 +477,12 @@ def __repr__(self): return s.format(classname=self.__class__.__name__, **self.__dict__) def build(self, inputs_shape=None): - self._strides = [1, self.strides[0], self.strides[1], self.strides[2], 1] if self.data_format == 'channels_last': self.data_format = 'NDHWC' + self._strides = [1, self.strides[0], self.strides[1], self.strides[2], 1] elif self.data_format == 'channels_first': self.data_format = 'NCDHW' + self._strides = [1, 1, self.strides[0], self.strides[1], self.strides[2]] else: raise Exception("unsupported data format") @@ -554,11 +559,12 @@ def __repr__(self): return s.format(classname=self.__class__.__name__, **self.__dict__) def build(self, inputs_shape=None): - self._strides = [1, self.strides[0], self.strides[1], self.strides[2], 1] if self.data_format == 'channels_last': self.data_format = 'NDHWC' + self._strides = [1, self.strides[0], self.strides[1], self.strides[2], 1] elif self.data_format == 'channels_first': self.data_format = 'NCDHW' + self._strides = [1, 1, self.strides[0], self.strides[1], self.strides[2]] else: raise Exception("unsupported data format") diff --git a/tensorlayer/models/vgg.py b/tensorlayer/models/vgg.py index 11cab6753..c57572e24 100644 --- a/tensorlayer/models/vgg.py +++ b/tensorlayer/models/vgg.py @@ -105,7 +105,7 @@ def forward(self, inputs): inputs = inputs * 255 - np.array([123.68, 116.779, 103.939], dtype=np.float32).reshape([1, 1, 1, 3]) - out = self.layers(inputs) + out = self.layers.forward(inputs) return out