狼将棋のところのSVGが出来がよかったのでテストしてみる。
流用してください的なことが書いてあるが,個別に回答頂いたわけじゃないので問題あれば削除します。
ーーー
7/13追記
MITライセンスで公開だそうな
狼将棋のところのSVGが出来がよかったのでテストしてみる。
流用してください的なことが書いてあるが,個別に回答頂いたわけじゃないので問題あれば削除します。
ーーー
7/13追記
MITライセンスで公開だそうな
Windows苦手な人が嫌がるところを見てみましょう。
習作として以下のElixirのサンプルをWindows環境で実行してみます。
当然地雷臭がしますが、Windowsネイティブバイナリを入れていきます。
最低です。Creators Update以降はPowerShellがデフォルトになっているのに、基本的なコマンドが別のエイリアスで規定されています。エイリアスを外すかコマンドプロンプトを起動しましょう。
ありがちです。Elixir含めて最近の処理系はUTF-8がデフォルトですが、Windowsは歴史あるShif-JIS系のコードをしようしています。
Windowsではchcpというコマンドを使いましょう。引数はUTF-8にするには65001としていします。つまり「chcp 65001」と打てばいいのです。
また、ありがちなのですがWindowsではエディタで作ったファイルがShif-JIS系になりがちです。確認してUTF-8にしておきましょう。
以上の対応をしても一か所ダメでした。
MS-IMEの出力はどうしてもUTF-8にできませんでした。
つまり、コマンドラインの漢字は入力しても化けて読まれます。
どうしたらいいものかなぁ。
#敢えて地雷を踏みに行ってますので、それほど危惧してません。
まぁ、解決策としてUbuntu系のバイナリが使えるBash on Windowsに逃げるのが今風なのですがCreators Update以降は素敵なことにbash中でWindowsバイナリも動きます。ええ、Windows側で指定したパスに実行ファイルがあるとそれが動きます。ということで上記で入れたWindowsバイナリをアンインストールしましょう。残ってると色々奇妙な現象にクラクラします。
今日はこれくらいにしてあげましょう。
以前ディープラーニングの習作に将棋のAIを選んで適当に作った話をしていた。いわゆるチュートリアル的な完成度の高い練習問題じゃなく,正解があるようなないような位の実践的な課題として選んでみた。ネット上で参考になりそうなblogも3つ4つある程度で丁度いい。参考にするものが皆無だとチュートリアルからの脱却にはハードルが高い。
うちで考えたNN構造は駒の種類(8種+成り駒6種)を先手後手でそれぞれ。手駒は7種類を先手後手でそれぞれ。9x9のマスを42層作ることに試行錯誤の後に落ち着いた。手駒層でちょっと工夫したのは駒数が増えたときに入力値を増やしていったところと,9x9にベタで入れるのは無駄な気がして盤上の空きマスに駒数を配置した。イメージで的には打ち手可能エリアと数ってことだ。
こうして行った入力層を薄くする努力はさほど有効でないことは中間層の大きさで演算量が大きく変わることを身に染みて理解した。そしてCNNの10層はFull-Connectの2層よりも軽快であった。
ざっくり,動かした結果自分の手で対戦するのが最も明快な評価であった。かなり面白いと思ったのは以下の点。
0.即指し&再現性100%。まぁ当然ではあるがw
1.駒の動かし方は概ね学習してる(初心者レベルはクリア)
2.序盤と終盤は学習データから除外したのに,初手は角道を開けるなど駒連携を考えた序盤
3.付き合った「歩」などの当たりの駒は即取る。(実際は悪手も多い)
4.王手は回避する。陣形崩壊前に早逃げ等も見られた。(悪手となることも多い)
酷いなぁと感じたのは以下の点。
1.遠見の「角」に気づかない。飛車・香と比べ学習しづらいのかも。王手回避ミスすら出る。
2.成り駒は動かせるのに,駒成りの手が指せない。そもそも別の層のデータなので別の駒と認識しているのかな。そして,学習機会は確かに少ない。人間だと嬉しい指し手として覚えるのは早いが。
3.そして恐ろしく弱い。不正な手を指さないように補正をしてfloodgateに放流したが連敗である。負けないとレーティングが付かないと言われるのと同様に一度も勝たないとレーティングが付かない。(どのプレーヤーか分かる人は分かると思う。)
世界コンピュータ将棋選手権の影響でfloodgateがインフレをしている中へぼいプレーヤーを投入した件はここでお詫びする。一勝くらいしたかった・・・
リモート監視ツールのMackerelがブレイク中だ。
お試しで2週間255ホスト無料である。
というか5ホストならずっと無料らしい。
個人で維持してるサーバなら無料でいいんじゃないだろうか。
ということで、ひとつ入れてみた。
CPU負荷やDisk入出力なんかは標準でログを取ってくれる。
個人的に近頃GPUに負荷をかけているので、これも取れないかと試みた。
mackerelってGPU負荷取れないの? #agent魔改造— 瀬戸内48 (@bleu48) 2017年4月18日
監視するマシンにはMackerelのagentというものをインストールする。これにプラグインを加えることで監視データを追加できるというものだ。
で、公式のプラグインはLinux用のようである。そっち向けのインストール手法しか公式には書かれていない。
Windows用でもできるはずなので試みた。
GPUデータ取得は Nvidiaのドライバを入れたときに同時に入ってる"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"を実行して得られるデータを切り出す。
具体的にはこちらにある。
コマンドひとつのためにパス設定するのも野暮いので、このプラグインの方に上記のコマンドのフルパスを入れてビルドしておいた。
実行ファイルの標準出力を加工して標準出力に出しているだけのようで、Go言語である必要はクロスプラットフォーム問題だけだろう。
あとはmackerel-agent.confに下記の二行足して保存するだけである。
[plugin.metrics.nvidia-smi]
command = "mackerel-plugin-nvidia-smi"
その後、トラブルは発生した。
上手に動いていないのである。
原因はとんでもないところにあった。
そもそも私はmackerel-agent.confを編集していなかったのである。
どういうことか。
Windows XP以降Program Files以下は管理者権限がないと一般には編集不可能なのだが、トラブル多発の結果後方互換を大切にするマイクロソフト社がVista以降で組み入れたVirtualStoreが本件の原因。
というか秀丸エディタとか秀丸エディタとか秀丸エディタとかデフォルトで VirtualStoreが有効になってるエディタでconfファイルを管理者権限持った一般ユーザが編集したのが過ち。非サーバのWindowsの方が起こり得るミスね。
つまり、特定ユーザだけにProgram Files以下のファイルを編集したように見せかける仮想ストレージがオーバーレイされてる状態でサービスの設定をしようとした。
つまり私が弄ってたファイルは以下にあります。
C:\Users\私\AppData\Local\VirtualStore\Program Files (x86)\Mackerel\mackerel-agent
言語系アプリがProgram Files以下にインストールしたがらないのはこういうことが頻繁に起こるからなのですよね。
管理者権限で秀丸エディタ(かメモ帳)を起動すれば大丈夫でした。
つまらん、実につまらん。(これで私とマカレルサポートを1週間ほど悩ませた。実に申し訳ない。)
ほとんどパクリネタなのだが,自分用の作業メモのつもりで残しておく。
1.GPUがcudnn対応であることを確認する。
ぶっちゃけた話,今これで凹んでる。CUDA自体は随分古いGPUから対応しているのでCUDA SDKを放り込むときは何も言われないし,cudnn自体もコピー作業なので実行時になって非対応が判明する残念な人がここにいる。
簡単に言うとFermiがアウトでKepler以降(Maxwell, Pascalと続く)がセーフ。
Geforceで言うとGT 600台が分かれるところで,この型番の上位機がKeplerで下位がFermiと言う商業主義的なナンバリングになってる。
もちろん低位なGPUで動かす利点はあまりないのだが,GPUの有無で機械学習ライブラリの(pythonの)オブジェクト構造が変わるのでちょっとした評価に手間が増える。例えば学習させたモデルすらGPU無いマシンで開けない。学習させてるマシンを煩わせずに評価や開発をしたいのが心情である。
2.Visual Studioを先に入れる。
CUDA SDKがVisual Studioを確認するのでね。今は2015を入れる。(2017が出てるので注意)
フルインストールに「推奨」とか書いているが,それはリリース当初GPUのドライバがCUDA対応と非対応の両方があったため同時に全部放り込む方が無難だったためだ。今となっては大体最新のドライバ類が先に入っているのでカスタムインストールでSDKで入れるのは入ってないやつと現行より新しいのがあれば入れるくらいが良い。
4.cudnnは5.1を使う
現行のpythonライブラリが概ね6.0対応していないので5.1を入れる。(pythonも3.5よね。)
5.環境変数をセット
以下のblogそのままやってるだけ。環境変数PATHに「C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin」を設定する。
環境変数INCLUDEに「C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt」を追加する。
設定しないとどうなるかは確認していない。
意外とWindows環境でやる人少ないのよね。