これを読んでくれてありがとう。AlphaGo Lee や AlphaGo Zero のようなチェス AI を開発しました。Python と tensorflow を使用しました。チェス AI は、モンテカルロ ツリー検索、ポリシー ネットワーク、および値ネットワークで構成されます。
モンテカルロ木探索のポリシーとバリューネットワークの学習を行いました。問題はない。しかし、モンテカルロ木探索の各シミュレーションは遅すぎます。そのため、各シミュレーションの速度を上げたいと考えています。
私は、Python が GIL のためにオブジェクトを共有しないことを知っていました。私は本当にそれを助ける必要があります。Python マルチプロセッシングでオブジェクトを共有する経験がある場合は、経験を共有してください。
このページの下に要約コードを投稿します。
ps : 私は英語が苦手です。ですから、このページを読んで不快に思うなら、それは私のせいです。それを理解してください。
class monte
#I want to share Tree in multiprocessing
tree = Tree()
def doMontecarloTreeSearch:
while numberOfsimulation:
#I want to boost speed each simulation
# but each search() computing neural network to make new node
# so they spend much time.
search()
def search:
#node is created in each selection and is added in tree
while is_gameover():
selection()
evaluation()
backpropagation()
def selection
#add best value node in Tree
def evaluation
#each node is evaluated for expasion
def backpropagation
# after gameove, leaf node backpropagate gameresult
# and patent nodes are updated util parent node is root node