autokeras/blocks/heads.py

Killed 36 out of 68 mutants

Survived

Survived mutation testing. These mutants show holes in your test suite.

Mutant 118

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -45,7 +45,7 @@
                  metrics: Optional[types.MetricsType] = None,
                  dropout: Optional[float] = None,
                  **kwargs):
-        self.num_classes = num_classes
+        self.num_classes = None
         self.multi_label = multi_label
         self.dropout = dropout
         if metrics is None:

Mutant 119

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -46,7 +46,7 @@
                  dropout: Optional[float] = None,
                  **kwargs):
         self.num_classes = num_classes
-        self.multi_label = multi_label
+        self.multi_label = None
         self.dropout = dropout
         if metrics is None:
             metrics = ['accuracy']

Mutant 120

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -47,7 +47,7 @@
                  **kwargs):
         self.num_classes = num_classes
         self.multi_label = multi_label
-        self.dropout = dropout
+        self.dropout = None
         if metrics is None:
             metrics = ['accuracy']
         if loss is None:

Mutant 124

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -50,7 +50,7 @@
         self.dropout = dropout
         if metrics is None:
             metrics = ['accuracy']
-        if loss is None:
+        if loss is not None:
             loss = self.infer_loss()
         super().__init__(loss=loss,
                          metrics=metrics,

Mutant 125

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -51,7 +51,7 @@
         if metrics is None:
             metrics = ['accuracy']
         if loss is None:
-            loss = self.infer_loss()
+            loss = None
         super().__init__(loss=loss,
                          metrics=metrics,
                          **kwargs)

Mutant 127

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -59,7 +59,7 @@
     def infer_loss(self):
         if not self.num_classes:
             return None
-        if self.num_classes == 2 or self.multi_label:
+        if self.num_classes != 2 or self.multi_label:
             return losses.BinaryCrossentropy()
         return losses.CategoricalCrossentropy()
 

Mutant 128

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -59,7 +59,7 @@
     def infer_loss(self):
         if not self.num_classes:
             return None
-        if self.num_classes == 2 or self.multi_label:
+        if self.num_classes == 3 or self.multi_label:
             return losses.BinaryCrossentropy()
         return losses.CategoricalCrossentropy()
 

Mutant 129

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -59,7 +59,7 @@
     def infer_loss(self):
         if not self.num_classes:
             return None
-        if self.num_classes == 2 or self.multi_label:
+        if self.num_classes == 2 and self.multi_label:
             return losses.BinaryCrossentropy()
         return losses.CategoricalCrossentropy()
 

Mutant 131

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -66,7 +66,7 @@
     def get_config(self):
         config = super().get_config()
         config.update({
-            'num_classes': self.num_classes,
+            'XXnum_classesXX': self.num_classes,
             'multi_label': self.multi_label,
             'dropout': self.dropout})
         return config

Mutant 132

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -67,7 +67,7 @@
         config = super().get_config()
         config.update({
             'num_classes': self.num_classes,
-            'multi_label': self.multi_label,
+            'XXmulti_labelXX': self.multi_label,
             'dropout': self.dropout})
         return config
 

Mutant 133

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -68,7 +68,7 @@
         config.update({
             'num_classes': self.num_classes,
             'multi_label': self.multi_label,
-            'dropout': self.dropout})
+            'XXdropoutXX': self.dropout})
         return config
 
     def build(self, hp, inputs=None):

Mutant 139

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -78,7 +78,7 @@
         output_node = input_node
 
         # Reduce the tensor to a vector.
-        if len(output_node.shape) > 2:
+        if len(output_node.shape) >= 2:
             output_node = reduction.SpatialReduction().build(hp, output_node)
 
         if self.dropout is not None:

Mutant 140

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -78,7 +78,7 @@
         output_node = input_node
 
         # Reduce the tensor to a vector.
-        if len(output_node.shape) > 2:
+        if len(output_node.shape) > 3:
             output_node = reduction.SpatialReduction().build(hp, output_node)
 
         if self.dropout is not None:

Mutant 142

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -84,7 +84,7 @@
         if self.dropout is not None:
             dropout = self.dropout
         else:
-            dropout = hp.Choice('dropout', [0.0, 0.25, 0.5], default=0)
+            dropout = hp.Choice('XXdropoutXX', [0.0, 0.25, 0.5], default=0)
 
         if dropout > 0:
             output_node = layers.Dropout(dropout)(output_node)

Mutant 144

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -84,7 +84,7 @@
         if self.dropout is not None:
             dropout = self.dropout
         else:
-            dropout = hp.Choice('dropout', [0.0, 0.25, 0.5], default=0)
+            dropout = hp.Choice('dropout', [0.0, 1.25, 0.5], default=0)
 
         if dropout > 0:
             output_node = layers.Dropout(dropout)(output_node)

Mutant 145

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -84,7 +84,7 @@
         if self.dropout is not None:
             dropout = self.dropout
         else:
-            dropout = hp.Choice('dropout', [0.0, 0.25, 0.5], default=0)
+            dropout = hp.Choice('dropout', [0.0, 0.25, 1.5], default=0)
 
         if dropout > 0:
             output_node = layers.Dropout(dropout)(output_node)

Mutant 148

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -86,7 +86,7 @@
         else:
             dropout = hp.Choice('dropout', [0.0, 0.25, 0.5], default=0)
 
-        if dropout > 0:
+        if dropout >= 0:
             output_node = layers.Dropout(dropout)(output_node)
         output_node = layers.Dense(self.output_shape[-1])(output_node)
         if isinstance(self.loss, tf.keras.losses.BinaryCrossentropy):

Mutant 149

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -86,7 +86,7 @@
         else:
             dropout = hp.Choice('dropout', [0.0, 0.25, 0.5], default=0)
 
-        if dropout > 0:
+        if dropout > 1:
             output_node = layers.Dropout(dropout)(output_node)
         output_node = layers.Dense(self.output_shape[-1])(output_node)
         if isinstance(self.loss, tf.keras.losses.BinaryCrossentropy):

Mutant 156

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -129,7 +129,7 @@
                  metrics: Optional[types.MetricsType] = None,
                  dropout: Optional[float] = None,
                  **kwargs):
-        if metrics is None:
+        if metrics is not None:
             metrics = ['mean_squared_error']
         super().__init__(loss=loss,
                          metrics=metrics,

Mutant 158

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -130,7 +130,7 @@
                  dropout: Optional[float] = None,
                  **kwargs):
         if metrics is None:
-            metrics = ['mean_squared_error']
+            metrics = None
         super().__init__(loss=loss,
                          metrics=metrics,
                          **kwargs)

Mutant 159

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -134,7 +134,7 @@
         super().__init__(loss=loss,
                          metrics=metrics,
                          **kwargs)
-        self.output_dim = output_dim
+        self.output_dim = None
         self.dropout = dropout
 
     def get_config(self):

Mutant 160

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -135,7 +135,7 @@
                          metrics=metrics,
                          **kwargs)
         self.output_dim = output_dim
-        self.dropout = dropout
+        self.dropout = None
 
     def get_config(self):
         config = super().get_config()

Mutant 162

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -140,7 +140,7 @@
     def get_config(self):
         config = super().get_config()
         config.update({
-            'output_dim': self.output_dim,
+            'XXoutput_dimXX': self.output_dim,
             'dropout': self.dropout})
         return config
 

Mutant 163

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -141,7 +141,7 @@
         config = super().get_config()
         config.update({
             'output_dim': self.output_dim,
-            'dropout': self.dropout})
+            'XXdropoutXX': self.dropout})
         return config
 
     def build(self, hp, inputs=None):

Mutant 164

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -145,7 +145,7 @@
         return config
 
     def build(self, hp, inputs=None):
-        if self.output_dim and self.output_shape[-1] != self.output_dim:
+        if self.output_dim and self.output_shape[+1] != self.output_dim:
             raise ValueError(
                 'The data doesn\'t match the output_dim. '
                 'Expecting {} but got {}'.format(self.output_dim,

Mutant 165

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -145,7 +145,7 @@
         return config
 
     def build(self, hp, inputs=None):
-        if self.output_dim and self.output_shape[-1] != self.output_dim:
+        if self.output_dim and self.output_shape[-2] != self.output_dim:
             raise ValueError(
                 'The data doesn\'t match the output_dim. '
                 'Expecting {} but got {}'.format(self.output_dim,

Mutant 166

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -145,7 +145,7 @@
         return config
 
     def build(self, hp, inputs=None):
-        if self.output_dim and self.output_shape[-1] != self.output_dim:
+        if self.output_dim and self.output_shape[-1] == self.output_dim:
             raise ValueError(
                 'The data doesn\'t match the output_dim. '
                 'Expecting {} but got {}'.format(self.output_dim,

Mutant 173

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -155,7 +155,7 @@
         input_node = inputs[0]
         output_node = input_node
 
-        dropout = self.dropout or hp.Choice('dropout',
+        dropout = self.dropout or hp.Choice('XXdropoutXX',
                                             [0.0, 0.25, 0.5],
                                             default=0)
 

Mutant 175

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -156,7 +156,7 @@
         output_node = input_node
 
         dropout = self.dropout or hp.Choice('dropout',
-                                            [0.0, 0.25, 0.5],
+                                            [0.0, 1.25, 0.5],
                                             default=0)
 
         if dropout > 0:

Mutant 176

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -156,7 +156,7 @@
         output_node = input_node
 
         dropout = self.dropout or hp.Choice('dropout',
-                                            [0.0, 0.25, 0.5],
+                                            [0.0, 0.25, 1.5],
                                             default=0)
 
         if dropout > 0:

Mutant 180

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -159,7 +159,7 @@
                                             [0.0, 0.25, 0.5],
                                             default=0)
 
-        if dropout > 0:
+        if dropout >= 0:
             output_node = layers.Dropout(dropout)(output_node)
         output_node = reduction.Flatten().build(hp, output_node)
         output_node = layers.Dense(self.output_shape[-1],

Mutant 181

--- autokeras/blocks/heads.py
+++ autokeras/blocks/heads.py
@@ -159,7 +159,7 @@
                                             [0.0, 0.25, 0.5],
                                             default=0)
 
-        if dropout > 0:
+        if dropout > 1:
             output_node = layers.Dropout(dropout)(output_node)
         output_node = reduction.Flatten().build(hp, output_node)
         output_node = layers.Dense(self.output_shape[-1],