Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

kindle

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kindle

Kindle - Making a PyTorch model easier than ever!

  • 0.4.16
  • PyPI
  • Socket score

Maintainers
1

Kindle - Making a PyTorch model easier than ever!

PyPI - Python Version PyTorch Version GitHub Workflow Status PyPI LGTM Alerts

Documentation
API reference

Kindle is an easy model build package for PyTorch. Building a deep learning model became so simple that almost all model can be made by copy and paste from other existing model codes. So why code? when we can simply build a model with yaml markup file.

Kindle builds a model with yaml file which its method is inspired from YOLOv5.

Contents

Installation

Install with pip

PyTorch is required prior to install. Please visit PyTorch installation guide to install.

You can install kindle by pip.

$ pip install kindle

Install kindle for PyTorch under 1.7.1 (not tested)

pip install kindle --no-deps
pip install tqdm ptflops timm tabulate einops

Install from source

Please visit Install from source wiki page

For contributors

Please visit For contributors wiki page

Usage

Build a model

  1. Make model yaml file
input_size: [32, 32]
input_channel: 3

depth_multiple: 1.0
width_multiple: 1.0

backbone:
    [
        [-1, 1, Conv, [6, 5, 1, 0], {activation: LeakyReLU}],
        [-1, 1, MaxPool, [2]],
        [-1, 1, nn.Conv2d, [16, 5, 1, 2], {bias: False}],
        [-1, 1, nn.BatchNorm2d, []],
        [-1, 1, nn.ReLU, []],
        [-1, 1, MaxPool, [2]],
        [-1, 1, Flatten, []],
        [-1, 1, Linear, [120, ReLU]],
        [-1, 1, Linear, [84, ReLU]],
    ]

head:
  [
      [-1, 1, Linear, [10]]
  ]
  1. Build the model with kindle
from kindle import Model

model = Model("model.yaml"), verbose=True)
idx |       from |   n |   params |          module |                           arguments | in_channel | out_channel |        in shape |       out shape |
----------------------------------------------------------------------------------------------------------------------------------------------------------
  0 |         -1 |   1 |      616 |            Conv | [6, 5, 1, 0], activation: LeakyReLU |          3 |           8 |     [3, 32, 32] |     [8, 32, 32] |
  1 |         -1 |   1 |        0 |         MaxPool |                                 [2] |          8 |           8 |       [8 32 32] |     [8, 16, 16] |
  2 |         -1 |   1 |    3,200 |       nn.Conv2d |          [16, 5, 1, 2], bias: False |          8 |          16 |       [8 16 16] |    [16, 16, 16] |
  3 |         -1 |   1 |       32 |  nn.BatchNorm2d |                                  [] |         16 |          16 |      [16 16 16] |    [16, 16, 16] |
  4 |         -1 |   1 |        0 |         nn.ReLU |                                  [] |         16 |          16 |      [16 16 16] |    [16, 16, 16] |
  5 |         -1 |   1 |        0 |         MaxPool |                                 [2] |         16 |          16 |      [16 16 16] |      [16, 8, 8] |
  6 |         -1 |   1 |        0 |         Flatten |                                  [] |         -1 |        1024 |        [16 8 8] |          [1024] |
  7 |         -1 |   1 |  123,000 |          Linear |                       [120, 'ReLU'] |       1024 |         120 |          [1024] |           [120] |
  8 |         -1 |   1 |   10,164 |          Linear |                        [84, 'ReLU'] |        120 |          84 |           [120] |            [84] |
  9 |         -1 |   1 |      850 |          Linear |                                [10] |         84 |          10 |            [84] |            [10] |
Model Summary: 20 layers, 137,862 parameters, 137,862 gradients

AutoML with Kindle

Supported modules

ModuleComponentsArguments
ConvConv -> BatchNorm -> Activation[out_channels, kernel_size, stride, padding, groups, activation]
DWConvDWConv -> BatchNorm -> Activation[out_channels, kernel_size, stride, padding, activation]
FocusReshape x -> Conv -> Concat[out_channels, kernel_size, stride, padding, activation]
BottleneckExpansion ConvBNAct -> ConvBNAct[out_channels, shortcut, groups, expansion, activation]
BottleneckCSPCSP Bottleneck[out_channels, shortcut, groups, expansion, activation]
C3CSP Bottleneck with 3 Conv[out_channels, shortcut, groups, expansion, activation]
MV2BlockMobileNet v2 block[out_channels, stride, expand_ratio, activation]
AvgPoolAverage pooling[kernel_size, stride, padding]
MaxPoolMax pooling[kernel_size, stride, padding]
GlobalAvgPoolGlobal Average Pooling[]
SPPSpatial Pyramid Pooling[out_channels, [kernel_size1, kernel_size2, ...], activation]
SPPFSpatial Pyramid Pooling - Fast[out_channels, kernel_size, activation]
FlattenFlatten[]
ConcatConcatenation[dimension]
LinearLinear[out_channels, activation]
AddAdd[]
UpSampleUpSample[]
IdentityIdentity[]
YamlModuleCustom module from yaml file['yaml/file/path', arg0, arg1, ...]
nn.{module_name}PyTorch torch.nn.* modulePlease refer to https://pytorch.org/docs/stable/nn.html
Pretrainedtimm.create_model[model_name, use_feature_maps, features_only, pretrained]
PreTrainedFeatureMapBypass feature layer map from Pretrained[feature_idx]
YOLOHeadYOLOv5 head module[n_classes, anchors, out_xyxy]
MobileViTBlockMobileVit Block(experimental)[conv_channels, mlp_channels, depth, kernel_size, patch_size, dropout, activation]

Custom module support

Custom module with yaml

Custom module from source code

Pretrained model support

Model profiler

Test Time Augmentation

Recent changes

VersionDescriptionDate
0.4.16Fix decomposed conv fuse and add kindle version variable.2021. 10. 25
0.4.14Add MobileViTBlock module2021. 10. 18
0.4.12Add MV2Block module2021. 10. 14
0.4.11Add SPPF module in yolov5 v6.02021. 10. 13
0.4.10Fix ONNX export padding issue.2021. 10. 13
0.4.6Add YOLOHead to choose coordinates format.2021. 10. 09
0.4.5Add C3 Module2021. 10. 08
0.4.4Fix YOLOHead module issue with anchor scaling2021. 10. 08
0.4.2Add YOLOModel, and ConvBN fusion, and Fix activation apply issue2021. 09. 19
0.4.1Add YOLOHead, SPP, BottleneckCSP, and Focus modules2021. 09. 13
0.3.2Fix PreTrained to work without PreTrainedFeatureMap2021. 06. 03
0.3.1Calculating MACs in profiler2021. 05. 02
0.3.0Add PreTrained support2021. 04. 20

Planned features

  • Custom module support
  • Custom module with yaml support
  • Use pre-trained model
  • Graphical model file generator
  • Ensemble model
  • More modules!

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc