doas3140 / PyStack

Python implementation of Deepstack
79 stars 32 forks source link

Problem when running pre-flop data generation #5

Open gabrielelibardi opened 4 years ago

gabrielelibardi commented 4 years ago

When running python generate_data.py --street 1 --approximate leaf_nodes I get the error:

WARNING: leaf node model for street 'preflop' was not found. using only next street root nodes WARNING: leaf node model for street 'flop' was not found. using only next street root nodes WARNING: leaf node model for street 'turn' was not found. using only next street root nodes Traceback (most recent call last): File "generate_data.py", line 26, in main() File "generate_data.py", line 22, in main data_generation.generate_data(street, approximate, starting_idx) File "/src/DataGeneration/data_generation.py", line 171, in generate_data inputs, targets = self.solve_leaf_node(board, batch_size) File "/src/DataGeneration/data_generation.py", line 97, in solve_leaf_node self.range_generator.set_board(hand_strengths, board) File "/src/DataGeneration/range_generator.py", line 59, in set_board hand_strengths = evaluator.evaluate_board(board) if board.shape[0] == 5 else hand_strengths IndexError: tuple index out of range

it seems that that line 165 in data_generation.py might be causing the problem: if self.street == 1: board = np.zeros([], dtype=arguments.int_dtype)

Am I running the commands the wrong way?

qq421941937 commented 4 years ago

I tried to change if self.street == 1: board = np.zeros([], dtype=arguments.int_dtype) to if self.street == 1: board = np.array([], dtype=arguments.int_dtype) , and the program can run normally, but I am not sure if this is correct.

gabrielelibardi commented 4 years ago

Nice, thank you! Does it look like it is working after you made those changes ?

qq421941937 commented 4 years ago

It seems to work normally, but when I generate some data to train the neural network, the loss cannot be reduced. This problem has not been solved yet.

CuthbertJungle commented 3 years ago

did you generate data and train the NN for the other betting rounds first ?

LizChen2000 commented 3 years ago

@gabrielelibardi Hi when I run python train_nn.py --street 4 --approximate root_nodes Traceback (most recent call last): File "F:\Anaconda\deep\PyStack\scripts\train_nn.py", line 38, in main() File "F:\Anaconda\deep\PyStack\scripts\train_nn.py", line 35, in main T.train(num_epochs=arguments.num_epochs, batch_size=arguments.batch_size, validation_size=0.1, start_epoch=starting_idx) File "F:\Anaconda\deep\PyStack\src\NnTraining\train.py", line 63, in train h = self.keras_model.fit( train_iterator, File "F:\Anaconda\envs\deepstack\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1133, in fit data_handler = data_adapter.get_data_handler( File "F:\Anaconda\envs\deepstack\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 1365, in get_data_handler return DataHandler(*args, **kwargs) File "F:\Anaconda\envs\deepstack\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 1155, in init self._adapter = adapter_cls( File "F:\Anaconda\envs\deepstack\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 809, in init peek, x = self._peek_and_restore(x) File "F:\Anaconda\envs\deepstack\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 866, in _peek_and_restore peek = next(x) File "F:\Anaconda\envs\deepstack\lib\site-packages\tensorflow\python\data\ops\iterator_ops.py", line 764, in next raise StopIteration StopIteration Can you help me out plz,Thanks