明けましておめでとうございます。
プログラミングを冬休み中に押し込んでやってるkiwiです。
とうとうクリスマスになりましたが、私には彼女とかいないので
そういうの関係なくひたすらPythonのエラーとにらめっこです。
concurrent.futureがなかなか思うように動いてくれず、
挙句の果てには、100万GB超えの処理を16GBのRAMのPCに強要するエラーが発生し、
Windowsがぶっ壊されかけました。
下手したらパソコンもお釈迦でした。
そんな苦難を乗り越えて、念願の
Super_Uzaki_Converter
【 超(Super) うざき(Uzaki) コンバータ(Converter) 】
が完成しました。
宇崎ちゃんには、これをクリスマスプレゼントとしてあげます (笑)
concurrent.futureって、処理する量が膨大だとスレッド数を超えないように
うまいこと調節しないとダメっぽいので注意が必要ですね。Qiitaとかのコードパクってやってたら
PC壊されかけました。今度並行処理の記事書きたいですね。まだまだ素人ですが…
時間を計ってみたら、3000KBのsfenを、それぞれ1スレ割り当てで7並行処理させたところ、
75000KBの教師局面がおよそ4,5分でできました。
大分高速化しましたね。
sfen形式の棋譜を教師局面に変換できます。
YaneuraOu氏のAyaneが必須です。
そちらもダウンロードしましょう
https://github.com/yaneurao/Ayane
作った教師局面は、YaneuraOuで評価関数を作るのに必要な教師局面となります。
YaneuraOuのコマンドでbinファイルに変換してから使うことができます!
Super_Uzaki_ConverterもGitHubに載せておきます。
https://github.com/narikyow/Uzaki_Converter
誰でも比較的簡単に、少しのプログラミング知識があるだけで
将棋AIが作れる時代です。楽しみましょう!