How to start a new deep learning project

I recently started writing some unit tests for deep learning projects using pytest. I’ve organized my code in a folder, say ‘src’ and unit-tests are in ‘tests’. Both these directories are at the same level so I need to do relative imports like from …src.foo import xyz

I read somewhere that relative imports is a bad practice and we should prefer absolute paths instead. So I’ve two options now

  1. Create a symlink of ‘src’ in a test directory
  2. Use editable install of pip

I want some opinions on this thing and what are some best practices to follow?
Usually, there’s one opinion saying don’t worry much about the best practices while doing research and focus on your experiments.
But I believe such code gets worse as the codebase grows.
I’m also looking for some getting started guides for “GitHub actions for ML”

as a researcher use our seed repo, which has all of these best practices built-in

This repository is a really good start, but it was last updated on 14 May 2020. Small changes over the seed would be to use the newly introduced Data Modules for data specific tasks and Loggers instead of simple dictionaries for logging purposes.

sure, we’ll check the seed and prepare some updates, anyway sending PR with proposal is welcome :rabbit:

What we are going to add:

  • native Python package structure
  • running CI testing in GH Actions
  • building docs in Sphinx
1 Like

This repository follows all the good practices, with minimalist code.

1 Like

Interesting, I never knew lightning had its own conference seed.

This is not self-advertising. I use a different template to create DL projects/packages which I use a lot.

I can port these features to lightning seed if needed.

Here is the template I use. It has CI, docs native python package structure, tests.

The only problem is some the CI actions are hard coded. And so is the PyPi setup.

You can check the conference seed it has CI, tests were there in the initial versions but it was explicitly removed.