Easy to use State Reversible Vampnet with fit, transform and fittransform methods
Project description
Easy State Reversible Vampnet
This is an package providign State Reversible Vampnet from the J. Chem. Phys. 150, 214114 (2019). This is a deep dimensionality reduction used for time series to extract low dimensional slow process description. Usually it is used as an pre-processing tool to build Markov State Model to reduce number of dimensions in the system.
Installation
At the moment installation is available through github and pypi
github:
git clone https://github.com/DanielWicz/easysrv
cd easysrv
pip install .
PyPi
pip install easysrv
Usage
To use it you need two things
- Your data as an list of numpy arrays. Where each element of the list is an numpy array of shape (time_series_length, number_of_dims).
- Tensorflow 2 Sequence Model
import tensorflow as tf
# use smooth activation, to have smooth slow process assigment
# use non-smooth activation (relu, lerelu etc.) to have non-smooth slow process assigment
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(100, kernel_regularizer=tf.keras.regularizers.L2(0.0001), kernel_initializer='lecun_normal'),
tf.keras.layers.Activation("swish"),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dense(100, kernel_regularizer=tf.keras.regularizers.L2(0.0001), kernel_initializer='lecun_normal'),
tf.keras.layers.Activation("swish"),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dense(2, kernel_regularizer=tf.keras.regularizers.L2(0.0001)),
tf.keras.layers.GaussianNoise(1)])
# assume that list with data are described as a variable features
# pass single datapoint to set shapes of the matrices
model(features[0])
# initialize optimizer
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)
# initialize SRV, epochs - number of training iterations, split - train:validation split
srv = SRV(model=model, optimizer=optimizer, epochs=20, lagtime=1, split=0.05)
# fit SRV model
history = srv.fit(features)
# depict training process
plt.plot(history['Training loss'])
plt.title("Training loss")
plt.xlabel("Epochs")
plt.ylabel("Loss")
plt.plot(history['Val Training loss'])
plt.title("Validation Training loss")
plt.xlabel("Epochs")
plt.ylabel("Loss")
plt.plot(history['VAMP2 valid score'])
plt.title("Validation VAMP2")
plt.xlabel("Epochs")
plt.ylabel("VAMP2 score")
modes = ["IC{}".format(i+1) for i in range(len(history['eigenvalues']))]
plt.bar(modes, history['eigenvalues'])
plt.title("Slow processses eigenvalues")
# transform relevant features onto slow processes
# remove_modes allows for removing not interesting slow processes from slowest to the fastest
model_out = svr.transform(features, remove_modes=[])
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
easysrv-0.0.3.tar.gz
(11.9 kB
view details)
Built Distribution
File details
Details for the file easysrv-0.0.3.tar.gz
.
File metadata
- Download URL: easysrv-0.0.3.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c284cef3fbdc210f8bdf21fb94fb59707b19b648090c5095e786dd2af1fd99c3 |
|
MD5 | 8cb8349c517317250c4224a562a699cf |
|
BLAKE2b-256 | 734c336a52f89f0fe50d57caecf33941767bf46084a8d2e1942f48628f08bfe8 |
File details
Details for the file easysrv-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: easysrv-0.0.3-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eec4cbf3d90131f6d1ca217c1e35822d6cf0a83ad4e8316067b74dcd6bf7679b |
|
MD5 | 72ed49296ebb27f68f5e8dc8123a746f |
|
BLAKE2b-256 | c7b6ecd5a886361d75d077701cfe06c613c85c47f910fac9eae96ac64e0dd6f3 |