Skip to content

Releases: ruflab/shimmer

0.5.1

24 May 09:25
00a7f65
Compare
Choose a tag to compare

Freeze migrate-ckpt version to v0.2.0.

0.5.0

23 May 08:58
8c8d7c1
Compare
Choose a tag to compare

In this new update, we focused on bringing selection mechanisms to the Global Workspace!
It has seen his API polished and unified (some methods were removed because they were not used).

Version API docs:

https://bdvllrs.github.io/shimmer/v0.5.0/

What changed:

  • Replace loss coef buffers by a LossCoef TypedDict.
  • Add
    RepeatedDataset
    to shimmer.
  • Add docs in docs/, API documentation in https://bdvllrs.github.io/shimmer/, and
    some code examples.
  • Replace Black, isort, and flake8 with Ruff (see
    #8).
  • Remove GWInterfaces entirely and favor giving encoders and decoders directly to the
    GWModule. See the updated example examples/main_example/train_gw.py to see what
    changes to make (see #9).
  • Remove GWModuleBase.translate and GWModuleBase.cycle. Translation and cycles
    can now be done with the utils function translation and cycle.
  • Remove GlobalWorkspaceBase.batch_demi_cycles, GlobalWorkspaceBase.batch_cycles,
    and GlobalWorkspaceBase.batch_translations. This can be done with utils
    functions of the same name.
  • Rename GWModuleBase.fusion_mechanism to GWModuleBase.fuse,
    GWModuleBase.encode to GWModuleBase.encode_and_fuse, and
    GWModuleBase.encode_pre_fusion to GWModuleBase.encode. Same for the associated
    methods in GlobalWorkspaceBase.
  • Remove on_before_gw_encode_{loss} callbacks to allow sharing computation between
    loss functions.
  • Remove many _with_uncertainty functions. The GWModuleWithUncertainty now behaves like
    the other GWModules.
  • Rename all "with_uncertainty" methods to "bayesian". Note, BayesianGlobalWorkspaces
    are still a work in progress.
  • Added selection mechanisms (inheriting from SelectionBase, see
    docs
    )
    to fuse representations according to different mechanisms (e.g. Attention).
  • GlobalWorkspace (and associated GWModule, GWLosses, ...) now uses the
    RandomSelection
    mechanism. For the old behavior, use
    GlobalWorkspace2Domains.

Full Changelog: 0.4.0...v0.5.0

0.4.0

08 Feb 14:48
Compare
Choose a tag to compare

This release brings several breaking changes. Some renaming of classes, and removal of config functions.

  • Use ABC for abstract methods.
  • Replace DomainDescription with GWInterface.
  • Add contrastive_fn attribute in DeterministicGWLosses to compute the contrastive loss.
    It can then be customized.
  • Rename every abstract class with ClassNameBase. Rename every "Deterministic" classes
    to remove "Deterministic".
  • Remove all config related functions. This is not the role of this repo.

0.3.2

14 Dec 10:05
Compare
Choose a tag to compare
  • Revert to using classes for GWs (it's easier when loading from checkpoints.)
  • GlobalWorkspace is renamed to GlobalWorkspaceBase and GlobalWorkspace now
    refers to DeterministicGlobalWorkspace.

0.3.1

12 Dec 15:24
Compare
Choose a tag to compare

Fix bugs related to imports and default_decoders.

0.3.0

12 Dec 13:41
Compare
Choose a tag to compare
  • Breaking change: remove DeterministGlobaleWorkspace and VariationalGlobalWorkspace
    in favor of the functions: global_workspace and variational_global_workspace.
  • Allow setting custom GW encoders and decoders.
  • Breaking change: remove self.input_dim, self.encoder_hidden_dim,
    self.encoder_n_layers, self.decoder_hidden_dim, and self.decoder_n_layers
    in GWModules.

0.2.0

12 Dec 13:02
Compare
Choose a tag to compare
  • Add callback on_before_gw_encode and individual compute_losses for each loss type.
  • fix bugs

0.1.2

07 Sep 14:55
Compare
Choose a tag to compare

fix: wrong module used to compute the cycle losses. Don't do cycle with the same domain as target and source.

0.1.1

07 Sep 12:11
Compare
Choose a tag to compare

Fix: missing individual metrics for translation loss.

0.1.0

07 Sep 09:16
Compare
Choose a tag to compare

Initial release.