def test_created_net_has_correct_layer_sizes(self): nnet = NeuralNet.create_from_file(fname=self.test_file) self.assertEqual(nnet.layer_sizes(), self.net_params['layer_sizes']) net_params = { 'layer_sizes': [1, 1, 1], 'layers': [{ 'weights': [[3]], 'biases': [5] }, { 'weights': [[1]], 'biases': [1] }] } self.make_temp_params_file(net_params) nnet = NeuralNet.create_from_file(fname=self.test_file) self.assertEqual(nnet.layer_sizes(), self.net_params['layer_sizes'])
def test_created_net_biases(self): nnet = NeuralNet.create_from_file(fname=self.test_file) biases = nnet.biases() expected_biases1 = self.net_params['layers'][0]['biases'] expected_biases2 = self.net_params['layers'][1]['biases'] self.assertEqual(biases[0].tolist(), expected_biases1) self.assertEqual(biases[1].tolist(), expected_biases2)
def test_created_net_weights(self): nnet = NeuralNet.create_from_file(fname=self.test_file) weights = nnet.weights() expected_weights1 = self.net_params['layers'][0]['weights'] expected_weights2 = self.net_params['layers'][1]['weights'] self.assertEqual(weights[0].tolist(), expected_weights1) self.assertEqual(weights[1].tolist(), expected_weights2)
def test_costs_match(self): nnet = NetFactory.create_neural_net(sizes=[2, 3, 1, 10, 2]) nnet.randomize_parameters() cost_func = CrossEntropyCost(nnet) X = [np.array([90, 23], float), np.array([0, 2], float)] Y = [np.array([0.4, 0.6], float), np.array([0.3, 0])] examples = PreloadSource((X, Y)) c1 = cost_func.get_cost(examples) fname = os.path.join('test_temp', 'nets_params.json') nnet.save(dest_fname=fname) nnet = NeuralNet.create_from_file(fname) c2 = cost_func.get_cost(examples) self.assertAlmostEqual(c1, c2, places=4)
def test_for_net_with_multiple_hidden_layers(self): net_params = { 'layer_sizes': [1, 1, 1, 2], 'layers': [{ 'weights': [[3]], 'biases': [5] }, { 'weights': [[1]], 'biases': [1] }, { 'weights': [[1.5], [3]], 'biases': [10, 20] }] } self.make_temp_params_file(net_params) nnet = NeuralNet.create_from_file(fname=self.test_file) weights = nnet.weights() biases = nnet.biases() self.assertEqual(nnet.layer_sizes(), self.net_params['layer_sizes']) expected_weights1 = self.net_params['layers'][0]['weights'] expected_weights2 = self.net_params['layers'][1]['weights'] expected_weights3 = self.net_params['layers'][2]['weights'] self.assertEqual(weights[0].tolist(), expected_weights1) self.assertEqual(weights[1].tolist(), expected_weights2) self.assertEqual(weights[2].tolist(), expected_weights3) expected_biases1 = self.net_params['layers'][0]['biases'] expected_biases2 = self.net_params['layers'][1]['biases'] expected_biases3 = self.net_params['layers'][2]['biases'] self.assertEqual(biases[0].tolist(), expected_biases1) self.assertEqual(biases[1].tolist(), expected_biases2) self.assertEqual(biases[2].tolist(), expected_biases3)
def step(context, fname): context.new_net = NeuralNet.create_from_file(fname)
def test_returns_neural_net(self): nnet = NeuralNet.create_from_file(fname=self.test_file) self.assertIsInstance(nnet, NeuralNet)