Пример #1
0
 def _load_model(self):
     tf.reset_default_graph()
     rnn_layers = [RecurrentLayer(num_units=3,
                                  cell_factory=GRUCellFactory())]
     fc_layers = [DenseLayer(num_units=5)]
     self.model = RNNWrapper(rnn_layers, fc_layers,
                             embeddings=self.embeddings, num_epochs=6)
Пример #2
0
 def test_dropout_invalid(self):
     with pytest.raises(InvalidArgumentError):
         rnn_layers = [RecurrentLayer(num_units=5, dropout_rate=-0.34)]
         fc_layers = [DenseLayer(num_units=15)]
         model = RecurrentNeuralNetwork(rnn_layers, fc_layers,
                                        embeddings=self.embeddings)
         trainer = BaseTrainer(model)
         trainer.train(self.x_train, self.y_train)
Пример #3
0
 def test_early_stopping(self):
     rnn_layers = [RecurrentLayer(num_units=3,
                                  cell_factory=SimpleCellFactory())]
     fc_layers = [DenseLayer(num_units=5)]
     model = RecurrentNeuralNetwork(rnn_layers, fc_layers,
                                    embeddings=self.embeddings)
     trainer = EarlyStoppingTrainer(model, num_epochs=100, batch_size=1,
                                    max_epochs_no_progress=5,
                                    validation_data=(self.x_val, self.y_val))
     trainer.train(self.x_train, self.y_train)
     assert trainer._epochs_completed < 100  # early stopping
Пример #4
0
 def test_invalid_data(self):
     rnn_layers = [RecurrentLayer(num_units=5)]
     fc_layers = [DenseLayer(num_units=15)]
     model = RecurrentNeuralNetwork(rnn_layers, fc_layers,
                                    embeddings=self.embeddings)
     trainer = BaseTrainer(model)
     with pytest.raises(InvalidArgumentError):
         trainer.train([1, 2, 3, 4], [1, 2, 3, 4])  # x must be 2d
     with pytest.raises(InvalidArgumentError):
         trainer.train([[1, 2], [2, 3]], 0)  # y must be 1d
     with pytest.raises(InvalidArgumentError):
         trainer.train('asd', 'fgh')  # data must be numbers
Пример #5
0
 def test_base_training(self):
     rnn_layers = [RecurrentLayer(num_units=3, cell_factory=GRUCellFactory())]
     fc_layers = [DenseLayer(num_units=5)]
     model = RecurrentNeuralNetwork(rnn_layers, fc_layers,
                                    embeddings=self.embeddings)
     trainer = BaseTrainer(model, num_epochs=100, batch_size=1)
     trainer.train(self.x_train, self.y_train)
     self._assert_op_in_graph(model, 'Adam', 'dnn/rnn_layers')
     self._assert_op_in_graph(model, 'rnn_layer', 'dnn/rnn_layers')
     self._assert_op_in_graph(model, 'Adam', 'dnn/fc_layers')
     self._assert_op_in_graph(model, 'dense_layer', 'dnn/fc_layers')
     assert trainer._epochs_completed == 100
Пример #6
0
 def setUp(self):
     self.valid_input = [
         "This is my friend, he is angry.", "Hello, why are you angry?"
     ]
     self.invalid_input = [["this", "is", "already", "tokenized"]]
     self.embeddings_dir = os.path.join('test', 'data', 'embeddings')
     self.preprocessor = TextPreprocessor(remove_stop_words=True)
     self.preprocessor.fit([])
     doc2vec_model = Doc2Vec.load(
         os.path.join(self.embeddings_dir, 'd2v_test.model'))
     self.doc_emb = DocumentEmbeddingsTransformer(
         Doc2VecEmbedding(model=doc2vec_model))
     self.word_emb = WordEmbeddingsTransformer(
         CrossLingualPretrainedEmbedding(self.embeddings_dir, 'en'))
     self.padder = SentencePadder(padding_length=5)
     self.rnn_layers = [
         RecurrentLayer(num_units=3, cell_factory=GRUCellFactory())
     ]
     self.fc_layers = [DenseLayer(num_units=5)]
Пример #7
0
 def setUp(self):
     self.rnn_layers = [RecurrentLayer(num_units=3,
                                       cell_factory=GRUCellFactory())]
     self.fc_layers = [DenseLayer(num_units=5)]
     embeddings_dir = os.path.join('test', 'data', 'embeddings')
     model = Word2Vec.load(os.path.join(embeddings_dir, 'w2v_test.model'))
     self.embeddings = Word2VecEmbedding(model=model)
     self.x_train = [[0, 2, 1, 0],
                     [2, 1, 0, 0],
                     [3, 1, 0, 1],
                     [2, 0, 0, 0],
                     [1, 3, 3, 1]]
     self.y_train = [0, 0, 1, 0, 1]
     self.x_val = [
         [0, 1, 2, 0],
         [2, 1, 2, 3]
     ]
     self.y_val = [0, 1]
     tf.reset_default_graph()
Пример #8
0
 def test_layer_config_invalid(self):
     with pytest.raises(InvalidArgumentError):
         config = 5
         rnn_layer = RecurrentLayer(num_units=2)
         rnn_layer.load_config(config)
Пример #9
0
 def test_layer_config_valid(self):
     config = LayerConfig(num_units=5)
     rnn_layer = RecurrentLayer(num_units=2)
     assert rnn_layer.num_units == 2
     rnn_layer.load_config(config)
     assert rnn_layer.num_units == 5