Пример #1
0
 def _create_encoder(self, n_layers, dropout):
   """Create the encoder layers."""
   prev_layer = self._features
   for i in range(len(self._filter_sizes)):
     filter_size = self._filter_sizes[i]
     kernel_size = self._kernel_sizes[i]
     if dropout > 0.0:
       prev_layer = layers.Dropout(dropout, in_layers=prev_layer)
     prev_layer = layers.Conv1D(
         filters=filter_size,
         kernel_size=kernel_size,
         in_layers=prev_layer,
         activation_fn=tf.nn.relu)
   prev_layer = layers.Flatten(prev_layer)
   prev_layer = layers.Dense(
       self._decoder_dimension, in_layers=prev_layer, activation_fn=tf.nn.relu)
   prev_layer = layers.BatchNorm(prev_layer)
   if self._variational:
     self._embedding_mean = layers.Dense(
         self._embedding_dimension,
         in_layers=prev_layer,
         name='embedding_mean')
     self._embedding_stddev = layers.Dense(
         self._embedding_dimension, in_layers=prev_layer, name='embedding_std')
     prev_layer = layers.CombineMeanStd(
         [self._embedding_mean, self._embedding_stddev], training_only=True)
   return prev_layer
Пример #2
0
 def test_combine_mean_std(self):
     """Test invoking CombineMeanStd in eager mode."""
     with context.eager_mode():
         mean = np.random.rand(5, 3).astype(np.float32)
         std = np.random.rand(5, 3).astype(np.float32)
         layer = layers.CombineMeanStd(training_only=True,
                                       noise_epsilon=0.01)
         result1 = layer(mean, std, training=False)
         assert np.array_equal(result1, mean)  # No noise in test mode
         result2 = layer(mean, std, training=True)
         assert not np.array_equal(result2, mean)
         assert np.allclose(result2, mean, atol=0.1)
Пример #3
0
 def _create_encoder(self, n_layers, dropout):
   """Create the encoder layers."""
   prev_layer = self._features
   for i in range(n_layers):
     if dropout > 0.0:
       prev_layer = layers.Dropout(dropout, in_layers=prev_layer)
     prev_layer = layers.GRU(
         self._embedding_dimension, self.batch_size, in_layers=prev_layer)
   prev_layer = layers.Gather(in_layers=[prev_layer, self._gather_indices])
   if self._variational:
     self._embedding_mean = layers.Dense(
         self._embedding_dimension, in_layers=prev_layer)
     self._embedding_stddev = layers.Dense(
         self._embedding_dimension, in_layers=prev_layer)
     prev_layer = layers.CombineMeanStd(
         [self._embedding_mean, self._embedding_stddev], training_only=True)
   return prev_layer