Разбираю код программы
https://github.com/Smeilz/Tic-Tac-Toe-Reinforcemen...
Что я понял?
В программе есть 2 модуля.
Qlearning.py - отвечает за обучение агентов и сохранение результата обучения
Game.py - описывает процесс игры
Вопрос как именно Qlearning делает сохранение стратегии?
1) В Train.py есть строка
game.saveStates()
2) Она ссылается на функцию в модуле game.py
def saveStates(self):
self.player1.saveQtable("player1states")
self.player2.saveQtable("player2states")
3)Далее эта функция ссылается на экземпляр Player1 и Player2 и функцию saveQtable в модуле QLearning.py
def saveQtable(self,file_name): #save table
with open(file_name, 'wb') as handle:
pickle.dump(self.Q, handle, protocol=pickle.HIGHEST_PROTOCOL)
----------------------------------------------------
В итоге как я понимаю программа сохраняет стратегию, которая получена в результате тренировки, как поток байтов и при загрузке его декодирует обратно.
Вопросы.
1)Как именно сохраняется стратегия? Какая у нее структура? Что в данном случае сохранит параметр self?
2)Можно ли изменить код, чтобы сохранить ее в файл в читаемом виде и посмотреть формат?
3)Как сохранить тоже самое в Xml?
Заранее спасибо