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
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
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]