Commit 3ab4460a authored by miaecle's avatar miaecle
Browse files

debug and update

parent b9cfdbc2
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ from deepchem.models.tensorgraph.symmetry_functions import DistanceMatrix, \

class BPSymmetryFunctionRegression(TensorGraph):

  def __init__(self, n_tasks, max_atoms, n_hidden=10, **kwargs):
  def __init__(self, n_tasks, max_atoms, n_hidden=10, n_embedding=10, **kwargs):
    """
    Parameters
    ----------
@@ -32,6 +32,7 @@ class BPSymmetryFunctionRegression(TensorGraph):
    self.n_tasks = n_tasks
    self.max_atoms = max_atoms
    self.n_hidden = n_hidden
    self.n_embedding = n_embedding
    super(BPSymmetryFunctionRegression, self).__init__(**kwargs)
    self.build_graph()

@@ -51,7 +52,7 @@ class BPSymmetryFunctionRegression(TensorGraph):
    angular_symmetry = AngularSymmetry(
        self.max_atoms,
        in_layers=[distance_cutoff, distance_matrix, self.atom_coordinates])
    atom_embedding = DTNNEmbedding(n_embedding=5, in_layers=[self.atom_numbers])
    atom_embedding = DTNNEmbedding(n_embedding=self.n_embedding, in_layers=[self.atom_numbers])

    feature_merge = BPFeatureMerge(
        self.max_atoms,
+5 −5
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ class RadialSymmetry(Layer):
  def build(self):
    """ Parameters for the Gaussian """
    self.Rs = tf.Variable(tf.constant(0.))
    #self.ita = tf.Variable(tf.constant(1.))
    #self.ita = tf.exp(tf.Variable(tf.constant(0.)))
    self.ita = 1.
    
  def create_tensor(self, in_layers=None, set_tensors=True, **kwargs):
@@ -124,10 +124,10 @@ class AngularSymmetry(Layer):

  def build(self):
    #self.lambd = tf.Variable(tf.constant(1.))
    #self.ita = tf.Variable(tf.constant(1.))
    #self.zeta = tf.Variable(tf.constant(1.))
    self.lambd = 1.
    #self.ita = tf.exp(tf.Variable(tf.constant(0.)))
    self.ita = 1.
    #self.zeta = tf.Variable(tf.constant(0.8))
    self.zeta = 0.8

  def create_tensor(self, in_layers=None, set_tensors=True, **kwargs):
@@ -154,7 +154,7 @@ class AngularSymmetry(Layer):
    theta = tf.reduce_sum(tf.tile(tf.expand_dims(vector_distances, axis=3), (1,1,1,max_atoms,1)) * \
        tf.tile(tf.expand_dims(vector_distances, axis=2), (1,1,max_atoms,1,1)), axis=4)

    theta = tf.div(theta, R_ij * R_ik)
    theta = tf.div(theta, R_ij * R_ik + 1e-5)

    out_tensor = tf.pow(1+self.lambd*tf.cos(theta), self.zeta) * \
        tf.exp(-self.ita*(tf.square(R_ij)+tf.square(R_ik)+tf.square(R_jk))) * \
+4 −2
Original line number Diff line number Diff line
@@ -25,19 +25,21 @@ metric = [
# Batch size of models
max_atoms = 23
n_hidden = 10
n_embedding = 0
batch_size = 16

model = dc.models.BPSymmetryFunctionRegression(
    len(tasks),
    max_atoms,
    n_hidden=n_hidden,
    n_embedding=n_embedding,
    batch_size=batch_size,
    learning_rate=0.001,
    learning_rate=0.0001,
    use_queue=False,
    mode="regression")

# Fit trained model
model.fit(train_dataset, nb_epoch=20)
model.fit(train_dataset, nb_epoch=200, checkpoint_interval=100)

print("Evaluating model")
train_scores = model.evaluate(train_dataset, metric, transformers)