-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrated GPFA #233
Integrated GPFA #233
Conversation
This reverts commit 4cff90f.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made a minor review. Mostly concerning documentation. I hope to find some time to have a more detailed look.
As a side note, gpfa can be implemented as a class. Doing so will reduce a large number of repeated arguments (like |
I found there are number of cases where |
Actually yes, |
…/gpfa # Conflicts: # elephant/gpfa.py
Hello @dizcza! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:
Comment last updated at 2019-07-31 13:28:51 UTC |
I've refactored unit tests and added a new test on dimensionality reduction performance of GPFA |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, huge amount of work getting this ported!
Minimal example works for me. I have started a first round of comments where I think a first major issue is to spend some more work on the function documentations, since they are still very difficult for users not familiar with the method. I'd be happy to assist with this as a novice user.
R: ndarray of shape (#units, #latent_vars) | ||
observation noise covariance | ||
|
||
seqs_train: numpy.recarray |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure I understand the advantage of using recarray
instead of a classic list of dict
here? Would
seqs_train['y'][0] # recarrays, trial 0
be preferrable over
seqs_train[0]['y'] # list of dicts, trial 0
from a user perspective?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I fully agree not using np.recarray
. The authors should provide a clear reason why they stick to np.recarray over python-friendly structures. Apart from confusing the users (and probably developers as well), it has several disadvantages during the test setup and future maintenance.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also thought to define seqs_train
as a list of dicts rather than a recarray, but I found that there are many parts in the code where seqs_train['y']
is subjected to vector operation, which cannot be done quickly with dicts, so I gave up.
We could still define seqs_train
as a dict of arrays (of the same length, i.e., # of trials) representing y
, x
, and so on, but it would require a total rewrite of the whole code.
By the way, for a recarray seqs_train
, seqs_train['y'][0]
is identical to seqs_train[0]['y']
.
TODO list:
|
commit 19d3c7b Author: Danylo Ulianych <dizcza@gmail.com> Date: Thu Aug 1 15:09:34 2019 +0200 fixed min requirements (NeuralEnsemble#235) * fixed min requirements * travis install libopenmpi-dev * added .coveragerc omit=elephant/test* rule not to count test files as source code commit 36e6096 Author: Danylo Ulianych <dizcza@gmail.com> Date: Wed Jul 31 16:55:47 2019 +0200 Integrated GPFA (NeuralEnsemble#233) * Rename neural_trajectory to gpfa and refactor the codes accordingly * Remove codes related to the (not fully implemented) cross-validation feature * added tqdm as an extra requirement * push coverage only for requirements-extras test * gpfa verbose flag; added licence in the docs * Fixed and extended documentation, removed misleading function outputs. commit d6822d6 Author: Danylo Ulianych <dizcza@gmail.com> Date: Tue Jul 23 16:35:45 2019 +0300 Acknowledgments (NeuralEnsemble#241) * acknowledgments * removed reference file AUTHORS.txt * recursive-exclude . *~ commit 6fd3a5b Author: Danylo Ulianych <dizcza@gmail.com> Date: Mon Jul 22 23:14:36 2019 +0300 Release v0.6.3 (NeuralEnsemble#240) * Release v0.6.3 * Update doc/reference/waveform_features.rst Co-Authored-By: Michael Denker <m.denker@fz-juelich.de> commit c013e39 Author: Danylo Ulianych <dizcza@gmail.com> Date: Sun Jul 21 09:18:03 2019 +0300 elephant dir packages are back (NeuralEnsemble#239) * reverted removed imports of elephant's internal packages; download fim during the setup * download fim from tools/fim_manager.py * dummy tools/__init__.py to support py2 * include requirements in MANIFEST back * fixed spade licence typo * included waveform_features module; removed tools; don't donwload fim at setup while macking a tarball with 'sdist' command travis not fixed downloading fim * skip time consuming test_spade_cpp if not HAVE_FIM * travis pip install generated tarball * recursive-include elephant *.py commit 3c30574 Author: Danylo Ulianych <dizcza@gmail.com> Date: Wed Jul 10 18:21:37 2019 +0200 Butterworth supports sosfiltfilt filter_function (NeuralEnsemble#234) * Butterworth supports sosfiltfilt filter_function * higher order filters comment
commit caa2110 Author: Danylo Ulianych <dizcza@gmail.com> Date: Tue Aug 13 10:03:45 2019 +0300 explain and ignore warnings during the tests (NeuralEnsemble#238) * explain and ignore warnings during the tests * scipy v0.18.0 * fixed min-req tests: scipy v0.19.0 * exclude min-requirements tests back * fixed division by zero commit 19d3c7b Author: Danylo Ulianych <dizcza@gmail.com> Date: Thu Aug 1 15:09:34 2019 +0200 fixed min requirements (NeuralEnsemble#235) * fixed min requirements * travis install libopenmpi-dev * added .coveragerc omit=elephant/test* rule not to count test files as source code commit 36e6096 Author: Danylo Ulianych <dizcza@gmail.com> Date: Wed Jul 31 16:55:47 2019 +0200 Integrated GPFA (NeuralEnsemble#233) * Rename neural_trajectory to gpfa and refactor the codes accordingly * Remove codes related to the (not fully implemented) cross-validation feature * added tqdm as an extra requirement * push coverage only for requirements-extras test * gpfa verbose flag; added licence in the docs * Fixed and extended documentation, removed misleading function outputs.
Only
gpfa
method is integrated here among all other choices in neural_trajectory.We'll add new functionality once it's implemented by our researchers.