Unverified Commit fe11a1d0 authored by Bharath Ramsundar's avatar Bharath Ramsundar Committed by GitHub
Browse files

Merge pull request #1059 from lilleswing/tf15

Tensorflow upgrade
parents f0a6c3bf bb551ac0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ git clone https://github.com/deepchem/deepchem.git # Clone deepchem source
cd deepchem
bash scripts/install_deepchem_conda.sh deepchem
source activate deepchem
yes | pip install tensorflow-gpu==1.4.0      # If you want GPU support
yes | pip install tensorflow-gpu==1.5.0      # If you want GPU support
python setup.py install                                # Manual install
nosetests -a '!slow' -v deepchem --nologcapture        # Run tests
```
+84 −100
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

import tempfile


import numpy as np
import scipy.stats
import tensorflow as tf
@@ -24,21 +23,19 @@ import tensorflow as tf
from google.protobuf import text_format

from tensorflow.python.framework import test_util
from tensorflow.python.platform import flags
from tensorflow.python.platform import googletest
from tensorflow.python.training import checkpoint_state_pb2

from deepchem.models.tensorflow_models import utils

FLAGS = flags.FLAGS
FLAGS.test_random_seed = 20151102
test_random_seed = 20151102


class UtilsTest(test_util.TensorFlowTestCase):

  def setUp(self):
    super(UtilsTest, self).setUp()
    np.random.seed(FLAGS.test_random_seed)
    np.random.seed(test_random_seed)

  def testParseCheckpoint(self):
    # parse CheckpointState proto
@@ -78,85 +75,56 @@ class UtilsTest(test_util.TensorFlowTestCase):
          expected)

  def testMean(self):
    self.Check(utils.Mean,
               features=[0, 1],
               expected=0.5)
    self.Check(utils.Mean,
               features=[[0, 1],
                         [2, 3]],
               expected=[0.5, 2.5],
               axis=1)
    self.Check(utils.Mean,
               features=[[[0, 1],
                          [2, 3]],
                         [[4, 5],
                          [6, 7]]],
    self.Check(utils.Mean, features=[0, 1], expected=0.5)
    self.Check(
        utils.Mean, features=[[0, 1], [2, 3]], expected=[0.5, 2.5], axis=1)
    self.Check(
        utils.Mean,
        features=[[[0, 1], [2, 3]], [[4, 5], [6, 7]]],
        expected=[2.5, 4.5],
        axis=[0, 2])

  def testMeanWithMask(self):
    self.Check(utils.Mean,
               features=[[9999],
                         [1],
                         [2]],
               expected=1.5,
               mask=[0, 1, 1])
    self.Check(utils.Mean,
               features=[[0, 1],
                         [9999, 9999]],
    self.Check(
        utils.Mean, features=[[9999], [1], [2]], expected=1.5, mask=[0, 1, 1])
    self.Check(
        utils.Mean,
        features=[[0, 1], [9999, 9999]],
        expected=[0, 1],
        axis=0,
        mask=[1, 0])
    self.Check(utils.Mean,
               features=[[[0, 1],
                          [9999, 9999]],
                         [[9999, 9999],
                          [6, 7]]],
    self.Check(
        utils.Mean,
        features=[[[0, 1], [9999, 9999]], [[9999, 9999], [6, 7]]],
        expected=[0.5, 6.5],
        axis=[0, 2],
               mask=[[1, 0],
                     [0, 1]])
        mask=[[1, 0], [0, 1]])

  def testVariance(self):
    self.Check(utils.Variance,
               features=[0, 1],
               expected=0.25)
    self.Check(utils.Variance,
               features=[[0, 2],
                         [2, 3]],
               expected=[1, 0.25],
               axis=1)
    self.Check(utils.Variance,
               features=[[[0, 1],
                          [2, 3]],
                         [[4, 5],
                          [6, 7]]],
    self.Check(utils.Variance, features=[0, 1], expected=0.25)
    self.Check(
        utils.Variance, features=[[0, 2], [2, 3]], expected=[1, 0.25], axis=1)
    self.Check(
        utils.Variance,
        features=[[[0, 1], [2, 3]], [[4, 5], [6, 7]]],
        expected=[4.25, 4.25],
        axis=[0, 2])

  def testVarianceWithMask(self):
    self.Check(utils.Variance,
               features=[[0],
                         [1],
                         [2]],
               expected=0.25,
               mask=[0, 1, 1])
    self.Check(utils.Variance,
               features=[[0, 2],
                         [9999, 9999],
                         [4, 4]],
    self.Check(
        utils.Variance, features=[[0], [1], [2]], expected=0.25, mask=[0, 1, 1])
    self.Check(
        utils.Variance,
        features=[[0, 2], [9999, 9999], [4, 4]],
        expected=[4, 1],
        axis=0,
        mask=[1, 0, 1])
    self.Check(utils.Variance,
               features=[[[0, 1],
                          [9999, 9999]],
                         [[9999, 9999],
                          [6, 8]]],
    self.Check(
        utils.Variance,
        features=[[[0, 1], [9999, 9999]], [[9999, 9999], [6, 8]]],
        expected=[0.25, 1],
        axis=[0, 2],
               mask=[[1, 0],
                     [0, 1]])
        mask=[[1, 0], [0, 1]])

  def testMoment(self):
    with self.test_session() as sess:
@@ -169,50 +137,66 @@ class UtilsTest(test_util.TensorFlowTestCase):
        self.assertAllClose(
            sess.run(utils.Moment(k, features_t)[1]),
            scipy.stats.moment(features, k, axis=None),
            rtol=1e-5, atol=1e-5)
            rtol=1e-5,
            atol=1e-5)

        # standardized moments
        self.assertAllClose(
            sess.run(utils.Moment(k, features_t, standardize=True)[1]),
            np.divide(scipy.stats.moment(features, k, axis=None),
            np.divide(
                scipy.stats.moment(features, k, axis=None),
                np.power(features.std(), k)),
            rtol=1e-5, atol=1e-5)
            rtol=1e-5,
            atol=1e-5)

        # central across one axis
        self.assertAllClose(
            sess.run(utils.Moment(k, features_t, reduction_indices=1)[1]),
            scipy.stats.moment(features, k, axis=1),
            rtol=1e-5, atol=1e-5)
            rtol=1e-5,
            atol=1e-5)

        # standardized across one axis
        self.assertAllClose(
            sess.run(utils.Moment(k, features_t, standardize=True,
                                  reduction_indices=1)[1]),
            np.divide(scipy.stats.moment(features, k, axis=1),
            sess.run(
                utils.Moment(
                    k, features_t, standardize=True, reduction_indices=1)[1]),
            np.divide(
                scipy.stats.moment(features, k, axis=1),
                np.power(features.std(axis=1), k)),
            rtol=1e-5, atol=1e-5)
            rtol=1e-5,
            atol=1e-5)

  def testSkewness(self):
    with self.test_session() as sess:
      features = np.random.random((3, 4, 5))
      features_t = tf.constant(features, dtype=tf.float32)
      self.assertAllClose(sess.run(utils.Skewness(features_t)),
      self.assertAllClose(
          sess.run(utils.Skewness(features_t)),
          scipy.stats.skew(features, axis=None),
                          rtol=1e-5, atol=1e-5)
      self.assertAllClose(sess.run(utils.Skewness(features_t, 1)),
          rtol=1e-5,
          atol=1e-5)
      self.assertAllClose(
          sess.run(utils.Skewness(features_t, 1)),
          scipy.stats.skew(features, axis=1),
                          rtol=1e-5, atol=1e-5)
          rtol=1e-5,
          atol=1e-5)

  def testKurtosis(self):
    with self.test_session() as sess:
      features = np.random.random((3, 4, 5))
      features_t = tf.constant(features, dtype=tf.float32)
      self.assertAllClose(sess.run(utils.Kurtosis(features_t)),
      self.assertAllClose(
          sess.run(utils.Kurtosis(features_t)),
          scipy.stats.kurtosis(features, axis=None),
                          rtol=1e-5, atol=1e-5)
      self.assertAllClose(sess.run(utils.Kurtosis(features_t, 1)),
          rtol=1e-5,
          atol=1e-5)
      self.assertAllClose(
          sess.run(utils.Kurtosis(features_t, 1)),
          scipy.stats.kurtosis(features, axis=1),
                          rtol=1e-5, atol=1e-5)
          rtol=1e-5,
          atol=1e-5)


if __name__ == '__main__':
  googletest.main()
+6 −9
Original line number Diff line number Diff line
"""Test ops for graph construction."""
from __future__ import print_function
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

import os
import numpy as np
import tensorflow as tf
from tensorflow.python.framework import test_util

import deepchem as dc
from tensorflow.python.framework import test_util
from tensorflow.python.platform import flags

FLAGS = flags.FLAGS
FLAGS.test_random_seed = 20151102
test_random_seed = 20151102


class TestModelOps(test_util.TensorFlowTestCase):
@@ -37,15 +34,15 @@ class TestModelOps(test_util.TensorFlowTestCase):
      features_t = tf.constant(features, dtype=tf.float32)
      dense_t = dc.nn.fully_connected_layer(features_t, 50)
      sess.run(tf.global_variables_initializer())
      features, dense, w, b = sess.run([features_t, dense_t] +
                                       tf.trainable_variables())
      features, dense, w, b = sess.run(
          [features_t, dense_t] + tf.trainable_variables())
      expected = np.dot(features, w) + b
      self.assertAllClose(dense, expected)

  def test_multitask_logits(self):
    with self.test_session() as sess:
      num_tasks = 3
      np.random.seed(FLAGS.test_random_seed)
      np.random.seed(test_random_seed)
      features = np.random.random((5, 100))
      logits_t = dc.nn.multitask_logits(
          tf.constant(features, dtype=tf.float32), num_tasks)
+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ conda install -y -q -c conda-forge keras=1.2.2
conda install -y -q -c conda-forge networkx=1.11
conda install -y -q -c conda-forge pillow=4.3.0
conda install -y -q -c conda-forge pandas=0.22.0
yes | pip install $tensorflow==1.4.0
yes | pip install $tensorflow==1.5.0
conda install -y -q -c conda-forge nose=1.3.7
conda install -y -q -c conda-forge nose-timer=0.7.0
conda install -y -q -c conda-forge flaky=3.3.0