State-of-the-art image classifiers are typically training on hundreds of thousands of images and require extensive computing power. In this report, we examine methods to improve performance of a CNN without the need for large data sets and specialized hardware. Using 85 images of two species from the Lepus genus, we demonstrate that optimal image classifier architectures are still limited by the quantity of data they are trained with, especially when images have highly complex feature sets.
- Install dependencies.
pip install -r requirements.txt
- Login to your Weights and Biases account using your API key.
wandb login
- Use the bootstrap function to start training your custom model.
import src.bootstrap import bootstrap
class CustomModel(BaseModel):
def __init__(self):
super().__init__()
self.layers = torch.nn.Sequential(
...
)
super().__post_init__()
def forward(self, x)
bootstrap(model=CustomModel())
Take a look at notebooks/example_bootstrap.ipynb
All the initial proposals can be found under resources/proposals.
The final report can be found under docs/report-docs/lepus-classifier.pdf
The final project poster can be found under docs/poster.pdf
Data was retrieved and can be found under resources/data.txt
All interactive notebooks, including experiments done can be found under the notebooks folder.
Our experimental logs can be found at our Weights & Biases project.
All dependencies can be installed using the following snippet:
pip install -r requirements.txt