Commit Graph

50 Commits

Author SHA1 Message Date
Jensun Ravichandran
757f4e980d Add Local-Matrix LVQ
Also remove the use of `self.distance_fn` in favor of `self.distance_layer`.
2021-06-01 23:44:16 +02:00
Jensun Ravichandran
27eccf44d4 Use LambdaLayer from ProtoTorch 2021-05-31 16:53:04 +02:00
Alexander Engelsberger
2a218c0ede Add example for dynamic components in callbacks 2021-05-31 11:39:24 +02:00
Alexander Engelsberger
db064b5af1 Improvement of model __repr__ 2021-05-31 11:19:06 +02:00
Alexander Engelsberger
0ac4ced85d [refactor] Use functional variant of accuracy
Prevents Accuracy in `__repr__` of the models.
2021-05-31 11:12:27 +02:00
Jensun Ravichandran
cd73f6c427 Add examples/dynamic_components.py 2021-05-31 00:32:27 +02:00
Jensun Ravichandran
b7edee02c3 [WIP] Add CELVQ
TODO Ensure that the distances/probs corresponding to the plabels are sorted
like the target labels.
2021-05-27 17:40:16 +02:00
Jensun Ravichandran
d411e52be4 Refactor non-gradient-lvq models into lvq.py 2021-05-25 20:37:34 +02:00
Jensun Ravichandran
139109804f [BUGFIX] Use _forward in LVQ1 and LVQ21 2021-05-25 17:43:37 +02:00
Alexander Engelsberger
8ce18f83ce Add prototype_initializer function to GLVQ
This allows overwriting it inside subclasses.
2021-05-21 17:13:10 +02:00
Alexander Engelsberger
7b4f7d84e0 Update Documentation
Clean up project
2021-05-21 15:42:45 +02:00
Jensun Ravichandran
a5e086ce0d Refactor code 2021-05-21 13:33:57 +02:00
Jensun Ravichandran
88a34a06ef [WIP] Update CBC implementation to use SiameseGLVQ 2021-05-20 17:36:00 +02:00
Jensun Ravichandran
df061cc2ff Refactor code 2021-05-20 14:40:02 +02:00
Alexander Engelsberger
969fb34cc3 Accumulate test loss 2021-05-20 14:20:23 +02:00
Alexander Engelsberger
0204f5eab6 Log test accuracy. 2021-05-20 14:03:31 +02:00
Alexander Engelsberger
b7fc5df386 Log test loss. 2021-05-20 13:47:20 +02:00
Alexander Engelsberger
faf1a88f99 [Bugfix] Remove optimzer_idx from validation and test. 2021-05-20 13:17:27 +02:00
Jensun Ravichandran
5ffbd43a7c Refactor into shared_step 2021-05-19 16:57:51 +02:00
Jensun Ravichandran
fdf9443a2c Add validation and test logic 2021-05-19 16:30:19 +02:00
Jensun Ravichandran
eefec19c9b Custom non-gradient training 2021-05-18 19:49:16 +02:00
Jensun Ravichandran
81346785bd Cleanup models
Siamese architectures no longer accept a `backbone_module`. They have to be
initialized with an pre-initialized backbone object instead. This is so that the
visualization callbacks could use the very same object for visualization
purposes. Also, there's no longer a dependent copy of the backbone. It is
managed simply with `requires_grad` instead.
2021-05-17 17:00:23 +02:00
Jensun Ravichandran
b7684ae512 predict_latent no longer returns numpy 2021-05-15 12:52:16 +02:00
Alexander Engelsberger
0eac2ce326 Examples use GPUs if available. 2021-05-13 15:22:01 +02:00
Jensun Ravichandran
8f9c29bd2b [BUGFIX] Remove incorrect import statement 2021-05-12 16:45:01 +02:00
Jensun Ravichandran
ca39aa00d5 Stop passing component initializers as hparams
Pass the component initializer as an hparam slows down the script very much. The
API has now been changed to pass it as a kwarg to the models instead.

The example scripts have also been updated to reflect the new changes.

Also, ImageGMLVQ and an example script `gmlvq_mnist.py` that uses it have also
been added.
2021-05-12 16:36:22 +02:00
Jensun Ravichandran
eab1ec72c2 Change optimizer using kwargs 2021-05-11 16:13:00 +02:00
Alexander Engelsberger
3fa6378c4d Add LVQ1 and LVQ2.1 Models. 2021-05-11 13:26:13 +02:00
Jensun Ravichandran
ed03ab168e [BUGFIX] Fix lambda_matrix property in GMLVQ 2021-05-10 14:09:25 +02:00
Jensun Ravichandran
c6e06ceaa4 Properly initialize prototypes in LVQMLN 2021-05-09 20:55:28 +02:00
Jensun Ravichandran
ca4c9da10a Add the namespace hook for GMLVQ in the model class 2021-05-09 20:53:31 +02:00
Jensun Ravichandran
d7972a69e8 Update GMLVQ model 2021-05-07 15:24:47 +02:00
Alexander Engelsberger
4bbe73e3a9 Add GRLVQ with examples. 2021-05-06 18:42:06 +02:00
Alexander Engelsberger
5a2f4f6170 Revert deletion of training accuracy. 2021-05-06 18:02:01 +02:00
Alexander Engelsberger
1c3613019b Update Examples to new initializer architecture.
Visualization still borken for some examples.
2021-05-06 14:10:09 +02:00
Jensun Ravichandran
d644114090 Add loss transfer function to glvq 2021-05-04 20:56:16 +02:00
Jensun Ravichandran
f402eea884 Add GMLVQ examples 2021-05-04 15:11:16 +02:00
Jensun Ravichandran
a1ac5a70c7 Use squared euclidean distance in GMLVQ 2021-05-04 14:34:00 +02:00
Jensun Ravichandran
d8e017ae74 Update SiameseGLVQ 2021-05-03 16:09:22 +02:00
Jensun Ravichandran
96aeaa3448 Add support for multiple optimizers 2021-05-03 13:20:49 +02:00
Jensun Ravichandran
6dd9b1492c Add more models 2021-04-29 23:37:22 +02:00
Jensun Ravichandran
a16bebd0c4 Use Components instead of Prototypes and refactor old examples 2021-04-29 17:05:41 +02:00
Alexander Engelsberger
eeb684b3b6 GLVQ with configurable distance. 2021-04-27 15:41:44 +02:00
Jensun Ravichandran
1fb197077c Add siamese glvq 2021-04-27 14:35:17 +02:00
Alexander Engelsberger
c4c51a16fe Automatic Formating. 2021-04-23 17:27:47 +02:00
Jensun Ravichandran
d0d69f610e Show accuracy in the progress bar 2021-04-21 22:28:36 +02:00
Jensun Ravichandran
fadf8c25bf Add more experimental changes
The code gets very messy very quickly as soon as serialization features are
needed.
2021-04-21 21:59:19 +02:00
Jensun Ravichandran
e5a62bd0fc Fix broken state from previous commit 2021-04-21 21:35:52 +02:00
Jensun Ravichandran
fe36e5fad9 Add partial metric/hparam features [BROKEN STATE] 2021-04-21 19:16:57 +02:00
Jensun Ravichandran
f6994dfd83 Add glvq model 2021-04-21 14:51:34 +02:00