def test_keras_model(num_classes): bounds = (0, 255) channels = num_classes model = Sequential() model.add( GlobalAveragePooling2D(data_format='channels_last', input_shape=(5, 5, channels))) model = KerasModel(model, bounds=bounds, predicts='logits') test_images = np.random.rand(2, 5, 5, channels).astype(np.float32) test_label = 7 assert model.batch_predictions(test_images).shape \ == (2, num_classes) test_logits = model.predictions(test_images[0]) assert test_logits.shape == (num_classes, ) test_gradient = model.gradient(test_images[0], test_label) assert test_gradient.shape == test_images[0].shape np.testing.assert_almost_equal( model.predictions_and_gradient(test_images[0], test_label)[0], test_logits) np.testing.assert_almost_equal( model.predictions_and_gradient(test_images[0], test_label)[1], test_gradient) assert model.num_classes() == num_classes
def test_keras_model(num_classes): bounds = (0, 255) channels = num_classes model = Sequential() with warnings.catch_warnings(): warnings.filterwarnings("ignore", category=DeprecationWarning) model.add(GlobalAveragePooling2D( data_format='channels_last', input_shape=(5, 5, channels))) model = KerasModel( model, bounds=bounds, predicts='logits') test_images = np.random.rand(2, 5, 5, channels).astype(np.float32) test_label = 7 assert model.batch_predictions(test_images).shape \ == (2, num_classes) test_logits = model.predictions(test_images[0]) assert test_logits.shape == (num_classes,) test_gradient = model.gradient(test_images[0], test_label) assert test_gradient.shape == test_images[0].shape np.testing.assert_almost_equal( model.predictions_and_gradient(test_images[0], test_label)[0], test_logits) np.testing.assert_almost_equal( model.predictions_and_gradient(test_images[0], test_label)[1], test_gradient) assert model.num_classes() == num_classes