Exemplo n.º 1
0
  def testModelRaisesErrorForBadClass(self):
    with self.assertRaisesRegex(TypeError,
                                'must be a class.*given.*not_a_class'):
      _ = utils.get_uci_model(model_class='not_a_class')

    with self.assertRaisesRegex(
        TypeError, 'must be a subclass of.*keras.Model.*given.*str'):
      _ = utils.get_uci_model(model_class=type('bad_class'))

    with self.assertRaisesRegex(
        TypeError, 'must support the Functional API.*cannot be a subclass '
        'of.*Sequential.*given.*Sequential'):
      _ = utils.get_uci_model(model_class=tf.keras.Sequential)
Exemplo n.º 2
0
 def testModelStructure(self):
     model = utils.get_uci_model()
     self.assertIsInstance(model, tf.keras.Model)
     expected_inputs = utils._UCI_COLUMN_NAMES.copy()
     expected_inputs.remove('income')
     expected_inputs.remove('race')
     expected_inputs.remove('fnlwgt')
     self.assertSetEqual(set([layer.name for layer in model.inputs]),
                         set(expected_inputs))
     self.assertIsInstance(model.layers[-1], tf.keras.layers.Dense)
Exemplo n.º 3
0
    def testModelRunsOnUCIData(self):
        model = utils.get_uci_model()
        model.compile(optimizer='adam', loss='binary_crossentropy')
        data = utils.get_uci_data()
        print('DATA:', data)
        dataset = utils.df_to_dataset(data, batch_size=64)

        # Model can train on UCI data
        model.fit(dataset, epochs=1)

        # Model can evaluate on UCI data
        model.evaluate(dataset)
Exemplo n.º 4
0
    def testModelStructureWithCustomClass(self):
        class CustomClass(tf.keras.Model):
            pass  # No additional implementation needed for this test.

        model = utils.get_uci_model(model_class=CustomClass)
        self.assertIsInstance(model, CustomClass)
        expected_inputs = utils._UCI_COLUMN_NAMES.copy()
        expected_inputs.remove('income')
        expected_inputs.remove('race')
        expected_inputs.remove('fnlwgt')
        self.assertSetEqual(set([layer.name for layer in model.inputs]),
                            set(expected_inputs))
        self.assertIsInstance(model.layers[-1], tf.keras.layers.Dense)