記事閲覧
質問掲示板
TOP > 過去ログ > 記事閲覧
fld_nor.gif Katrainについて
投稿日 : 2020/06/16(Tue) 01:47
投稿者 hope366
参照先
今回メガパックを入れ替えて、メガパックに付属されているKatrainを起動したらエラーが発生しました。
前回、メガパックを所持している状態で単独のKatrainを持ってきたら単独のほうでエラーになり、config.jasonの内容を適用することでうまくいったのですが、実は上辺だけの解決で根本的な理解ができていませんでした。
メガパックのIssuesにおけるSanderlandさんのコメントも読みましたが完全に理解できずもやもやしてました。sml_q.gif

今回どうやら理解できたような気がするので報告したいと思います。
まず、同一のKaTrain.exeを複数所持している場合、これら全てが常に同じ設定になるように自動的に変更されます。
ここで言う設定とは、使用するエンジンの場所、使用するmodel(weight file)の場所、使用するconfigファイルの場所、です。
これらはlizzieのようにconfig.txtで指定するのではなく、起動した後の設定画面で設定します。
config.jasonというのがあって、この中に上記の3項目についての記載がありますが、config.jasonはKaTrain.exeとは異なる場所にあるのでここをいじっても反映されません。

長文で一度に全部投稿できなかったので、一旦ここで区切ります。次の投稿をご覧ください。
件名 Re: Katrainについて
投稿日 : 2020/06/16(Tue) 01:50
投稿者 hope366
参照先
メガパック付属のKatrainを所持している状態で単独のKatrainをダウンロードして実行すると、デフォルトの設定はメガパック付属のKatrainの設定に自動的に変更されて起動します。
これで何故エラーになるかというと、上記の3項目の場所を指定するのに「相対パス」が使用されているからです。相対パスとは、今作業している階層を基準にして、指定したファイルがどこにあるかを記述したものです。
例えば、メガパック付属のKatrainではエンジンの場所を指定するのに「../lizzie/katago.exe」という相対パスが使われています。
これは、メガパック付属のKatrainでは通用しますが、離れた場所にある単独のKatrainでは通用しません。なのでエラーになります。
では単独のKatrainはどう設定すればいいかというと、変更される前のデフォルトのものを使用すればいいのです。
デフォルトのエンジン指定は「空欄」です。空欄は付属のkatago.exeを指し示すというのが仕様です。
単独のKatrainにはkatagoフォルダが付属されているので、これでうまくいきます
しかし、この「空欄」を適用した状態でメガパック付属のKatrainを実行すると、自動的に「空欄」が適用されますが、
メガパック付属のKatrainにはkatagoフォルダがないので今度はこっちでエラーになります。
これをやっているとイタチごっこになります(笑)

次で最後です。
件名 Re: Katrainについて
投稿日 : 2020/06/16(Tue) 01:51
投稿者 hope366
参照先
これを防ぐには「絶対パス」を使うか、またはメガパック付属のKatrainにkatagoフォルダを置いてエンジン指定を「空欄」にするか、です。
絶対パスとは、階層の頂点から特定のファイルまでの経路を階層ごとに全て記載したもので、
「../lizzie/katago.exe」が相対パスなら、「C:\baduk\lizzie\katago.exe」が絶対パスです。
前者はメガパック付属のKatrainでのみ有効ですが、後者はどのKatrainでも有効です。

lizzieはKatrainと違って、完全に別個のものとして設定が適用されます。
メガパックのlizzieフォルダとLizzie-v0.7.3フォルダに同一のlizzie.jarがある場合、片方のエンジン登録を変更しても、もう片方には影響しません。
これが当たり前という感覚だったので、Katrainの仕組みが分かるまではかなり混乱しました。

この「同一の実行ファイルが複数ある場合は常に同じ設定が適用される」という仕様は、v1.1から有効になったようです。
Sanderlandさんの「単一実行ディストリビューションを可能にしました」の意味がようやく理解できました(多分)。
説明欄をみたらそれらしきことが書いてありました。

一台のPCの中に同一の実行ファイルが複数ある場合、それぞれが常に同じルール(設定)で動いたほうが都合がいいだろうということですね。
「絶対パス」や「相対パス」など知りませんでしたが、今回の問題を解決する上で理解できてよかったですsml_sml.gif
件名 Re: Katrainについて
投稿日 : 2020/06/16(Tue) 11:02
投稿者 Eba
参照先
謎が深まりました。
新しくKaTrainをCドライブのダウンロードフォルダにダウンロードして、そこで展開したKaTrain.zipのKaTrain.exeを実行したら「../lizzie/katago.exe」となりました。
Dドライブにダウンロードしていた場合は、そうならなかったのですが、一度「../lizzie/katago.exe」となると、新たにDドライブにダウンロードした場合でも「../lizzie/katago.exe」となりました。
一度でもCドライブにダウンロードして実行するとこうなるようです。
これは絶対パスにしても同じです。KaTrainを実行してF8から設定をすると、絶対パスでも相対パスでも同じで、そこで設定したパスがBadukでも適用されます。
念のためconfig.jsonを書き換えてみましたが、反映されません。
つまり、メガパックのインストールされている状態で、一度でもCドライブでKaTrainを実行すると、パスの設定を変えるたびにすべてのKaTrainのパス設定が変更されます。今のところ解決策が分かりません。
これはある意味不便ですね。

なお、KaTrainのパス設定を新たにすると、この質問掲示板へのアクセスが弾かれました。サーバーのWAFにひっかかるようで、私の使っているレンタルサーバーは個別アクセスのWAF設定ができないので、PCを再起動しないとここに書き込めません(他の掲示板はOK)。なのでこの現象が一番困ります。
件名 Re: Katrainについて
投稿日 : 2020/06/16(Tue) 11:13
投稿者 Eba
参照先
この質問掲示板へのアクセスが弾かれる現象は、特定のユーザー(私)のアクセスは可能に設定しましたが、皆さんの場合は可能になったかどうか分かりません。書き込めない場合はPCを再起動するしかなさそうです。
件名 Re: Katrainについて
投稿日 : 2020/06/16(Tue) 11:48
投稿者 hope366
参照先
引き続き検証して頂き有難うございます。

congig.jasonは、-helpのようなもので、内容を変更しても実行ファイルには影響しないみたいですね。
GitHubのリリースページの説明欄に、
「設定とKataGoチューニングファイルはローカルに保存されます(ユーザーディレクトリ/.katrain)。これにより、単一のexeファイルの配布も可能になります。」
と書かれています。
C:\Users\hiro7\.katrainを見てみると、添付図のようなものが保存されていました。これがおそらく設定を共有させるためのものなのだと思います。
Katrainのパス設定が原因かどうかは分かりませんが、文字数の多い投稿をしようとしたらエラーになったので、前回3つに分けて投稿しました。
エラー内容を正確に覚えていませんが、文字数がオーバーしています、というエラーではなかったです。

1592275708-s-1.jpg

件名 Re: Katrainについて
投稿日 : 2020/06/16(Tue) 12:06
投稿者 Eba
参照先
なるほど
PCのどこにあるKaTrainでも、起動するとユーザーディレクトリ下の「.katrain」フォルダのconfig.jsonに設定が保存され、その後はどのKaTrainを実行しても、設定が同じということですか。
最初に私が経験したメガパックも単独KaTrainもそれぞれの設定で起動できたというのは勘違いのようです。
念のためメガパックをアンインストールして、すべて削除してからインストールし、DドライブのKaTrainを実行するとユーザーディレクトリ下に「.katrain」フォルダが作られます。この状態でメガパックのKaTrainを実行するとKaTrainのKataGoはパスが違うので動きません。
PC上に複数のKaTrain.exeがあっても、設定パスはすべて同じということになります。これはメガパックとは別に単独でKaTrainを実行したい場合は不便なんてものではないですね。

この掲示板への書き込みをhope366さんができたと言うことは、WAFの個別設定が有効になっているようで安心しました。
件名 Re: Katrainについて
投稿日 : 2020/06/16(Tue) 12:45
投稿者 hope366
参照先
一度も設定を変更しなければ、ユーザーディレクトリ下の「.katrain」フォルダのconfig.jsonは作成されないので、それぞれが異なる設定でも動作するということですね。
これを検証するには同じバージョンで設定の異なる2つ以上のKatrainを用意する必要があります。
次回新しいKatrainがリリースされて、メガパックが更新された時に試してみたいと思います。
件名 結論かな?
投稿日 : 2020/06/16(Tue) 14:13
投稿者 Eba
参照先
設定の変更では無く、KaTrainを起動するとKataGoのチューニングが行われるので「C:Uses\ユーザー名\.katrain\config.json」が作成されます。
ですから、オリジナルのKaTrainを起動しても、メガパックのKaTrainを起動しても、同じ設定を読み込むので、どちらかのKataGoは動きません。
このため、オリジナルの設定を"config-org.json"という名前にし、メガパックの設定を"config-baduk.json"という名前にして、どちらかを使うたび、「C:Uses\ユーザー名\.katrain」フォルダで"config.json"と名前変更して使うのが、一番簡単と思われます。

私はSabakiの設定もそのようにしています。Sabakiの設定は「C:Uses\ユーザー名\Appdata\Roaming」にある"Sabaki"というフォルダにあります。Sabaki単独で使用しているものを"Sabaki-org"というフォルダ名にして同じ場所に置き、メガパックのSabakiは"Sabaki-baduk"というフォルダ名にして、どちらかを使うときは"Sabaki"と名前変更して使っています。
件名 Re: Katrainについて
投稿日 : 2020/06/16(Tue) 15:55
投稿者 hope366
参照先
なるほど、つまりlizzieはそれぞれのフォルダにあるconfig.txtに従いますが、KatrainやSabakiは特定の場所にある単一の設定ファイルで全てをまかなっているという感じですね。
Katrainであれば「C:Uses\ユーザー名\.katrain\config.json」、Sabakiであれば「C:\Users\ユーザー名\AppData\Roaming\Sabaki\settings.jason」ですね。
早速、「config-org.jason」と「config-baduk.jason」を作成してC:Uses\ユーザー名\.katrainに置きました。
任意のKatrain.exeを起動するときに、対応する「config-##.jason」を「config.jason」とファイル名を変更したら、オリジナルのKatrainもメガパックのKatrainも別々の設定で正常に動きました。

メガパックには2種類のSabakiがありますが、一方の設定を変更するともう一方を起動した時に変更内容が反映されていて「ん?」と思ったことがありました。
バージョンが違っても一元管理みたいな感じなんですね。
Katrainも別バージョンを持ってきて試しましたが、異なるバージョン間でも「C:Uses\ユーザー名\.katrain\config.json」で一元管理ですね。
TOP > 記事閲覧

- WEB PATIO , Modified by Eba -