Code Monkey home page Code Monkey logo

netlab's Introduction

NetLab

Quantity breeds quality.

Machine learning engineering is highly experimental and iterative in nature. NetLab is a minimal development framework for rapid prototyping in PyTorch to make sure ideas can be validated quickly.

NetLab provides boiler plate code for training neural networks and lets you focus on the important aspects of machine learning engineering. NetLab also comes with explorative methods and useful utilities.

Usage

Training a network:

from src.modules.model import ConvNet
from src.data.dataloader import get_dataloader
from src.config.config import init_config
from src.train.train import train
from src.utils.tools import set_random_seed


def experiment_imagewoof():

    config = init_config(file_path="config.yml")
    config.dataloader.dataset = "imagewoof"

    set_random_seed(seed=config.random_seed)

    dataloader = get_dataloader(config=config)

    model = ConvNet(config=config)
    model.to(config.trainer.device)

    print(config)
    train(model=model, dataloader=dataloader, config=config)

    print("Experiment finished.")


def main():
    experiment_imagewoof()


if __name__ == "__main__":
    main()

Random Hyperparameter Search:

from src.modules.model import DenseNet
from src.data.dataloader import get_dataloader
from src.config.config import init_config
from src.train.train import train
from src.utils.tools import set_random_seed
from src.utils.random_search import create_random_config_


def experiment_random_search():

    n_runs = 1000
    n_epochs = 10

    config = init_config(file_path="config.yml")

    config.trainer.n_epochs = n_epochs
    config.dataloader.dataset = "cifar10"
    config.tag = "random_search"

    for _ in range(n_runs):

        create_random_config_(config)

        set_random_seed(seed=config.random_seed)

        dataloader = get_dataloader(config=config)

        print(config)
        model = DenseNet(config=config)
        model.to(config.trainer.device)

        train(model=model, dataloader=dataloader, config=config)


def main():
    experiment_random_search()


if __name__ == "__main__":
    main()

Cleaning up

python make_clean.py --folders data/ runs/ weights/

TODO

  • Add callbacks
  • Add confusion matrix

License

MIT

netlab's People

Contributors

kaifishr avatar

Watchers

 avatar  avatar

Forkers

trellixvulnteam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.