using System; using System.Collections.Generic; <<<<<<< HEAD using Tensorflow.Keras.ArgsDefinition; using Tensorflow.Keras.ArgsDefinition.Rnn; using Tensorflow.Keras.Engine; namespace Tensorflow.Keras.Layers.Rnn { public class DropoutRNNCellMixin { public float dropout; public float recurrent_dropout; // Get the dropout mask for RNN cell's input. public Tensors? get_dropout_maskcell_for_cell(Tensors input, bool training, int count = 1) ======= using System.Text; using Tensorflow.Common.Types; using Tensorflow.Keras.ArgsDefinition; using Tensorflow.Keras.Engine; namespace Tensorflow.Keras.Layers.Rnn { public abstract class DropoutRNNCellMixin: RnnCellBase { public float dropout; public float recurrent_dropout; // TODO(Rinne): deal with cache. public DropoutRNNCellMixin(LayerArgs args): base(args) { } protected void _create_non_trackable_mask_cache() { } public void reset_dropout_mask() { } public void reset_recurrent_dropout_mask() { } public Tensors? get_dropout_mask_for_cell(Tensors input, bool training, int count = 1) >>>>>>> 90a65d7d98b92f26574ac32392ed802a57d4d2c8 { if (dropout == 0f) return null; return _generate_dropout_mask( tf.ones_like(input), dropout, training, count); } // Get the recurrent dropout mask for RNN cell. <<<<<<< HEAD public Tensors? get_recurrent_dropout_maskcell_for_cell(Tensors input, bool training, int count = 1) ======= public Tensors? get_recurrent_dropout_mask_for_cell(Tensors input, bool training, int count = 1) >>>>>>> 90a65d7d98b92f26574ac32392ed802a57d4d2c8 { if (dropout == 0f) return null; return _generate_dropout_mask( tf.ones_like(input), recurrent_dropout, training, count); } public Tensors _create_dropout_mask(Tensors input, bool training, int count = 1) { return _generate_dropout_mask( tf.ones_like(input), dropout, training, count); } public Tensors _create_recurrent_dropout_mask(Tensors input, bool training, int count = 1) { return _generate_dropout_mask( tf.ones_like(input), recurrent_dropout, training, count); } public Tensors _generate_dropout_mask(Tensor ones, float rate, bool training, int count = 1) { Tensors dropped_inputs() { DropoutArgs args = new DropoutArgs(); args.Rate = rate; var DropoutLayer = new Dropout(args); var mask = DropoutLayer.Apply(ones, training: training); return mask; } if (count > 1) { Tensors results = new Tensors(); for (int i = 0; i < count; i++) { results.Add(dropped_inputs()); } return results; } return dropped_inputs(); } } <<<<<<< HEAD ======= >>>>>>> 90a65d7d98b92f26574ac32392ed802a57d4d2c8 }