|
|
|
all: install data train eval
|
|
|
|
|
|
|
|
city_distances.csv: generate_data.py
|
|
|
|
@echo "Generating distance data..."
|
|
|
|
@bash -c 'time python generate_data.py --country US --workers 8 --chunk-size 4200'
|
|
|
|
@echo "Calculating range of generated data..."
|
|
|
|
@cat city_distances.csv | tail -n +2 | sort -t',' -k3n | head -n1
|
|
|
|
@cat city_distances.csv | tail -n +2 | sort -t',' -k3nr | head -n1
|
|
|
|
|
|
|
|
data: city_distances.csv
|
|
|
|
|
|
|
|
train: check train.py
|
|
|
|
@echo "Training embeddings..."
|
|
|
|
@bash -c 'time python train.py'
|
|
|
|
|
|
|
|
eval: check eval.py
|
|
|
|
@echo "Evaluating trained model..."
|
|
|
|
@bash -c 'time python eval.py'
|
|
|
|
|
|
|
|
lint:
|
|
|
|
@echo "Auto-linting files and performing final style checks..."
|
|
|
|
@isort --profile=black .
|
|
|
|
@black .
|
|
|
|
@flake8 --max-line-length=88 --ignore E203 .
|
|
|
|
|
|
|
|
check: lint
|
|
|
|
@echo "Checking for unstaged or untracked changes..."
|
|
|
|
@git diff-index --quiet HEAD -- || { echo "Unstaged or untracked changes detected!"; exit 1; }
|
|
|
|
|
|
|
|
clean:
|
|
|
|
@echo "Removing outputs/ and checkpoints/ directories"
|
|
|
|
@rm -rf output/
|
|
|
|
@rm -rf checkpoints/
|
|
|
|
|
|
|
|
compress: plots/progress_12474_sm.png
|
|
|
|
|
|
|
|
plots/progress_12474_sm.png: plots/progress_12474.png
|
|
|
|
@convert -resize 33% plots/progress_12474.png progress_sample.png
|
|
|
|
|
|
|
|
install: .requirements_installed
|
|
|
|
|
|
|
|
.requirements_installed: requirements.txt
|
|
|
|
pip install -r requirements.txt
|
|
|
|
@echo "installed requirements" > .requirements_installed
|
|
|
|
|
|
|
|
.PHONY: data train eval lint check clean all
|