An implementation of Deep Arguing, leveraging modern PyTorch-based neural architectures to integrate with case-based reasoning (CBR) and abstract argumentation.
- Argumentation-based Neural Pipelines: End-to-end framework applying gradual semantics inside deep learning.
- Configurable Hyperparameters: Highly flexible YAML-based configuration for easy sweeping across datasets.
- Built-in Support: Plug-and-play models for standard benchmarks (MNIST, Adult, CIFAR-10, etc.).
To use DeepArguing, we recommend setting up a virtual environment (Python 3.12+). Then, install the project in editable mode to install all required dependencies (including torch, networkx, and scikit-learn).
# Clone the repository
# Install in editable mode
pip install -e .A quick overview of the essential directories in this repository:
Deep-Arguing/
├── data/ # Raw and processed datasets (MNIST, Adult, CIFAR-10, etc.)
├── experiments/ # Jupyter notebooks demonstrating model runs across benchmarks
├── src/
│ ├── deeparguing/ # Core library (gradual semantics, aacbr, criterion, base_scores)
│ └── scripts/ # Utility scripts (pre-training, tuning, generation)
├── tests/ # Pytest suite for automated testing and verification
├── tuning/ # YAML configurations for datasets, models, and hyperparameters
└── visualizer/ # Web-based visualization UI for computing graphs/arguments
DeepArguing includes an intuitive CLI that accepts your pipeline's YAML configs to easily assemble, train, and test models.
Here is an example command to run a full training and testing pipeline on the MNIST dataset:
python src/deeparguing/cli/run.py \
--config "tuning/mnist/data_mnist.yaml" "tuning/mnist/hyperparameters_mnist.yaml" "tuning/mnist/model_mnist.yaml" \
--seed "0" \
--log "info" \
--run_train -lv \
--run_test--config: Paths to data, hyperparameter, and model YAML configs.--seed: Ensures reproducibility across runs.--log: Sets logging verbosity (e.g.,info,debug).--run_train: Executes the training loop.-lv/--log_validation: Enables validation logging during training.--run_test: Evaluates the model on the test dataset after training.
Detailed experimental pipelines, benchmarks, and results can be found in the experiments/ directory.
Each dataset (e.g., MNIST, Adult, Glioma, Covertype) has an associated Jupyter Notebook outlining setup, pipeline construction, and standard results across various baseline classifiers (DT, KNN, NN) vs. the Argumentative reasoning baseline.
For reproducing results in the paper, please refer to the respective configuration files in the tuning/ directory alongside the corresponding notebook in experiments/.
Distributed under the MIT License. See setup.py for full details.