Commit dfdf3afc authored by leswing's avatar leswing
Browse files

Test

parent 8e765720
Loading
Loading
Loading
Loading
+40 −35
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ from deepchem.metrics import to_one_hot


class DistanceMatrix(Layer):

  def __init__(self, max_atoms, **kwargs):
    """
    Parameters
@@ -52,7 +51,6 @@ class DistanceMatrix(Layer):


class DistanceCutoff(Layer):

  def __init__(self, max_atoms, cutoff=6 / 0.52917721092, **kwargs):
    """
    Parameters
@@ -353,7 +351,6 @@ class AngularSymmetryMod(Layer):


class BPFeatureMerge(Layer):

  def __init__(self, max_atoms, **kwargs):
    self.max_atoms = max_atoms
    super(BPFeatureMerge, self).__init__(**kwargs)
@@ -375,7 +372,6 @@ class BPFeatureMerge(Layer):


class BPGather(Layer):

  def __init__(self, max_atoms, **kwargs):
    self.max_atoms = max_atoms
    super(BPGather, self).__init__(**kwargs)
@@ -403,8 +399,8 @@ class AtomicDifferentiatedDense(Layer):
               init='glorot_uniform',
               activation='relu',
               **kwargs):
    self.init = initializations.get(init)  # Set weight initialization
    self.activation = activations.get(activation)  # Get activations
    self.init = init  # Set weight initialization
    self.activation = activation  # Get activations
    self.max_atoms = max_atoms
    self.out_channels = out_channels
    self.atom_number_cases = atom_number_cases
@@ -413,6 +409,8 @@ class AtomicDifferentiatedDense(Layer):

  def create_tensor(self, in_layers=None, set_tensors=True, **kwargs):
    """ Generate Radial Symmetry Function """
    init_fn = initializations.get(self.init)  # Set weight initialization
    activation_fn = activations.get(self.activation)
    if in_layers is None:
      in_layers = self.in_layers
    in_layers = convert_to_layers(in_layers)
@@ -420,13 +418,12 @@ class AtomicDifferentiatedDense(Layer):
    inputs = in_layers[0].out_tensor
    atom_numbers = in_layers[1].out_tensor
    in_channels = inputs.get_shape().as_list()[-1]
    self.W = self.init(
    self.W = init_fn(
      [len(self.atom_number_cases), in_channels, self.out_channels])

    self.b = model_ops.zeros((len(self.atom_number_cases), self.out_channels))
    outputs = []
    for i, atom_case in enumerate(self.atom_number_cases):

      # optimization to allow for tensorcontraction/broadcasted mmul
      # using a reshape trick. Note that the np and tf matmul behavior
      # differs when dealing with broadcasts
@@ -439,7 +436,7 @@ class AtomicDifferentiatedDense(Layer):
      ak = tf.shape(a)[2]
      bl = tf.shape(b)[1]

      output = self.activation(
      output = activation_fn(
        tf.reshape(tf.matmul(tf.reshape(a, [ai * aj, ak]), b), [ai, aj, bl]) +
        self.b[i, :])

@@ -448,3 +445,11 @@ class AtomicDifferentiatedDense(Layer):
                                                             self.out_channels))
      outputs.append(output)
    self.out_tensor = tf.add_n(outputs)

  def none_tensors(self):
    w, b, out_tensor = self.W, self.b, self.out_tensor
    self.W, self.b, self.out_tensor = None, None, None
    return w, b, out_tensor

  def set_tensors(self, tensor):
    self.W, self.b, self.out_tensor = tensor
+13 −3
Original line number Diff line number Diff line
@@ -6,8 +6,12 @@ from __future__ import division
from __future__ import unicode_literals

import numpy as np

from models import TensorGraph

np.random.seed(123)
import tensorflow as tf

tf.set_random_seed(123)
import deepchem as dc

@@ -52,9 +56,15 @@ model.fit(train_dataset, nb_epoch=300, checkpoint_interval=100)
print("Evaluating model")
train_scores = model.evaluate(train_dataset, metric, transformers)
valid_scores = model.evaluate(valid_dataset, metric, transformers)
model.save()

model = TensorGraph.load_from_dir(model.model_dir)
train_scores2 = model.evaluate(train_dataset, metric, transformers)
valid_scores2 = model.evaluate(valid_dataset, metric, transformers)
print("Train scores")
print(train_scores)
print(train_scores2)

print("Validation scores")
print(valid_scores)
print(valid_scores2)