all:
	pip install -r requirements.txt
	make -s experiments
	make -s reports
	
experiments:
	make -s experiment_1
	make -s experiment_1_bounds
	make -s experiment_2
	make -s experiment_3

reports: 
	make -s experiment_1_report
	make -s experiment_1_bounds_report
	make -s experiment_2_report
	make -s experiment_3_report
	
experiment_1:
	python experiment_1.py --dataset MNIST-3_5
	python experiment_1.py --dataset MNIST-4_9

experiment_1_report:
	python report.py --model CNN2D --dataset MNIST-3_5 --image_size 28 --format table > plots/table_CNN2D_MNIST-3_5_28.txt
	python report.py --model CNN2D --dataset MNIST-4_9 --image_size 28 --format table > plots/table_CNN2D_MNIST-4_9_28.txt

experiment_1_bounds:
	python experiment_1.py --dataset MNIST-3_5
	python experiment_1.py --dataset MNIST-4_9

experiment_1_bounds_report:
	python report.py --model CNN2D --dataset MNIST-3_5 --image_size 28 --bound Y --format table > plots/table_CNN2D_MNIST-3_5_28_BOUNDS.txt
	python report.py --model CNN2D --dataset MNIST-4_9 --image_size 28 --bound Y --format table > plots/table_CNN2D_MNIST-4_9_28_BOUNDS.txt

experiment_2:
	python experiment_2.py --dataset MNIST --model CNN2D --image_size 28
	python experiment_2.py --dataset FASHION_MNIST --model CNN2D --image_size 28
	python experiment_2.py --dataset MNIST --model LeNet5 --image_size 32
	python experiment_2.py --dataset FASHION_MNIST --model LeNet5 --image_size 32

experiment_2_report:
	python report.py --model CNN2D --dataset MNIST --image_size 28 --format table > plots/table_CNN2D_MNIST_28.txt
	python report.py --model CNN2D --dataset FASHION_MNIST --image_size 28 --format table > plots/table_CNN2D_FASHION_MNIST_28.txt
	python report.py --model LeNet5 --dataset MNIST --image_size 32 --format plot
	python report.py --model LeNet5 --dataset FASHION_MNIST --image_size 32 --format plot
	python report.py --model deepNN --dataset MNIST --image_size 28 --format plot
	python report.py --model deepNN --dataset FASHION_MNIST --image_size 28 --format plot

experiment_3:
	python experiment_3.py --model CIFAR-VGG --dataset CIFAR10 --image_size 32
	python experiment_3.py --model CIFAR-VGG --dataset CIFAR100 --image_size 32
	python experiment_3.py --model AlexNet --dataset CIFAR10 --image_size 128
	python experiment_3.py --model AlexNet --dataset CIFAR100 --image_size 128

experiment_3_report:
	python report.py --model CIFAR-VGG --dataset CIFAR10 --image_size 32 --format plot
	python report.py --model CIFAR-VGG --dataset CIFAR100 --image_size 32 --format plot
	python report.py --model AlexNet --dataset CIFAR10 --image_size 128 --format plot
	python report.py --model AlexNet --dataset CIFAR100 --image_size 128 --format plot

