def testSeparableConv1DPaddingSame(self):
   length = 9
   data = random_ops.random_uniform((5, length, 32), seed=1)
   layer = conv_layers.SeparableConv1D(
       64, length, padding='same')
   output = layer.apply(data)
   self.assertEqual(output.get_shape().as_list(), [5, length, 64])
 def testSeparableConv1DNoBias(self):
   length = 9
   data = random_ops.random_uniform((5, length, 4))
   layer = conv_layers.SeparableConv1D(
       32, 3, activation=nn_ops.relu, use_bias=False)
   output = layer.apply(data)
   self.assertEqual(output.op.name, 'separable_conv1d/Relu')
   self.assertEqual(layer.bias, None)
 def testCreateSeparableConv1DWithStridesChannelsFirst(self):
   data_format = 'channels_first'
   length = 10
   data = random_ops.random_uniform((5, 3, length), seed=1)
   layer = conv_layers.SeparableConv1D(
       32, 3, strides=2, padding='same', data_format=data_format)
   output = layer.apply(data)
   self.assertEqual(output.get_shape().as_list(), [5, 32, length // 2])
 def testSeparableConv1DBiasRegularizer(self):
   length = 9
   data = random_ops.random_uniform((5, length, 4))
   reg = lambda x: 0.1 * math_ops.reduce_sum(x)
   layer = conv_layers.SeparableConv1D(32, 3, bias_regularizer=reg)
   layer.apply(data)
   loss_keys = ops.get_collection(ops.GraphKeys.REGULARIZATION_LOSSES)
   self.assertEqual(len(loss_keys), 1)
   self.assertEqual(layer.losses, loss_keys)
 def testCreateSeparableConv1DChannelsFirst(self):
   length = 9
   data = random_ops.random_uniform((5, 4, length))
   layer = conv_layers.SeparableConv1D(32, 3, data_format='channels_first')
   output = layer.apply(data)
   self.assertEqual(output.get_shape().as_list(), [5, 32, length - 2])
   self.assertEqual(layer.depthwise_kernel.get_shape().as_list(), [3, 4, 1])
   self.assertEqual(layer.pointwise_kernel.get_shape().as_list(), [1, 4, 32])
   self.assertEqual(layer.bias.get_shape().as_list(), [32])
 def testCreateSeparableConv1DDepthMultiplier(self):
   length = 9
   data = random_ops.random_uniform((5, length, 4))
   layer = conv_layers.SeparableConv1D(32, 3, depth_multiplier=2)
   output = layer.apply(data)
   self.assertEqual(output.get_shape().as_list(), [5, length - 2, 32])
   self.assertEqual(layer.depthwise_kernel.get_shape().as_list(), [3, 4, 2])
   self.assertEqual(layer.pointwise_kernel.get_shape().as_list(), [1, 8, 32])
   self.assertEqual(layer.bias.get_shape().as_list(), [32])
 def testCreateSeparableConv1D(self):
   length = 9
   data = random_ops.random_uniform((5, length, 4))
   layer = conv_layers.SeparableConv1D(32, 3, activation=nn_ops.relu)
   output = layer.apply(data)
   self.assertEqual(output.op.name, 'separable_conv1d/Relu')
   self.assertEqual(output.get_shape().as_list(), [5, length - 2, 32])
   self.assertEqual(layer.depthwise_kernel.get_shape().as_list(), [3, 4, 1])
   self.assertEqual(layer.pointwise_kernel.get_shape().as_list(), [1, 4, 32])
   self.assertEqual(layer.bias.get_shape().as_list(), [32])
 def testConstraints(self):
   d_constraint = lambda x: x / math_ops.reduce_sum(x)
   p_constraint = lambda x: x / math_ops.reduce_sum(x)
   b_constraint = lambda x: x / math_ops.reduce_max(x)
   layer = conv_layers.SeparableConv1D(2, 3,
                                       depthwise_constraint=d_constraint,
                                       pointwise_constraint=p_constraint,
                                       bias_constraint=b_constraint)
   inputs = random_ops.random_uniform((5, 3, 5), seed=1)
   layer(inputs)
   self.assertEqual(layer.depthwise_constraint, d_constraint)
   self.assertEqual(layer.pointwise_constraint, p_constraint)
   self.assertEqual(layer.bias_constraint, b_constraint)
 def testCreateSeparableConv1DWithStrides(self):
   length = 10
   data = random_ops.random_uniform((5, length, 3), seed=1)
   layer = conv_layers.SeparableConv1D(32, 3, strides=2, padding='same')
   output = layer.apply(data)
   self.assertEqual(output.get_shape().as_list(), [5, length // 2, 32])