Commit 2d9a7197 authored by Peter Eastman's avatar Peter Eastman
Browse files

Fixed test failures

parent 798e6229
Loading
Loading
Loading
Loading
+17 −33
Original line number Diff line number Diff line
@@ -47,19 +47,6 @@ class Layer(object):
  def create_tensor(self, in_layers=None, set_tensors=True, **kwargs):
    raise NotImplementedError("Subclasses must implement for themselves")

  def __key(self):
    return self.name

  def __eq__(x, y):
    if x is None or y is None:
      return False
    if type(x) != type(y):
      return False
    return x.__key() == y.__key()

  def __hash__(self):
    return hash(self.__key())

  def shared(self, in_layers):
    """
    Share weights with different in tensors and a new out tensor
@@ -143,8 +130,6 @@ class Dense(Layer):
      biases_initializer=tf.zeros_initializer,
      weights_initializer=tf.contrib.layers.variance_scaling_initializer,
      time_series=False,
      scope_name=None,
      reuse=False,
      **kwargs):
    """Create a dense layer.

@@ -166,10 +151,6 @@ class Dense(Layer):
      the initializer for weight values
    time_series: bool
      if True, the dense layer is applied to each element of a batch in sequence
    scope_name: str
      an optional scope name for the layer's variables
    reuse: bool
      whether or not the layer and its variables should be reused
    """
    super(Dense, self).__init__(**kwargs)
    self.out_channels = out_channels
@@ -178,8 +159,8 @@ class Dense(Layer):
    self.biases_initializer = biases_initializer
    self.weights_initializer = weights_initializer
    self.time_series = time_series
    self.reuse = reuse
    self.scope_name = scope_name
    self._reuse = False
    self._shared_with = None

  def create_tensor(self, in_layers=None, set_tensors=True, **kwargs):
    if in_layers is None:
@@ -192,10 +173,6 @@ class Dense(Layer):
      biases_initializer = None
    else:
      biases_initializer = self.biases_initializer()
    if self.scope_name is None:
      scope_name = self.name
    else:
      scope_name = self.scope_name
    if not self.time_series:
      self.out_tensor = tf.contrib.layers.fully_connected(
          parent.out_tensor,
@@ -203,8 +180,8 @@ class Dense(Layer):
          activation_fn=self.activation_fn,
          biases_initializer=biases_initializer,
          weights_initializer=self.weights_initializer(),
          scope=scope_name,
          reuse=self.reuse,
          scope=self._get_scope_name(),
          reuse=self._reuse,
          trainable=True)
      return self.out_tensor
    dense_fn = lambda x: tf.contrib.layers.fully_connected(x,
@@ -212,8 +189,8 @@ class Dense(Layer):
                                                           activation_fn=self.activation_fn,
                                                           biases_initializer=biases_initializer,
                                                           weights_initializer=self.weights_initializer(),
                                                           scope=self.scope_name,
                                                           reuse=self.reuse,
                                                           scope=self._get_scope_name(),
                                                           reuse=self._reuse,
                                                           trainable=True)
    out_tensor = tf.map_fn(dense_fn, parent.out_tensor)
    if set_tensors:
@@ -223,16 +200,23 @@ class Dense(Layer):
    return out_tensor

  def shared(self, in_layers):
    self.reuse = True
    return Dense(
    copy = Dense(
        self.out_channels,
        self.activation_fn,
        self.biases_initializer,
        self.weights_initializer,
        time_series=self.time_series,
        reuse=self.reuse,
        scope_name=self.scope_name,
        in_layers=in_layers)
    self._reuse = True
    copy._reuse = True
    copy._shared_with = self
    return copy

  def _get_scope_name(self):
    if self._shared_with is None:
      return self.name
    else:
      return self._shared_with._get_scope_name()


class Flatten(Layer):
+1 −0
Original line number Diff line number Diff line
@@ -349,6 +349,7 @@ class TensorGraph(Model):
    shapes = []
    pre_q_inputs = []
    q = InputFifoQueue(shapes, names, in_layers=pre_q_inputs)
    q.name = "%s_%s" % (q.__class__.__name__, len(self.layers)+1)

    for layer in self.features + self.labels + self.task_weights:
      pre_q_input = layer.create_pre_q(self.batch_size)