Closed nissy-dev closed 4 years ago
I write evaluations and issues. https://github.com/deepchem/jaxchem/issues/8, https://github.com/deepchem/deepchem/issues/1941, https://github.com/deepchem/deepchem/issues/1942
I will make a notebook example
I think it is no bockers.
I mad the notebook example
I will write the blog post based on this comment https://github.com/nd-02110114/jaxchem/issues/1#issuecomment-651115458.
I think it is no bockers.
I posted the blog! https://forum.deepchem.io/t/gsoc-brief-report-during-1st-evaluation-period/201
I will build the documents using sphinx.
I think it is no bockers.
I built the document using sphinx.
I'll host the document using the https://readthedocs.org/.
And, I'll start looking into the Material Project Dataset support.
I think it is no bockers.
I hosted the document using the https://readthedocs.org/. Link : https://jaxchem.readthedocs.io/en/latest/
I'll fix the deepchem installation docs and review some PRs. And, I'll start looking into the Material Project Dataset support.
I think it is no bockers.
I didn't work in 7/11, 7/12
I will refactor the sparse pattern GCN. Currently, JAXChem uses the jax.ops.index_add
for aggregating the neighbor nodes and this leads to a bad performance.
But, two day ago, I found the flax has the example of sparse GCN model. (it includes MPNN!) The flax uses the jax.ops.segment_sum
. jax.ops.segment_sum is a almost same as the torch-scatter, I think it is better to use the jax.ops.segment_sum
. (torch-scatter is used in PyG) And, I will try to implement the MPNN.
Flax GCN example : https://github.com/google/flax/blob/9cc9b042c52f394464a2f292f6764e1e2836a01a/examples/graph/models.py
About the Material Project Dataset support, I seem that Nathan is working hard https://github.com/deepchem/deepchem/issues/1999. So, after Nathan added the new materials datasets to molnet, I will try to implement the CGCNN.
I think it is no bockers.
I refactor the sparse pattern GCN using jax.ops.segment_sum
The PR is https://github.com/deepchem/jaxchem/pull/15
This modification didn't solve the issue because jax.ops.segment_sum
also uses jax.ops.index_add
internally...
I implement the new molecule graph data and refactor some featurizers and ci scripts. After merging these PRs, I will make the new graph model featurizers using them
I think it is no bockers.
In a few days, I improved the type annotation and keep codes more healthy. But, these works are not related to jaxchem... So, I am regretting my actions....
In this week, I will focus on the CGCNN support. I will implement the CGCNN featurizer and molnet function for Materials Project Data.
My GSoC goal is supporting inorganic crystal data for DeepChem and fixing the sparse pattern models.
I think it is no bockers.
In a few days, I couldn't work for GSoC because of my research work....
Today, I added the CGCNN featurizer using new graph data class.
My GSoC goal is supporting inorganic crystal data for DeepChem and fixing the sparse pattern models.
I think it is no bockers.
Summary
JAXChem
In July, I was mainly working for the example notebook and the documentation. Firstly, I made the Tox21 example notebook with Google Colab. The content of this notebook is how to install the JAXChem, how to use a model of the JAXChem, how to train a model and so on. Google colab doesn't require the hard work of building the environment, so I think this is really useful for newcomers. And then, I made the JAXChem documentation and deployed to readthedocs.org.
In addition to this, I tried to refactor the sparse pattern model using
jax.ops.segment_sum
method in order to fix the performance issue. The reason I thoughtsegment_sum
method may solve the performance issue is thejax.ops.segment_sum
is used in the GNN model of flax which google develops as a neural network library for JAX. But, this modification didn't resolve the problem becausejax.ops.segment_sum
method usejax.ops.index_add
internally. I will continue to work for resolving this problem.What I did
segment_sum
DeepChem
In July, I was mainly working for the nightly-build package and new dataclass for graphs. Firstly, I fixed the nightly-build installation guide and CI scripts. And then, after I improved the type annotation in deepchem.utils, deepchem.dock and deepchem.hyper, I implemented the new dataclass for graphs. Currently, DeepChem has specific data classes for each model (like
ConvMol
<-GraphConvModel
), so I think this is not good situation considering about the maintainability or compatibility to PyG or DGL. (see the details https://github.com/deepchem/deepchem/issues/1942) Now I'm working for the CGCNN support using the new dataclass for graphs.What I did
Next plan (during final evaluation period)
In August, I will continue to work for implementing the CGCNN model and the PyG or DGL support for DeepChem. This plan is different from the original plan, but I think this is a really useful for many newcomers which want to try ML with chemistry. And then, I will restart to work for JAXChem after finishing this crystal support.