https://github.com/muammar/ml4chem

sort by:
Revision Author Date Message Commit Date
cb1c66f LBFGS instead of FullBatchLBFGS. 05 April 2019, 22:37:51 UTC
13f1cf1 LBFGS by default. It might be still slow but converges in less time. 05 April 2019, 21:33:46 UTC
0058dce autoencoder module is doing distributed training! 05 April 2019, 05:15:56 UTC
b8828c1 Read log function and improved parity plot. 04 April 2019, 18:42:33 UTC
dbb7de0 Improved parity function. 04 April 2019, 17:09:35 UTC
be813c7 Remove loss function plot from neuralnetwork.py and PEP8 cleaning. 04 April 2019, 05:22:57 UTC
26d61a2 From delayed to futures. 03 April 2019, 05:07:19 UTC
0c9913a Small refactoring. 02 April 2019, 23:05:12 UTC
a28036e batch_size keyword argument to do distributed training. 02 April 2019, 22:49:53 UTC
ecbc40f A step forward distributed training. 02 April 2019, 03:06:28 UTC
741b618 Renamed RMSELoss to MSELoss. Moved RMSE per atom and per image out of the loss.py module. I think it is better to keep things isolated at that level. 01 April 2019, 21:56:41 UTC
7e105ad Logger is working correctly. 31 March 2019, 17:35:53 UTC
6a16cff Moved from print to logging. 31 March 2019, 06:17:51 UTC
8b9e97f fingerprints/ modules moved to logging instead of print. 29 March 2019, 23:28:56 UTC
3fbde9d Merge branch 'master' of https://github.com/muammar/mlchem * 'master' of https://github.com/muammar/mlchem: Added m2r module Update environment.yml 28 March 2019, 22:06:38 UTC
e260e62 This fixes memory leakage when saving the loss to a list. 28 March 2019, 21:04:17 UTC
9446cfe Potentials.save now does not require features - `features` is a keyword argument used to not require them to save models. - More PEP8 and Pyflakes cleaning up. - Renamed examples. 28 March 2019, 16:54:55 UTC
2fc1cfd The save() method in Potentials() is now a static method This will make easier to use that function to save models without instantiating the Potentials class. That is particularly useful when a user would like to build models in a more flexible way. 27 March 2019, 23:25:23 UTC
5666c99 Now fingerprints can be passed to the autoencoder as targets. 27 March 2019, 03:48:16 UTC
8490ef9 More information about time for moving data to GPU. 26 March 2019, 22:53:30 UTC
6aca4b5 The Potentials() class can use GPU. That is the case when using pytorch and the NeuralNetwork class. Users have to use `device='cuda'` in the .train() function. 26 March 2019, 22:47:24 UTC
22c12dd Added m2r module 26 March 2019, 21:24:26 UTC
3558765 More work with AutoEncoder - The following variables are returned by the train() class: epoch, _loss, _rmse. - Removed unused .mlchem, .params, and .scaler files. - Improved autoencoder test to use latent space to traing using the Potentials() class. 26 March 2019, 21:13:05 UTC
6308e02 Update environment.yml This possibly will make readthedocs works again. 26 March 2019, 21:10:50 UTC
160d430 A new get_latent_space() method that returns latent space. This method class takes the input, and returns a latent space in the format needed by mlchem to train subsequent models. This is almost ready for deployment. 26 March 2019, 16:56:10 UTC
b354553 MSELoss with 'mean' reduction. From pytorch: 'mean': the sum of the output will be divided by the number of elements in the output. This is exactly what it is mentioned about Loss Functions for real-valued outputs with AutoEncoders. The loss has to be divided by the number of elements in the output. With this change, I can reduce RMSE between outputs and targets as low as 5e-3. 25 March 2019, 22:52:14 UTC
a427143 No activation function in output layer for fully connected AutoEncoder According to https://youtu.be/xTU79Zs4XKY?t=416, when reconstructing a real valued vector, then the output layer does not need an activation function. Indeed, I can confirm this is correct. By doing this change, I am able to reconstruct atom positions without that much effort. 25 March 2019, 21:42:58 UTC
c479877 AutoEncoder class is operational and new Cartesian class The vanilla AutoEncoder() seems to be working. I also created a Cartesian() class to return images with right data structure to operate with MLChem using Cartesian coordinates as features. That is useful for the AutoEncoder hypothesis I want to try. 25 March 2019, 20:49:05 UTC
1805d06 Encoder/Decoder neural networks are built correctly. Users have to input a very simple dictionary with this structure: >>> hiddenlayers = {'encoder': (10, 5), 'decoder': (5, 10)} 25 March 2019, 17:07:03 UTC
517edf3 Encoder part has been implemented. 25 March 2019, 05:28:38 UTC
09e025f Merge branch 'master' into autoencoders * master: Small code refactoring. Kernel Ridge Regression predictions are working. 24 March 2019, 05:18:06 UTC
a3457bb Small code refactoring. 24 March 2019, 05:17:31 UTC
b87b64d Kernel Ridge Regression predictions are working. 22 March 2019, 23:34:24 UTC
fb04f46 Merge branch 'master' into autoencoders * master: KRR parameters and weights are saved to file. 21 March 2019, 21:20:18 UTC
25dcec5 KRR parameters and weights are saved to file. 21 March 2019, 21:19:08 UTC
d491271 Merge branch 'master' into autoencoders * master: Improved header. Update __init__.py 21 March 2019, 18:15:50 UTC
e206a99 Improved header. 21 March 2019, 18:15:14 UTC
ffc29b3 Update __init__.py 21 March 2019, 18:14:10 UTC
51fb692 Input for the autoencoder is built. Next step would be to think about the friendliest way to provide this workflow to users. 21 March 2019, 18:07:25 UTC
cffd708 Starting addition of autoencoder class. 21 March 2019, 05:51:30 UTC
f9d1c7a Computing kernel functions in chunks A new function called `get_chunks()` was added, and it can be used in the KernelRidge class by passing the `batch_size` keyword argument. This might be particularly useful when the size of the calculations does not fit in memory. 21 March 2019, 03:53:12 UTC
8b8cd91 Cleaned up examples and added more logging messages to kernelridge. 19 March 2019, 23:55:23 UTC
7dd739d Merge branch 'master' of https://github.com/muammar/mlchemistry * 'master' of https://github.com/muammar/mlchemistry: Update README.md 19 March 2019, 05:36:57 UTC
9df50a6 Cleaned up examples. 19 March 2019, 05:36:38 UTC
9e00326 Update README.md 19 March 2019, 05:27:31 UTC
82ed0e0 Improved README and removed entry from doctstring in serialization. 19 March 2019, 05:20:39 UTC
32dfd18 Serialization now possible with msgpack. - After researching about how to serialze some of the calculations to avoid recomputing them, I found that msgpack seems pretty solid. I added a new serialization module. - I cleaned up docstrings of KernelRidge regression. - Updated requirements.txt. 19 March 2019, 05:09:52 UTC
5af2166 n_workers and threads_per_worker have to be passed to Cluster class. See https://stackoverflow.com/q/55229249/1995261. 18 March 2019, 20:37:18 UTC
ffed6cb Scheduler type has to be present. I changed this in the way that you can set your scheduler in the class that is being built. 18 March 2019, 16:46:41 UTC
79af12e Removed `scheduler` and `cores` arguments. It seems to me that dask is smart enough to take care of all when you pass to the Client() class the `n_workers` and `threads_per_worker`. 18 March 2019, 07:12:21 UTC
a1cb0a8 Model training was corrected. - There is no need to loop over atoms when doing the atomic decomposition anzats. - PEP8 cleaned code. - There is more information about the training process. 18 March 2019, 03:49:45 UTC
2bf4423 I cleaned up docstrings. 17 March 2019, 18:51:06 UTC
e5521a5 The KernelRidge class can train. - The building of the kernel matrix is parallelized with dask. - Code is PEP8 and Pyflakes clean. - This commit advances issue #7. 17 March 2019, 18:40:19 UTC
fe03f01 LT matrix for the atomic decomposition ansatz. 16 March 2019, 19:01:28 UTC
29c41d0 The prepare_model function is computing the atomic kernel matrices. 15 March 2019, 23:10:30 UTC
db2a216 Ignore dask-worker-space directories. 15 March 2019, 16:48:27 UTC
f119e4f Fixed forgotten import of convert_elapsed_time function. 15 March 2019, 07:01:19 UTC
8dc2b22 More steps forward to get KRR working - The Gaussian fingerprint can return the right data structure to compute kernels. - A new convert_elapsed_time function to convert seconds to H:M:S. - I added some kernel functions to kernelridge.py. - Now the examples are divided in krrpot and neuralnetpot. 15 March 2019, 06:56:17 UTC
72ac349 Starting kernel ridge regression implementation. 15 March 2019, 05:12:19 UTC
bbbf4e5 I added more comments to my code. Commenting is good. 14 March 2019, 17:27:13 UTC
1697ea4 Using m2r to show markdown from files. 14 March 2019, 05:54:17 UTC
b7ed484 No travis deployement for the time being. I will self host and figure it out later. 14 March 2019, 02:04:53 UTC
11f2403 I created a gh-pages branch to see if travis can make it. 13 March 2019, 23:49:39 UTC
a3feec5 Last try before and starting to think that I just will host these at home >:( 13 March 2019, 23:33:31 UTC
9f9e4c5 I added sphinx.ext.githubpages to hopefully resolve the issue with the deployment >:( 13 March 2019, 23:29:16 UTC
45cb65f Attempt to fix deploy and CNAME removed for the moments. 13 March 2019, 23:19:28 UTC
60759c8 Delete extra CNAME file. 13 March 2019, 23:10:39 UTC
768f95a Merge branch 'master' of https://github.com/muammar/mlchem * 'master' of https://github.com/muammar/mlchem: Create CNAME 13 March 2019, 23:10:20 UTC
04c5024 Added cname and new pip dependency. 13 March 2019, 23:09:53 UTC
8abe234 Create CNAME 13 March 2019, 23:03:33 UTC
9626c72 Fixing some other errors. 13 March 2019, 22:58:19 UTC
2c27b1e Inspired by: https://amarder.github.io/using-travis-ci-to-build-sphinx-docs/ 13 March 2019, 22:53:29 UTC
4b0135a Modifying .travis.yml to build pages there. 13 March 2019, 22:45:24 UTC
dfb6a51 Nested loop parallelized for computing atomic feature vectors. - mlchem/fingerprints/gaussian.py changed according to https://stackoverflow.com/q/55091935/1995261. - pep8 and pyflakes cleaning. 13 March 2019, 18:49:59 UTC
fa0468b I got rid of the backend stuff for the moments. 13 March 2019, 05:51:08 UTC
458dc83 Updated readme and cu_training.py example. 11 March 2019, 21:22:59 UTC
cbe8b7f Update README.md 10 March 2019, 07:30:21 UTC
64a2779 I added in _static a dask dashboard example. 10 March 2019, 07:27:13 UTC
e284112 Fingerprinting is almost completely parallelized. - I have implemented parallelization of the whole fingerprinting process. - It is possible to track the whole computing process using the dask dashboard at http://localhost:8787/status. Note that you need to install bokeh. 10 March 2019, 07:16:27 UTC
41ce07d More improvements to make this work with dask for parallelization. 10 March 2019, 06:05:40 UTC
c4ab997 Moving dask from processes to distributed. The fingerprinting needed minimal change. However, note that the input file has changed now to have a `if __name__ == '__main__'` protection. I have to think better how to refactor the code to make this differently. But things have to keep going. 10 March 2019, 05:37:18 UTC
e56fb0f Merge branch 'master' of https://github.com/muammar/mlchemistry * 'master' of https://github.com/muammar/mlchemistry: Update README.md Removed space. Skip the tests for the moments. Update README.md Update .travis.yml Update .travis.yml Update python to 3.7. I will not support 2. Update .travis.yml Update .travis.yml Create .travis.yml 08 March 2019, 04:45:58 UTC
c1bad5c Update README.md 08 March 2019, 00:47:21 UTC
24c308c Removed space. 08 March 2019, 00:41:06 UTC
655c987 Skip the tests for the moments. 08 March 2019, 00:38:10 UTC
07185e8 Update README.md 08 March 2019, 00:37:28 UTC
6923a14 Update .travis.yml 08 March 2019, 00:31:10 UTC
5d4ba54 Update .travis.yml 08 March 2019, 00:30:39 UTC
aa44fca Update python to 3.7. I will not support 2. 08 March 2019, 00:29:08 UTC
44335b3 Update .travis.yml Change the position of --progress-bar off . 08 March 2019, 00:22:57 UTC
869c571 Update .travis.yml 08 March 2019, 00:20:59 UTC
9fccd1c Create .travis.yml 08 March 2019, 00:10:42 UTC
2ad62c2 Moving matplotlib to be installed with conda. 06 March 2019, 23:09:26 UTC
3bf1617 New keyword argument `cores` to Gaussian fingerprint - Now it is possible to specify the number of cores used in the fingerprinting process. I think the best way of keeping things modular is that each fingerprinting class accepts a `cores` keyword argument instead of using the Potentials() class. - I added a timer to the fingerprint process. 06 March 2019, 22:35:31 UTC
b03eb12 Parallel fingerprinting powered by dask! I am so impressed with how easy it was to make a parallel loop with dask. This commit is making the fingerprinting much faster. 06 March 2019, 03:28:49 UTC
8e48887 Models can be saved/loaded. This commit makes it possible to train a model, and save its state_dict. Then at loading time one can recreate the neural network and do predictions. There are three files created and needed: 1. Model file: .mlchem. 2. Parameters for neural network class and fingerprints: .params 3. Scaler object: .scaler. I think the scaler object file is something I can get rid of later. But for the moments it is the easiest way of scaling features using sklearn. 01 March 2019, 00:46:27 UTC
ee5041d Small refactoring. I modified forward() which is now using getattr() to get the slope and intercept. This was a suggestion from @chenglu at discuss.pytorch.org 28 February 2019, 04:14:55 UTC
233aaa6 This is making the model to load correctly. After discussing in discuss.pytorch.org with @ptrblck this commit registers the custom variables needed to reconstruct the model. However, I realized that loading the model and predicting the data points in the training set is not working. It seems that the state dictionary that is dumped is not the optimized one? 27 February 2019, 04:28:01 UTC
7519f21 Deep copy of the model. 27 February 2019, 00:38:47 UTC
9b2416e More steps forward to load pytorch models. The only remaining problem to be solved has to do with RuntimeError: Error(s) in loading state_dict for NeuralNetwork. 26 February 2019, 23:43:53 UTC
back to top