Tags give the ability to mark specific points in history as being important
  • v1.1.1 protected
  • v1.1.0 protected
    Release v1.1.0

    Lightnet V1.1.0

    This release brings a few new models to the table!

    • Darknet53 & YoloV3 (+ matching MultiScaleRegionLoss and GetMultiScaleBoundingBoxes classes)
    • Yolt
    • D-Yolo
    • Renamed Yolo -> YoloV2
    • Renamed TinyYolo -> TinyYoloV2


    • 8b5bfa4c - Updated pypi badge to point to correct project (0phoff 77 minutes ago)
    • 40bc73b8 - Fixed gitlab CI - 3 (0phoff 83 minutes ago)
    • 98d0338c - Fixed gitlab CI - 2 (0phoff 2 hours ago)
    • 681bff9d - Fixed gitlab CI (0phoff 2 hours ago)
    • b54f771a - Updated docs (0phoff 2 hours ago)
    • e7dec293 - New version 1.1.0 (0phoff 2 hours ago)
    • 208d30fa - Added pypi upload to CI (0phoff 2 hours ago)
    • f354ee56 - Use pytorch 1.4 to run tests on gitlab CI (0phoff 4 hours ago)
    • 08056885 - Fix deprecation warning with _ in comments (0phoff 4 hours ago)
    • daa25b8a - Added Yolt & D-Yolo to documentation (0phoff 4 hours ago)
    • 8d6c7676 - Updated documentation notes (0phoff 4 hours ago)
    • 6f862e52 - Set correct device when returning empty tensor from GetBoundingBoxes (0phoff 8 days ago)
    • 51b53166 - Added necessary documentation for YoloV3 (0phoff 2 months ago)
    • 0da7040c - Added darknet53 -> yolov3 weight remapping rules (0phoff 2 months ago)
    • 018ca076 - Added MultiScaleRegionLoss loss function (0phoff 2 months ago)
    • 6438254b - Added GetMultiScaleBoundingBoxes postprocessing (0phoff 4 months ago)
    • 58e29e91 - Added YoloV3 and Darknet53 networks (0phoff 4 months ago)
    • c58b4a47 - Added Residual and SelectiveSequential layer modules (0phoff 4 months ago)
    • 3a3e168c - cleared up installation instructions in README.md (0phoff 2 months ago)
    • 6856672e - Updated codebase to PyTorch 1.3.0 (0phoff 2 months ago)
    • ddb1d891 - FIX changed optimizer.step() to scheduler.step() in starting function of training (silly mistake i know) (0phoff 4 mon..
    • 0ec4fb4e - Put Pycodestyle config in setup file (0phoff 4 months ago)
    • 149298b7 - Modified deprecation memoization list to a set for performance (0phoff 4 months ago)
    • ebde54fb - Added Deprecation warning to LinePlotter class (0phoff 4 months ago)
    • 6e8510a1 - Start work on next version v1.0.1 (0phoff 4 months ago)
  • v1.0.0 protected
    c95f903a · Changed badge in README ·
    Release v1.0.0

    Lightnet V1.0.0

    Lightnet finally hit a stable release! This means we will do our best not to break stuff in the future (or at least have deprecation warnings first).
    Note that this is a major update and that we broke things compared to the previous version v0.5.0.


    • Lightnet now works with Brambox V2. This is the biggest change! All annotation/detection based processing now uses dataframes, which also resulted in a speed-up of the entire pipeline! Note that brambox is not a dependency anymore! This allows to install lightnet without brambox if you don't need it (eg. Running lightnet models for inference on constraint environments).

    • Detached loss/postprocessing from network. The networks now don't hold loss/postprocessing functionality anymore and it is up to the user to create them in their scripts. This is more inline with other pytorch libraries and provides more freedom to the end user.

    • Renamed reduction attribute to stride in networks.

    • Added vertical random flip data augmentation.

    • Changed NonMaxSupression to correctly spelled NonMaxSuppression.

    • Fixed bugs with empty tensors in post-processing.

    • Replaced list_collate function with brambox_collate.

    • Simplified HyperParameters by using more duck-typing. See the tutorials and examples for more information on how to use this redefined interface.

    • Default weight loading behaviour has strict=True. This is more inline with default pytorch behaviour.

    • remap_* attributes are now stored on target networks as opposed to source networks (eg. remapping from darknet19 to yolov2 is now saved on yolov2 [ln.models.Yolo.remap_darknet19]).

    • Removed YoloMidFusion and YoloLateFusion models in favor for global YoloFusion model.

    • Updated documentation with tutorials.

    • Closed issues #32, #33, #34. See these issues for more information.

  • satcen   Commit marker for satcen project
  • v0.5.0 protected   Version 0.5.0 contains the fusion networks from the paper "Improving Real-Time Pedestrian Detectors with RGB+Depth Fusion"
    Release v0.5.0

    Lightnet V0.5.0

    This release adds the fusion networks, as explained in my paper on fusing RGB+Depth in single-pass detection networks.


    • Added YoloMidFusion and YoloLateFusion models. The early fusion model is implemented as a regular Yolo model that takes 4 channels as input.

    • Reworked the pre- and post-processing. Most of these changes are internal only and do not affect the external API, but I did rename quite a few of the processing classes, so take a look at the documentation for the new names. I also added the preprocessing functions required to train darknet on the ImageNet dataset.

    • The change_input_dim method of the DataLoader class now allows to set an exact dimension, by setting the random_range argument to None. This was already achievable by setting the argument to (1,1), but this implementation makes it cleaner IMO.

    • Renamed the save_weights and load_weights methods of the network classes to save and load. This makes it more inline with the save and load methods of the HyperParameter class.

    • Removed the weights_file argument from the network models. Just use network.load() after creating the network.

    • Closed issues #16, #19, #20. See these issues for more information.

  • v0.4.0 protected   Version 0.4.0 - Working towards a stable API and training engine
    479561f8 · Updated Version number ·
    Release v0.4.0

    Lightnet V0.4.0

    Whilst working towards a stable API and (finally) a version 1.0.0, I decided to already push out this intermediate release v0.4.0.
    Most of the API is already how I want it - or at least how I think I like it - but there are some changes I want to push (most notably updating brambox), before considering this project to be stable enough for a version 1.0.0! 👷
    The biggest changes in this release are towards the training engine and trying to get closer to how networks are trained in darknet. Our latest training of the Yolo V2 network on the Pascal-VOC dataset reached 75.8% mAP, hereby closing the gap with darknet even more with only 1% to go! 🎊

    Take a look at the documentation for more information on the new API.


    • Changed NMS to a class based variant that increases the performance. (and darknet was already doing this...)

    • Updated RegionLoss to work more like the darknet variant.

    • The training engine now uses hooks to perform custom actions at certain intervals in the training pipeline. (start and end of batch/epoch)
      This replaces the old concept of rates.

    • HyperParameters are now stored in a seperate class. This allows for an easier (de)serialization of the training state and thus allows to pause and resume your training pipeline.
      This also means that it is rather easy to put your network/hyperparameters in a separate config file and use the same training routine with different networks and configurations. See examples/yolo-voc for an example on how to use it.
      (Thanks to @Erotemic and his netharn project for this idea)

    • Added a SchedulerCompositor class so you can schedule your schedulers! #Schedulerception
      Take a look at the documentation for a more in depth explanation.

    • Added a concept of weight mapping so you can easily save your weights from one network to another for knowledge transfer.

    • Various bits and bops: I changed some names of lesser known functions, Made ConvBatchLeaky more generic (ConvBatchReLU), etc.

  • v0.3.0 protected   Version 0.3.0 - major refactoring and PyTorch 0.4.0
    Release v0.3.0

    Lightnet V0.3.0

    The library has undergone some major refactoring to become more modular and future proof.
    The API has not changed that much, but everything has moved to new files and subpackages so you will need to refactor your scripts.
    Take a look at the documentation for more information on the new API.


    • Decoupled the network modules, losses and post-processing.
      While everything still works nicely together and can be considered a black box if you use the models provided with the library,
      the different classes can now be used on their own, without needing everything from this package.
      This does mean that the individual classes have more initialisation parameters than before!

    • Anchors are now passed as a 2D-list, to the various classes that need them.

    • Sped up the post-processing pipeline by using more tensor operations and less loops.
      The last bottleneck in the pipeline is the nms part, but I am waiting for torchvision to implement a custom CUDA version for this.
      This can be followed in #2

    • Sped up the regionloss function by using more tensor operations and less loops.
      It is only a small speed-up of ~1.3x, but it also makes the entire function more understandable.

    • PyTorch v0.4.0 support.
      This release supports PyTorch v0.4.0 whilst remaining compatible with v0.3.1.
      The plan is to drop support for v0.3.1 in the next release, so that we can use the new optimisations in v0.4.0 to make everything faster and better!

    • Linting and testing.
      I started to lint my code with pycodestyle. This means I have cleaner and more uniform code overal! The only rule this library does not follow is the maximum line length.
      If you want to lint your code before sending merge requests:

    pip install pycodestyle
    pycodestyle --max-line-length=250 lightnet/

    I also added some doctests, to show how various 'endpoints' in the library work and to guard myself from randomly changing the API. This might need some more work though...

    • More inheritance!
      I split up quite a lot of parts of the library in super- and sub-classes, to allow for more reuse later on.

    • Bug fixes...
      As always, I fixed some bugs and probably introduced some new ones! 🎉

  • v0.2.2 protected   Version 0.2.2 - MobileNetYolo now uses YoloV2 anchors by default - Small fix in yolo-voc example scripts (label.py) - Documentation fixes - Added citation
  • v0.2.1 protected   First public release
  • v0.2.0 protected   Version 0.2.0
    68c96dca · Changed version ·
  • v0.1.0 protected   Version 0.1.0 - training and inference work