code: def test_config_tabnet(eval_batch_size):
      config = {
          "input_features": [
              category_feature(
                  encoder={"type": "dense", "vocab_size": 2},
                  reduce_input="sum",
              ),
              number_feature(),
          ],
          "output_features": [binary_feature()],
          "combiner": {
              "type": "tabnet",
              "size": 24,
              "output_size": 26,
              "sparsity": 0.000001,
              "bn_virtual_divider": 32,
              "bn_momentum": 0.4,
              "num_steps": 5,
              "relaxation_factor": 1.5,
              "use_keras_batch_norm": False,
              "bn_virtual_bs": 512,
          },
          TRAINER: {
              "batch_size": 16384,
              "eval_batch_size": eval_batch_size,
              "epochs": 1000,
              "early_stop": 20,
              "learning_rate": 0.02,
              "optimizer": {"type": "adam"},
              "learning_rate_scheduler": {
                  "decay": "linear",
                  "decay_steps": 20000,
                  "decay_rate": 0.9,
                  "staircase": True,
              },
              "regularization_lambda": 1,
              "regularization_type": "l2",
          },
      }
      check_schema(config)
  
file_path: ludwig/tests/ludwig/config_validation/test_validate_config_combiner.py
imports: import pytest
  from ludwig.config_validation.validation import check_schema, get_schema
  from ludwig.constants import MODEL_ECD, TRAINER
  from ludwig.error import ConfigValidationError
  from tests.integration_tests.utils import binary_feature, category_feature, number_feature
label_desc: Use image node_id 2 for calling a global function with example usage: test_config_tabnet(eval_batch_size) without return types