def depth_to_space(input, scale, data_format=None): ''' Uses phase shift algorithm to convert channels/depth for spatial resolution ''' if data_format is None: data_format = image_data_format() data_format = data_format.lower() input = _preprocess_conv2d_input(input, data_format) out = tf.depth_to_space(input, scale) out = _postprocess_conv2d_output(out, data_format) return out
def call(self, inputs, training=None): inputs = _preprocess_conv2d_input(inputs, self.data_format) outputs = tf.nn.depthwise_conv2d(inputs, self.depthwise_kernel, strides=self._strides, padding=self._padding, rate=self.dilation_rate, data_format=self._data_format) outputs = _postprocess_conv2d_output(outputs, self.data_format) if self.bias: outputs = K.bias_add(outputs, self.bias, data_format=self.data_format) if self.activation is not None: return self.activation(outputs) return outputs