dmlc--dgl
ac932c665b
* cherry picking optimization from jtnn * adding official code. TODO: fix DGLMolTree * updating to current api. vae test still failing * reverting to list stacking * reverting to list stacking * cleaning x flags (stupid windows) * cleaning x flags (stupid windows) * adding stats * optimization * updating dgl stats * update again * more optimization * looks like computation is faster * removing profiling code * cleaning obsolete code * remove comparison warning * readme update * official implementation got a lot faster * minor fixes * unbatch by slicing frames * working around unbatch * reduce pack * oops * support frame read/write with slices * reverting back to readout as unbatch-by-slicing slows down backward * reverting to unbatch by splitting; slicing is unfriendly to backward * replacing lru cache with static object factory * cherry picking optimization from jtnn * unbatch by slicing frames * reduce pack * oops * support frame read/write with slices * reverting to unbatch by splitting; slicing is unfriendly to backward * replacing lru cache with static object factory * replacing Scheme object with namedtuple * forgot the find edges interface * subclassing namedtuple * updating to the latest api spec * bugfix * bfs with edges * dfs toy test case * clean up * style fix * bugfix * update to latest api; include traversal * replacing with readout * simplify decoder * oops * cleanup * reducing number of sets * more speed up * profile results * random fixes * fixing tvmarray handling incontiguous dlpack input * fancier dataloader * fix a potential context mismatch * todo: support pickling or using scipy in multiprocessing load * pickling support * resorting to suggested way of pickling * custom attribute pickling check * working around a weird pytorch pickling bug * including partial frame case * enabling multiprocessing dataloader * pickling everything now * really works * oops * updated profiling results * cleanup * fix as requested * cleaning random blank lines * removing profiler outputs * starting decoding * testing, WIP * tree decoding * graph decoding, WIP * graph decoding works * oops * fixing legacy apis * trimming number of candidate structures * sampling cleanups * removing comparison test * updated description
Junction Tree VAE - example for training
This is a direct modification from https://github.com/wengong-jin/icml18-jtnn
You need to have RDKit installed.
To run the model, use
python3 vaetrain_dgl.py
The script will automatically download the data, which is the same as the one in the original repository.
To disable CUDA, run with NOCUDA variable set:
NOCUDA=1 python3 vaetrain_dgl.py
To decode for new molecules, run
python3 vaetrain_dgl.py -T
Currently, decoding involves encoding a training example, sampling from the posterior distribution, and decoding a molecule from that.