Skip to content
Snippets Groups Projects
  1. Jun 21, 2018
  2. Jun 19, 2018
    • Guy Jacob's avatar
      Make PNG summary compatible with latest SummaryGraph class changes (#7) · 9e57219e
      Guy Jacob authored
      * Modify 'create_png' to use the correct data structures (dicts instead
        lists, etc.)
      * Handle case where an op was called not from a module. This relates to:
        * ONNX->"User-Friendly" name conversion to account for cases where
        * Detection of existing op with same name
        In both cases use the ONNX op type in addition to the op name
      * Return an "empty" shape instead of None when ONNX couldn't infer
        a parameter's shape
      * Expose option of PNG summary with parameters to user
      9e57219e
  3. Jun 15, 2018
  4. Jun 14, 2018
  5. Jun 13, 2018
  6. Jun 10, 2018
    • Neta Zmora's avatar
      Thinning (#6) · 42650340
      Neta Zmora authored
      * Large update containing new thinning algorithm.
      
      Thinning a model is the process of taking a dense network architecture with a parameter model that
      has structure-sparsity (filters or channels) in the weights tensors of convolution layers, and making changes in the network architecture and parameters, in order to completely remove the structures.
      The new architecture is smaller (condensed), with less channels and filters in some of the convolution layers.  Linear and BatchNormalization layers are also adjusted as required.
      
      To perform thinning, we create a SummaryGraph (‘sgraph’) of our model.  We use the ‘sgraph’ to infer the
      data-dependency between the modules in the PyTorch network.  This entire process is not trivial and will be
      documented in a different place.
      
      Large refactoring of SummaryGraph to support the new thinning requirement for traversing successors and predecessors.
      - Operations (ops) are now stored in a dictionary, so that they can be accessed quickly by name.
      - Refactor Operation construction code
      - Added support for search a node’s predecessors and successors.  You can search for all predecessors/successors by depth, or by type.
      - create_png now supports an option to display the parameter nodes
      
      Updated schedules with new thinning syntax.
      
      * Thinning: support iterative thinning of models
      
      THere's a caveat with this commit: when using this code you will
      need to train with SGD momentum=0.
      The momentum update is dependent on the weights, and because we
      dynamically change the weights shapes, we need to either make the
      apporpriate changes in the Optimizer, or disable the momentum.
      For now, we disable the momentum
      
      * Thinning: move the application of FilterRemover to on_minibatch_begin
      
      * Thinning: fix syntax error
      
      * Word-level language model compression
      
      Added an implementation of Baidu’s RNN pruning scheme:
      Narang, Sharan & Diamos, Gregory & Sengupta, Shubho & Elsen, Erich. (2017).
          Exploring Sparsity in Recurrent Neural Networks.
          (https://arxiv.org/abs/1704.05119)
      
      Added an example of word-level language model compression.
      The language model is based on PyTorch’s example:
      https://github.com/pytorch/examples/tree/master/word_language_model
      
      Added an AGP pruning schedule and RNN pruning schedule to demonstrate
      compression of the language model.
      
      * thinning: remove dead code
      
      * remove resnet18 filter pruning since the scheduler script is incomplete
      
      * thinning: fix indentation error
      
      * thinning: remove dead code
      
      * thinning: updated resnet20-CIFAR filter-removsal reference checkpoints
      
      * thinning: updated resnet20-CIFAR filter-removal reference schedules
      
      These are for use with the new thinning scheudle algorithm
      42650340
  7. Jun 07, 2018
  8. May 29, 2018
    • Neta Zmora's avatar
      Filter removal: support filter removal for VGG · 47732093
      Neta Zmora authored
      This is a temporary implementation that allows filter-removal and
      netowrk thinning for VGG.
      The implementation continues the present design for network thinning,
      which is problematic because parts of the solution are specific to
      each model.
      
      Leveraging some new features in PyTorch 0.4, we are now able to provide a
      more generic solution to thinning, which we will push to 'master' soon.
      This commit bridges the feature gap, for VGG filter-removal, for the
      meantime.
      47732093
    • Neta Zmora's avatar
      Filter removal: support filter removal for VGG · 6f7c5ae4
      Neta Zmora authored
      This is a temporary implementation that allows filter-removal and
      netowrk thinning for VGG.
      The implementation continues the present design for network thinning,
      which is problematic because parts of the solution are specific to
      each model.
      
      Leveraging some new features in PyTorch 0.4, we are now able to provide a
      more generic solution to thinning, which we will push to 'master' soon.
      This commit bridges the feature gap, for VGG filter-removal, for the
      meantime.
      6f7c5ae4
  9. May 22, 2018
  10. May 17, 2018
    • Neta Zmora's avatar
      Fix system tests failure · a7ed8cad
      Neta Zmora authored
      The latest changes to the logger caused the CI tests to fail,
      because test assumes that the logging.conf file is present in the
      same directory as the sample application script.
      The sample application used cwd() instead, and did not find the
      log configuration file.
      a7ed8cad
  11. May 16, 2018
Loading