PCAfold issueshttps://gitlab.multiscale.utah.edu/common/PCAfold/-/issues2024-03-25T13:19:38Zhttps://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/74KeyError when use_variance is True2024-03-25T13:19:38ZKamila Zdybalkamilazdybal@gmail.comKeyError when use_variance is TrueKeyError in `analysis.feature_size_map` when `use_variance=True`.
The problematic part might be the `if use_variance else` part in line 821.KeyError in `analysis.feature_size_map` when `use_variance=True`.
The problematic part might be the `if use_variance else` part in line 821.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-03-30https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/73New functionality - build a VQPCA classifier for new observations2024-03-07T14:21:12ZKamila Zdybalkamilazdybal@gmail.comNew functionality - build a VQPCA classifier for new observationsBuild a VQPCA classifier for new observations based on the lowest reconstruction error associated with each of the `k` local bases.Build a VQPCA classifier for new observations based on the lowest reconstruction error associated with each of the `k` local bases.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-06-30https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/72New functionality - Allow the user to continue training the `QoIAwareProjecti...2024-02-22T15:17:19ZKamila Zdybalkamilazdybal@gmail.comNew functionality - Allow the user to continue training the `QoIAwareProjection` class objectAllow the user to continue training the `QoIAwareProjection` class object for a specified number of epochs.Allow the user to continue training the `QoIAwareProjection` class object for a specified number of epochs.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-05-31https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/69New functionality - allow the user to instantiate QoIAwareProjection object ...2023-12-14T18:27:12ZKamila Zdybalkamilazdybal@gmail.comNew functionality - allow the user to instantiate QoIAwareProjection object and set the weights and biases from a pre-trained model.We should allow the user to instantiate `QoIAwareProjection` object and set the weights and biases from a pre-trained model.
This should allow for continuing training.We should allow the user to instantiate `QoIAwareProjection` object and set the weights and biases from a pre-trained model.
This should allow for continuing training.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-01-31https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/68Failing test in the reconstruction module2023-12-14T15:12:44ZKamila Zdybalkamilazdybal@gmail.comFailing test in the reconstruction module`test_reconstruction__PartitionOfUnityNetwork__basis_linear_2dvars` test fails:
```
Traceback (most recent call last):
File "tests/reconstruction/test_reconstruction__PartitionOfUnityNetwork.py", line 199, in test_reconstruction__Part...`test_reconstruction__PartitionOfUnityNetwork__basis_linear_2dvars` test fails:
```
Traceback (most recent call last):
File "tests/reconstruction/test_reconstruction__PartitionOfUnityNetwork.py", line 199, in test_reconstruction__PartitionOfUnityNetwork__basis_linear_2dvars
self.assertTrue(np.max(np.abs(dvars - net(ivars)))<zerotol)
AssertionError: False is not true
```
I might need Elizabeth's help on that.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2023-12-31https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/61DeprecationWarning running reconstruction module unit tests2023-11-03T09:10:50ZKamila Zdybalkamilazdybal@gmail.comDeprecationWarning running reconstruction module unit testsI'm seeing the following DeprecationWarning running unit tests of the `reconstruction` module:
DeprecationWarning: non-integer arguments to randrange() have been deprecated since Python 3.10 and will be removed in a subsequent version
...I'm seeing the following DeprecationWarning running unit tests of the `reconstruction` module:
DeprecationWarning: non-integer arguments to randrange() have been deprecated since Python 3.10 and will be removed in a subsequent version
return self.randrange(a, b+1)
No idea where this is coming from since we don't use `randrange()`.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-01-31https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/56List index out of range error in VQPCA2023-11-03T09:10:37ZKamila Zdybalkamilazdybal@gmail.comList index out of range error in VQPCA`VQPCA` gives `IndexError: list index out of range` on some datasets or on some random initializations.
This might be especially reproducible when `n_components` gets closer to the original data dimensionality.
My suspicion is that it h...`VQPCA` gives `IndexError: list index out of range` on some datasets or on some random initializations.
This might be especially reproducible when `n_components` gets closer to the original data dimensionality.
My suspicion is that it happens when one of the clusters becomes rank deficient.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-01-31https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/55Implement predictions from decoder2023-11-03T09:11:23ZKamila Zdybalkamilazdybal@gmail.comImplement predictions from decoderAdd a new functionality that allows to use the trained decoder from the `QoIAwareProjection` class to make predictions on new manifold coordinates (as discussed with Dallin).Add a new functionality that allows to use the trained decoder from the `QoIAwareProjection` class to make predictions on new manifold coordinates (as discussed with Dallin).Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-01-31https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/53PCAfold import causing problems with Tensorflow2023-08-10T21:51:21ZDallin LittlewoodPCAfold import causing problems with TensorflowRunning a basic Tensorflow GradientTape example has no problems until PCAfold is imported
![image](/uploads/29497e19fa619ccf6ba8ede8b6be243f/image.png)
After importing PCAfold:
![image](/uploads/65c60045d5967b0a56283acefac44509/image....Running a basic Tensorflow GradientTape example has no problems until PCAfold is imported
![image](/uploads/29497e19fa619ccf6ba8ede8b6be243f/image.png)
After importing PCAfold:
![image](/uploads/65c60045d5967b0a56283acefac44509/image.png)https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/39Create a function for handling custom decoder outputs in `QoIAwareProjection`...2023-11-03T09:11:26ZKamila Zdybalkamilazdybal@gmail.comCreate a function for handling custom decoder outputs in `QoIAwareProjection` classCreate a function for handling custom decoder outputs in `QoIAwareProjection` class as discussed with James.Create a function for handling custom decoder outputs in `QoIAwareProjection` class as discussed with James.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-01-31https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/31Automatically changing matplotlib style2022-06-22T08:14:22ZMike HansenAutomatically changing matplotlib styleGreetings,
I've been happily using PCAFold recently and my only gripe to this point is that the import statements
```
from PCAfold import preprocess
from PCAfold import reduction
from PCAfold import analysis
```
change the behavior of...Greetings,
I've been happily using PCAFold recently and my only gripe to this point is that the import statements
```
from PCAfold import preprocess
from PCAfold import reduction
from PCAfold import analysis
```
change the behavior of matplotlib. In my opinion that is an undesirable side effect. For certain platforms it leads to warnings from matplotlib about not finding certain fonts. It also introduces order-dependence if some other package is also silently changing matlotlib style settings - the last package imported wins but only in conflicting settings. That's a strange thing to see.
I suggest moving matplotlib style settings to their own dedicated sub-package that does not get imported internally in the core packages (above). Setting matplotlib style should require an explicit package import (`from PCAfold import matplotlib_style` perhaps).
Another consideration is that usually style settings differ based on the format - papers vs presentations for instance - and it can be helpful to provide a function interface. The way I've done this before follows this pattern that you might consider:
```
from plotting_helper import set_style
set_style(linewidth=4, include_legend_frame=True, ...) # with loads of default arguments for paper/presentation format
```
or
```
from plotting_helper import set_presentation_style, set_journal_article_style
set_presentation_style()
#set_journal_article_style()
```
Mikehttps://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/29Parallelize kernel density weighting2023-11-03T09:09:50ZKamila Zdybalkamilazdybal@gmail.comParallelize kernel density weightingThe parallel version is coded, I just need to add it and add some smart checks if `numba` is installed.The parallel version is coded, I just need to add it and add some smart checks if `numba` is installed.Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.comhttps://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/15Value comparison should be independent of float formatting2023-11-03T09:11:31ZKamila Zdybalkamilazdybal@gmail.comValue comparison should be independent of float formattingOtherwise, comparisons are made after truncation to user-specified format, sometimes leading to weird results.
Affects functions:
- `RegressionAssessment.print_metrics`
- `RegressionAssessment.print_stratified_metrics`Otherwise, comparisons are made after truncation to user-specified format, sometimes leading to weird results.
Affects functions:
- `RegressionAssessment.print_metrics`
- `RegressionAssessment.print_stratified_metrics`Kamila Zdybalkamilazdybal@gmail.comKamila Zdybalkamilazdybal@gmail.com2024-01-31https://gitlab.multiscale.utah.edu/common/PCAfold/-/issues/7Set up continuous built/test2021-05-11T15:55:00ZJames SutherlandSet up continuous built/testAs part of this, we should also automate the readthedocs page. However, the present way of doing this involves a secret key that would end up being stored in the repository, which may not be ideal.As part of this, we should also automate the readthedocs page. However, the present way of doing this involves a secret key that would end up being stored in the repository, which may not be ideal.