Commit 84398f9f authored by peastman's avatar peastman
Browse files

Replaced uses of deprecated layers

parent 358a54eb
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ class IRVLayer(Layer):
    out_tensor = tf.concat(outputs, axis=1)

    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = out_tensor
    return out_tensor

@@ -72,12 +72,12 @@ class IRVLayer(Layer):
    V, W, b, b2 = self.V, self.W, self.b, self.b2
    self.V, self.W, self.b, self.b2 = None, None, None, None

    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return V, W, b, b2, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    self.V, self.W, self.b, self.b2, self.out_tensor, self.trainable_weights, self.variables = tensor
    self.V, self.W, self.b, self.b2, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor


class IRVRegularize(Layer):
+36 −36
Original line number Diff line number Diff line
@@ -166,7 +166,7 @@ class WeaveLayer(Layer):

    self.out_tensors = [A, P]
    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = A
    return self.out_tensors

@@ -177,8 +177,8 @@ class WeaveLayer(Layer):
    W_AA, b_AA, W_PA, b_PA, W_A, b_A = self.W_AA, self.b_AA, self.W_PA, self.b_PA, self.W_A, self.b_A
    self.W_AA, self.b_AA, self.W_PA, self.b_PA, self.W_A, self.b_A = None, None, None, None, None, None

    out_tensor, out_tensors, trainable_weights, variables = self.out_tensor, self.out_tensors, self.trainable_weights, self.variables
    self.out_tensor, self.out_tensors, self.trainable_weights, self.variables = None, [], [], []
    out_tensor, out_tensors, trainable_weights, variables = self.out_tensor, self.out_tensors, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.out_tensors, self.trainable_weights, self.trainable_variables = None, [], [], []

    return W_AP, b_AP, W_PP, W_PP, W_P, b_P, \
           W_AA, b_AA, W_PA, b_PA, W_A, b_A, \
@@ -187,7 +187,7 @@ class WeaveLayer(Layer):
  def set_tensors(self, tensor):
    self.W_AP, self.b_AP, self.W_PP, self.W_PP, self.W_P, self.b_P, \
    self.W_AA, self.b_AA, self.W_PA, self.b_PA, self.W_A, self.b_A, \
    self.out_tensor, self.out_tensors, self.trainable_weights, self.variables = tensor
    self.out_tensor, self.out_tensors, self.trainable_weights, self.trainable_variables = tensor


def WeaveLayerFactory(**kwargs):
@@ -266,7 +266,7 @@ class WeaveGather(Layer):

    out_tensor = output_molecules
    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = out_tensor
    return out_tensor

@@ -290,12 +290,12 @@ class WeaveGather(Layer):
    W, b = self.W, self.b
    self.W, self.b = None, None

    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return W, b, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    self.W, self.b, self.out_tensor, self.trainable_weights, self.variables = tensor
    self.W, self.b, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor


class DTNNEmbedding(Layer):
@@ -341,19 +341,19 @@ class DTNNEmbedding(Layer):
    atom_features = tf.nn.embedding_lookup(self.embedding_list, atom_number)
    out_tensor = atom_features
    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = atom_features
    return out_tensor

  def none_tensors(self):
    embedding_list = self.embedding_list
    self.embedding_list = None
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return embedding_list, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    self.embedding_list, self.out_tensor, self.trainable_weights, self.variables = tensor
    self.embedding_list, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor


class DTNNStep(Layer):
@@ -436,19 +436,19 @@ class DTNNStep(Layer):
                             distance_membership_i) - output_ii + atom_features
    out_tensor = outputs
    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = out_tensor
    return out_tensor

  def none_tensors(self):
    W_cf, W_df, W_fc, b_cf, b_df = self.W_cf, self.W_df, self.W_fc, self.b_cf, self.b_df
    self.W_cf, self.W_df, self.W_fc, self.b_cf, self.b_df = None, None, None, None, None
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return W_cf, W_df, W_fc, b_cf, b_df, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    self.W_cf, self.W_df, self.W_fc, self.b_cf, self.b_df, self.out_tensor, self.trainable_weights, self.variables = tensor
    self.W_cf, self.W_df, self.W_fc, self.b_cf, self.b_df, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor


class DTNNGather(Layer):
@@ -524,19 +524,19 @@ class DTNNGather(Layer):
    output = tf.segment_sum(output, atom_membership)
    out_tensor = output
    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = out_tensor
    return out_tensor

  def none_tensors(self):
    W_list, b_list = self.W_list, self.b_list
    self.W_list, self.b_list = [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return W_list, b_list, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    self.W_list, self.b_list, self.out_tensor, self.trainable_weights, self.variables = tensor
    self.W_list, self.b_list, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor


class DTNNExtract(Layer):
@@ -694,7 +694,7 @@ class DAGLayer(Layer):

    out_tensor = batch_outputs
    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = out_tensor
    return out_tensor

@@ -711,12 +711,12 @@ class DAGLayer(Layer):
  def none_tensors(self):
    W_list, b_list = self.W_list, self.b_list
    self.W_list, self.b_list = [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return W_list, b_list, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    self.W_list, self.b_list, self.out_tensor, self.trainable_weights, self.variables = tensor
    self.W_list, self.b_list, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor


class DAGGather(Layer):
@@ -803,7 +803,7 @@ class DAGGather(Layer):
                                 **kwargs)
    out_tensor = outputs
    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = out_tensor
    return out_tensor

@@ -820,12 +820,12 @@ class DAGGather(Layer):
  def none_tensors(self):
    W_list, b_list = self.W_list, self.b_list
    self.W_list, self.b_list = [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return W_list, b_list, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    self.W_list, self.b_list, self.out_tensor, self.trainable_weights, self.variables = tensor
    self.W_list, self.b_list, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor


class MessagePassing(Layer):
@@ -898,19 +898,19 @@ class MessagePassing(Layer):
    out_tensor = out

    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = out_tensor
    return out_tensor

  def none_tensors(self):
    message_tensors = self.message_function.none_tensors()
    update_tensors = self.update_function.none_tensors()
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return message_tensors, update_tensors, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    message_tensors, update_tensors, self.out_tensor, self.trainable_weights, self.variables = tensor
    message_tensors, update_tensors, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor
    self.message_function.set_tensors(message_tensors)
    self.update_function.set_tensors(update_tensors)

@@ -1048,7 +1048,7 @@ class SetGather(Layer):

    out_tensor = q_star
    if set_tensors:
      self.variables = self.trainable_weights
      self.trainable_variables = self.trainable_weights
      self.out_tensor = out_tensor
    return out_tensor

@@ -1067,9 +1067,9 @@ class SetGather(Layer):
  def none_tensors(self):
    U, b, c, h = self.U, self.b, self.c, self.h
    self.U, self.b, self.c, self.h = None, None, None, None
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.variables
    self.out_tensor, self.trainable_weights, self.variables = None, [], []
    out_tensor, trainable_weights, variables = self.out_tensor, self.trainable_weights, self.trainable_variables
    self.out_tensor, self.trainable_weights, self.trainable_variables = None, [], []
    return U, b, c, h, out_tensor, trainable_weights, variables

  def set_tensors(self, tensor):
    self.U, self.b, self.c, self.h, self.out_tensor, self.trainable_weights, self.variables = tensor
    self.U, self.b, self.c, self.h, self.out_tensor, self.trainable_weights, self.trainable_variables = tensor
+124 −234

File changed.

Preview size limit exceeded, changes collapsed.

+7 −9
Original line number Diff line number Diff line
@@ -201,7 +201,7 @@ class TensorGraph(Model):
          if submodel.layers is not None:
            submodel_vars = set()
            for layer in submodel.layers:
              for var in layer.variables:
              for var in layer.trainable_variables:
                submodel_vars.add(var)
        val_grad_fn = tfe.implicit_value_and_gradients(
            lambda x: self._run_graph([loss], x, True)[0])
@@ -701,7 +701,8 @@ class TensorGraph(Model):

        for layer in self.layers.values():
          if layer.variable_values is not None:
            for var, val in zip(layer.variables, layer.variable_values):
            for var, val in zip(layer.trainable_variables,
                                layer.variable_values):
              var.assign(val)
      self.session = None
      self._training_placeholder = None
@@ -975,12 +976,9 @@ class TensorGraph(Model):
    if not self.built:
      self.build()
    with self._get_tf("Graph").as_default():
      if tf.executing_eagerly():
        return layer.variables
      if layer.variable_scope == '':
      if layer.trainable_variables is not None:
        return layer.trainable_variables
      return []
      return tf.get_collection(
          tf.GraphKeys.TRAINABLE_VARIABLES, scope=layer.variable_scope)

  def get_layer_variable_values(self, layer):
    """Get the variable values associated with a given layer """
@@ -1000,7 +998,7 @@ class TensorGraph(Model):
    if tf.executing_eagerly():
      variables = []
      for layer in self.layers.values():
        variables += layer.variables
        variables += layer.trainable_variables
      return variables
    else:
      with self._get_tf("Graph").as_default():
+20 −20
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      result = layer(input)
      self.assertEqual(result.shape[0], batch_size)
      self.assertEqual(result.shape[2], filters)
      assert len(layer.variables) == 2
      assert len(layer.trainable_variables) == 2

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -48,7 +48,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.Dense(out_dim)
      result = layer(input)
      assert result.shape == (batch_size, out_dim)
      assert len(layer.variables) == 2
      assert len(layer.trainable_variables) == 2

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -71,7 +71,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.Highway()
      result = layer(input)
      assert result.shape == (batch_size, width)
      assert len(layer.variables) == 4
      assert len(layer.trainable_variables) == 4

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -160,7 +160,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.GRU(n_hidden, batch_size)
      result, state = layer(input)
      assert result.shape == (batch_size, n_steps, n_hidden)
      assert len(layer.variables) == 3
      assert len(layer.trainable_variables) == 3

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -192,7 +192,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.LSTM(n_hidden, batch_size)
      result, state = layer(input)
      assert result.shape == (batch_size, n_steps, n_hidden)
      assert len(layer.variables) == 3
      assert len(layer.trainable_variables) == 3

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -223,7 +223,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.TimeSeriesDense(out_dim)
      result = layer(input)
      assert result.shape == (batch_size, n_steps, out_dim)
      assert len(layer.variables) == 2
      assert len(layer.trainable_variables) == 2

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -313,7 +313,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.Variable(value)
      result = layer()
      assert np.array_equal(result.numpy(), value)
      assert len(layer.variables) == 1
      assert len(layer.trainable_variables) == 1

  def test_add(self):
    """Test invoking Add in eager mode."""
@@ -445,7 +445,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.Conv2D(filters, kernel_size=kernel_size)
      result = layer(input)
      assert result.shape == (batch_size, length, width, filters)
      assert len(layer.variables) == 2
      assert len(layer.trainable_variables) == 2

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -474,7 +474,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.Conv3D(filters, kernel_size=kernel_size)
      result = layer(input)
      assert result.shape == (batch_size, length, width, depth, filters)
      assert len(layer.variables) == 2
      assert len(layer.trainable_variables) == 2

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -505,7 +505,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      result = layer(input)
      assert result.shape == (batch_size, length * stride, width * stride,
                              filters)
      assert len(layer.variables) == 2
      assert len(layer.trainable_variables) == 2

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -538,7 +538,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      result = layer(input)
      assert result.shape == (batch_size, length * stride, width * stride,
                              depth * stride, filters)
      assert len(layer.variables) == 2
      assert len(layer.trainable_variables) == 2

      # Creating a second layer should produce different results, since it has
      # different random weights.
@@ -593,7 +593,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.GraphConv(out_channels)
      result = layer(*args)
      assert result.shape == (n_atoms, out_channels)
      assert len(layer.variables) == 2 * layer.num_deg
      assert len(layer.trainable_variables) == 2 * layer.num_deg

  def test_graph_pool(self):
    """Test invoking GraphPool in eager mode."""
@@ -650,7 +650,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      assert h_out.shape == (n_test, n_feat)
      assert h_copy_out.shape == (n_test, n_feat)
      assert c_out.shape == (n_test, n_feat)
      assert len(layer.variables) == 3
      assert len(layer.trainable_variables) == 3

  def test_attn_lstm_embedding(self):
    """Test invoking AttnLSTMEmbedding in eager mode."""
@@ -665,7 +665,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      test_out, support_out = layer(test, support)
      assert test_out.shape == (n_test, n_feat)
      assert support_out.shape == (n_support, n_feat)
      assert len(layer.variables) == 7
      assert len(layer.trainable_variables) == 7

  def test_iter_ref_lstm_embedding(self):
    """Test invoking AttnLSTMEmbedding in eager mode."""
@@ -680,7 +680,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      test_out, support_out = layer(test, support)
      assert test_out.shape == (n_test, n_feat)
      assert support_out.shape == (n_support, n_feat)
      assert len(layer.variables) == 12
      assert len(layer.trainable_variables) == 12

  def test_batch_norm(self):
    """Test invoking BatchNorm in eager mode."""
@@ -691,7 +691,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.BatchNorm()
      result = layer(input)
      assert result.shape == (batch_size, n_features)
      assert len(layer.variables) == 4
      assert len(layer.trainable_variables) == 2

  def test_weighted_error(self):
    """Test invoking WeightedError in eager mode."""
@@ -716,7 +716,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.VinaFreeEnergy(n_atoms, m_nbrs, ndim, nbr_cutoff, start,
                                    stop)
      result = layer(X, Z)
      assert len(layer.variables) == 6
      assert len(layer.trainable_variables) == 6
      assert result.shape == tuple()

      # Creating a second layer should produce different results, since it has
@@ -739,8 +739,8 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      input2 = np.random.rand(5, 10).astype(np.float32)
      layer = layers.WeightedLinearCombo()
      result = layer(input1, input2)
      assert len(layer.variables) == 2
      expected = input1 * layer.variables[0] + input2 * layer.variables[1]
      assert len(layer.trainable_variables) == 2
      expected = input1 * layer.trainable_variables[0] + input2 * layer.trainable_variables[1]
      assert np.allclose(result, expected)

  def test_neighbor_list(self):
@@ -789,7 +789,7 @@ class TestLayersEager(test_util.TensorFlowTestCase):
      layer = layers.AtomicConvolution(radial_params=params)
      result = layer(input1, input2, input3)
      assert result.shape == (batch_size, max_atoms, len(params))
      assert len(layer.variables) == 3
      assert len(layer.trainable_variables) == 3

  def test_alpha_share_layer(self):
    """Test invoking AlphaShareLayer in eager mode."""