示例#1
0
    def test_bolzmann_machine_get_energy_value(self):
        return
        node_number = 2
        weight_mat = np.ones((node_number, node_number))
        init_state = np.array([[1, 1]])
        updated_state = BolzmannMachine.get_updated_state(weight_mat, init_state)
        assert updated_state.tolist()[0][0] == 1
        assert updated_state.tolist()[0][1] == 1

        node_number = 2
        weight_mat = np.ones((node_number, node_number))
        init_state = np.array([[1, -100000]])
        updated_state = BolzmannMachine.get_updated_state(weight_mat, init_state)
        assert updated_state.tolist()[0][0] == 0
        assert updated_state.tolist()[0][1] == 0
示例#2
0
 def test_bolzmann_machine_get_updated_state(self):
     return
     node_number = 2
     weight_mat = np.ones((node_number, node_number))
     threshold_vec = np.array([[1, 1]])
     init_state = np.array([[1, 1]])
     energy = BolzmannMachine.get_energy_value(weight_mat, init_state, threshold_vec)
     assert energy == 0
示例#3
0
    def test_bolzmann_machine_predict(self):

        # 隠れノードが1つ
        total_node_number = 3
        input_node_number = 1
        output_node_number = 1
        threshold = 0

        # bolzmann_machine
        bm = BolzmannMachine(total_node_number, input_node_number, output_node_number, threshold)

        # weight_mat設定.
        bm.weight_mat = np.array([[1, -1, 1], [-1, 1, 2], [1, 0, 1]])

        # 最適値の状態確認.
        print
        print
        print "各状態におけるエネルギー値の確認."
        print [0, 0, 0], BolzmannMachine.get_energy_value(bm.weight_mat, np.array([[0, 0, 0]]), bm.threshold_vec)
        print [0, 0, 1], BolzmannMachine.get_energy_value(bm.weight_mat, np.array([[0, 0, 1]]), bm.threshold_vec)
        print [0, 1, 0], BolzmannMachine.get_energy_value(bm.weight_mat, np.array([[0, 1, 0]]), bm.threshold_vec)
        print [1, 0, 0], BolzmannMachine.get_energy_value(bm.weight_mat, np.array([[1, 0, 0]]), bm.threshold_vec)
        print [1, 1, 0], BolzmannMachine.get_energy_value(bm.weight_mat, np.array([[1, 1, 0]]), bm.threshold_vec)
        print [0, 1, 1], BolzmannMachine.get_energy_value(bm.weight_mat, np.array([[0, 1, 1]]), bm.threshold_vec)
        print [1, 0, 1], BolzmannMachine.get_energy_value(bm.weight_mat, np.array([[1, 0, 1]]), bm.threshold_vec)
        print [1, 1, 1], BolzmannMachine.get_energy_value(bm.weight_mat, np.array([[1, 1, 1]]), bm.threshold_vec)
        print

        input_vec = [0]
        assert bm.predict(input_vec) == [1]

        input_vec = [1]
        assert bm.predict(input_vec) == [0]