変わりモノがいい!

変わりモノには価値がある・・・ハズ?

コンピュータ将棋の実践:環境構築編

さあ、コンピュータ将棋を動かすぞ!

ここまでのところでコンピュータ将棋の歴史と理論について見てきました。 ここからはいよいよコンピュータ将棋を動かすフェーズに入っていきましょう。 そのためには、まずは環境構築を行う必要があります。 今回は、ディープラーニングを使ったコンピュータ将棋を作るわけですので、ディープラーニングのプラットフォーム(フレームワーク)を構築する必要があります。 今回は、ディープラーニングのフレームワークとしてChainerを使用します。 

   f:id:ken2017:20200418090329j:plain  
ディープラーニングのフレームワークとしては言語をPythonとした場合、下の表に示すようなものがあります。

   f:id:ken2017:20200418090028j:plain 
これらについての解説がQiitaに載っていますのでご参考

qiita.com
上のところでChainerが日本企業(Preferred Networks社)製なので選んだ、と書きましたが、日本語でのコミュニティーフォーラムの存在等、日本で使用するには良い選択であると思っています。 ちなみに、世界シェアという意味ではGoogleのTensorFlowが一番ですね。 書籍も色々と出ていますね。

それでは、Chainerをインストールしましょう。

環境構築、プラットフォームのインストールは何度やっても慣れない、というか、その時々で問題発生、となりますね。 今回もご多分に漏れず問題が発生しました。 でも、今回は半日かからずに対応できましたが、悩んだのは事実です。
以下にインストールの手順と、その時々の画面を示していきます。

1)Anacondaのインストール
  Anacondaを使ってPythonをインストールします。 僕は既にAnacondaをインス
  トールしているので詳細な説明は省略します。 Anacondaのインストールに
  関してはQiita他にも沢山説明がありますので大丈夫と思います。 唯一の問題は
  Pythonのバージョンの問題のみですね。 2系と3系の問題です。
  Python2系が既に入っている場合には、Python3系がキチンと動くようにしておく
  必要があります。 注意点はこれだけと思います。
  注)AnacondaはAnaconda社が提供するデータサイエンス向けのPythonやRの
    パッケージを提供するプラットフォームです。
2)Visual Studio 2015 Communityのインストール
  まず、Visual Studio 2015 Communityをインストールします。 Visual Studio
  は2017が出ていますが、Python3.7より前のものは2015でビルドされていること
  から安心のために2015が指定されているようです(推測です)。
  Visual Studio 2015 Communityは以下の所からダウンロードできます。
  https://www.visualsyudio.com/ja/downloads/
  このページの下方に、以前のバージョン、という表記があるのでそこから入って
  ダウンロードします。
  ダウンロードした後に、インストーラを起動しカスタムを選び、プログラミング
  言語をVisual C++を選び、Python Tools for Visual Studioにもチェックを入れて
  起動します。 これでOK。 ここまでは特に悩まないと思います。
  注)Visual StudioはMicrosoft社が提供する統合開発環境です。

     f:id:ken2017:20200419092713j:plain

3)CUDAのインストール
  NVIDIAのサイトからCUDAをダウンロードします。
  https://developer.nvidia.com/cuda-toolkit
  Chainerに対応しているCUDAはCUDA9.0なので画面にあるLegacy Releaseから
  CUDA9.0をダウンロードし、インストールします。 ここも特に問題は起きない
  と思います。
  注)CUDAは、NVIDIA社が提供しているGPU向け汎用並列コンピューティング
    プラットフォームとプログラミングモデルです。
4)cuDNNのインストール
  NVIDIAのサイトからcuDNNをダウンロードします。
  https://developer.nvidia.com/cudnn
  ダウンロード後、インストール済のCUDAのフォルダー下にあるv9.0という
  フォルダに、以下のフォルダーをコピーします。(警告が出ても、続行、です)
  bin、include、lib
  これも全く問題なく終了します。
  注)cuDNNは、nvidia社が公開しているDeep Learning用のライブラリです。
5)pipのアップグレード
  今後の処理を開始する前にpipの最適化を行います。
  python -m pip install -U pip
  注)pipは、Pythonで書かれたパッケージソフトウエアをインストール・管理
    するためのパッケージ管理システムです。
  これも問題なく終了です。
6)Chainerのインストール
  いよいよChainerのインストールに入ります。 Chainerのインストールの前に
  ChainerをGPUで使うためのCupyをインストールします。
  pip install cupy==2.3.0
  cupyのバージョンは2.3.0を指定します。
  注)cupyは、簡単にGPU計算を実行するためのライブラリです。
  続いてChainerをインストールします。
  pip install chainer==3.3.0  

    f:id:ken2017:20200419093231j:plain

  これには参りました。 上の画像は、pipの最適化からの一連の処理結果を示して
  います。 見た目には全く問題はありません。 問題は、cupyがインストール
  できているかどうかの確認でした。
  Pythonを起動し、cupyをインストールしてバージョンを確認するのですが、これが
  エラーが発生して上手くいかない。 cupyをアンインストールし、再度インストー
  ルということを繰り返しましたが上手くいかない。 インストール自体は、上の
  画像にもあるように失敗しているとは思えないので、確認を中止して次のステップ
  に行くことにしました。 結果的に、この判断で良かったようです。
  2~3時間は無駄に使ってしまいました。
以上で環境構築は完了です。

では、Chainerを動かしてみましょう。

それでは、手書き数字認識のデータセットMNISTを使ってChainerの動作確認をしてみましょう。 MNISTには下のような手書き数字の画像が70,000枚用意されています。

f:id:ken2017:20200419100751j:plain
手書き数字認識用のChainer対応のプログラムをダウンロードします。
https://github.com/chainer/chainer/release/tag/v3.3.0
解凍後適当なディレクトリーに移動して実行します。
python examples\mnist\train_mnist.py
僕のSurface Laptop2はGPUが内蔵タイプなのでGPU用のパラメータは使用しませんでした。 結果を以下に示します。

f:id:ken2017:20200419100712j:plain
なんとか無事に終了です。
98.34%の精度で手書き数字の認識ができました。

さあ、Chainerの環境構築、動作確認が終わったのでいよいよコンピュータ将棋の構築開始です。 お楽しみは次回におあずけです。

では、また。

(参考図書)

 

 

プライバシーポリシー お問い合わせ