2023/07/30

MiniTool Partition Wizard

 諸事情で自宅に溜まった不要HDDの処分をする事に。普通に検索すると以前はCCleanerでって事のようでしたが、なにやらやらかしてるのかCCleanerはお薦めされてません。その辺りが気になる方は各自検索してご検討下さい。で、少し前に削除したファイルの復旧などでもお世話になったMiniToolですが、MiniTool Partition Wizardってのがある。早速無料版をダウンロードしてインストール開始すると、

ダウンロードページには「無料版」と「プロ版デモ」、「サーバ版デモ」と分かれてます。当然ですが、「無料版」のダウンロードボタンからインストーラーを入手して起動すると上の画面です。あまりよく確認しないで進めるとプロ デモ版の無料体験が選択されてますので無料版のインストールを選択して続行します。あちゃ~、その次の画面あまり確認せずに(ちょっと気を抜きました)進めたらMiniTool ShadowMakerまでインストールされちゃいました😖 まあ、今後アンインストールする事にはなるかも。

Amazonから今月末に流れるポイントがあるよってメールが来てたので
WAVLINK SATA USB3.0 変換ケーブル 2.5インチ HDD SSD/3.5インチ HDD用 高速転送 UASP対応 最大18TB 電源アダプター付き SATA USB3.0 変換アダプタ Windows/Mac OS/Linux/Chrome OS 対応 B09PNFXH77
って物を昨日注文して本日届いてました。2,150円がセールで41%引きの1,273円で、ポイントが444ptあったので、829円で購入。

ちょっと前に320GBのドライブをOSでフォーマットして無事に終わりました。ああっ、これは動作確認がてらです😉 まあ、普通にフォーマット出来たので何かに使えたりするとは思うけど、余分な荷物を減らす必要があるので安全に処分する事を考えて今回のツールのインストールに至った訳です。

起動するとこんな感じです。しかし、初回起動してもう嫌な感じです。まあ、でも、悪さはしないだろうと...ディスク抹消処理を実行です。30分程で半分って感じなので500GBだと大体1時間な感じです。

追記 2023/7/30 19:32
結局大体90分で処理は終わりました。まあ、妥当なんだと思います。ただ、これしてるとHDDも熱持つんですが、HDDは処分予定なので特に問題ではないんですが、今回購入したアダプタも熱くなるので一応念の為連続使用は避けて負荷軽減して残り数台あると思うので処理します。

FLAMLとは

 Microsoft社製のAutoMLツールで、複数の機械学習アルゴリズムの中から最適なモデルとそのモデルの最適なパラメーターを自動でチューニングしてくれる機能を提供してくれるらしい。

A Fast Library for Automated Machine Learning & Tuning
これを利用する為にPython環境整備をして実際に動かしてみました。まあ、そんなに難しい作業ではなくサクッと出来るのは確かなんですが、そもそものゴールはあくまでも今作ってるアプリで利用する事なので、学習モデルをC#のアプリで利用出来なきゃ意味がない。って事で、散々調べました。まあ、結論から言えば、まだ自分には出来ない。

PythonでFLAML使って学習させて簡単にモデルを保存は出来ます。ただ、保存形式はPickle形式とかいわれるものです。で、C#側なんですが、このPickle形式は読めない。そこで実現出来そうな方法はPythonのFLAMLにて学習済みのモデルをOnnx形式で保存してC#側で読み込む。ここで問題があるんです。Python側にFLAMLを動かす機能は当然有ります。

import pickle
from sklearn.model_selection import train_test_split
from flaml import AutoML
import pandas as pd

targetName = 'ShinbaTime'
csvFile = targetName + '.csv'
modelFile = targetName + '.pkl'
onnxFile = targetName + '.onnx'
targetColumn = 'Souha'
df = pd.read_csv(csvFile)
X = df.drop(columns=[targetColumn])
y = df[targetColumn]
X_train, X_test, y_train, y_test = train_test_split(X, y)

automl = AutoML(task="regression", time_budget=10)
automl.fit(X_train, y_train)

まあ、ザックリですが、こんな感じにすれば、これまで使っていたCSVファイルから学習させる事は簡単に出来ます。本来はどのカラムが的な支持を与えるんですが、それ無しでも学習自体は問題なく(?)出来ます。

with open(modelFile, 'wb') as f:
    pickle.dump(automl.model, f)

とすればPickle形式での保存も簡単です。しかし、ここで欲しいのはOnnx形式なのでモデルをコンバートする必要があるんですが、これがなかなか難しい。

from onnxmltools.convert import convert_lightgbm

onnx_model = convert_lightgbm(automl.model, initial_types=initial_type)
onnxmltools.utils.save_model(onnx_model, onnxFile)

としても、

となり

from onnxmltools.convert import convert_sklearn

onnx_model = convert_sklearn(automl.model, initial_types=initial_type)
onnxmltools.utils.save_model(onnx_model, onnxFile)

としても

Unable to find a shape calculator for type '<class 'flaml.automl.model.XGBoostSklearnEstimator'>'.
It usually means the pipeline being converted contains a transformer or a predictor with no corresponding converter implemented in sklearn-onnx. If the converted is implemented in another library, you need to register the converted so that it can be used by sklearn-onnx (function update_registered_converter). If the model is not yet covered by sklearn-onnx, you may raise an issue to https://github.com/onnx/sklearn-onnx/issues to get the converter implemented or even contribute to the project. If the model is a custom model, a new converter must be implemented. Examples can be found in the gallery.

となり、お手上げな感じです。

2023/07/29

Microsoft.ML.AutoMLはちと保留

 現時点で一旦断念します。今後タイミングみてクレームってか報告かねて進展するのか試す予定ですが、ちょっと前にちらっとここでも書いたFLAMLに今振り回されてます。現代的な開発環境のVisual Studioに慣れ親しんできた身としては、マジ?って感じな環境なんですよねぇ。

いやぁ、今になってってか、まあ、そもそも現在メインで使っているC#自体もまだ経験2年無いです。って事は58歳になってから使い始めたと思いますが、還暦過ぎて新たな言語にとは考えてませんでした。まあでも、Visual StudioのインストーラーにPython入れるかの選択はあったので一旦入れたけど、そのままでは動かないんですよね。で、こんな面倒なの使いたくないな~っとね。しかし、何度も色々トライしてたAutoMLなんですが、進展が見込めないので仕方なくですが新天地に。まずは環境整備で最新版の3.11.4を入手してインストール。これ自体はコンソールアプリで、コマンドプロンプトで起動して使うインタープリター環境です。

Windows11 Pro環境でコマンドプロンプトと言われても、まあ、色々とあるんですが、Microsoftが多分推奨してるのはcmd.exeではないんですよね。タスクバーにあるスタートボタンをマウスで右クリックすると出てくるのは「ターミナル」と「ターミナル(管理者)」です。これ以外にもスタートボタンから全てのアプリで見つかるのは「Windows PowerShell」とかだと思います。しかし、これらは若干動作が微妙でコンソールアプリの中には問題があるものもあったりする事は認識してました。で、まあ、素のコマンドプロンプトのcmd.exeはスタートボタンをマウスで右クリックして「ファイル名を指定して実行」からします。

これが普通にcmdとしてOKボタンを押すと開きます。ちょっと小さくて分かり辛いと思いますが、
これが拡大したものです。そもそも、MS-DOSの頃からPC使ってるので、まあそれ程何って話ではないのですが、これ、本来日本語環境であればフォルダというのかディレクトリーというのがバックスラッシュではなく円マークなんですよね。ここ最近はあまり利用する事が無かったので何時からかは把握してませんが、その昔のWindowsでは普通に円マークだったと思うんですよね。で、実はこのコマンドプロンプトの起動時に「ファイル名を指定して実行」からでも管理者権限で起動する方法があるんです。OKボタンではなく、まあ、OKボタンでも可能ですが、Shift+CTRL+EnterかShift+CTRL押しながらOKボタンクリックすると「このアプリがデバイスに変更を加えることを許可しますか?」と確認はされますが、コマンドプロントが開きます。
なんと、管理者権限で起動すると円マークになっているのが分かるかと。これね、まあ、Microsoftのチョンボですよね😜
Python起動するとこんな感じです。その昔、NEC PC-8001とかNEC PC-9801とかで電源入れるとBASICインタープリターが「OK」って感じでプロンプトが出たのに似たもので、Pythonコマンドってかソースを記述して実行出来ます。で、こうなっていればVisual StudioでPythonプロジェクト作ってそこからPythonのプログラムも動かせたりします。

今回の目標はFLAMLを試す事なのでPythonで使うには
pip install flaml
として利用するっていうんで、Python起動して何度やってもエラーになる。いや、説明見てると普通にPythonのコマンドプロンプトかと思ったんです。しかし、これ、実はPythonのではなく、普通にコマンドプロンプトで入力するコマンドなんですよね。これに気が付くまで相当な時間が掛かりました😖

2023/07/25

奇妙な話

 AutoMLを少しでもってか最大限に活用すべく試行錯誤の日々です😜 ここまでの経験から、に頼って良いかは別として、LbfbsとSdcaの2つが今回の回帰に役立つ事は無いと断定。FastTree以外の4つはオプションで選択出来る様にしました。ログにはAutoMLクラス的なクラスのメンバーからトライアル番号取得して表示してます。これまでスタートすれば、当たり前に1番からスタートしてました。本日仕事の合間にちょろちょろ試してたんですが、スタートしてしばらくして停止後、OSの再起動までして修正適用後で再スタート掛けてもこのトライアル番号が前回から引き継がれてます。OSの再起動後もって事は自分の把握出来てない所でトライアル番号が保持され、って保持するにはメモリではなくファイルに保存され、それが使われてる以外に無い筈なんですが、全く把握出来てません。これ、学習何度も走らせて毎度結果違うけど、トライアル番号以外にも情報保持して何かしてるのか全く分からない状態での利用になってると思うと良い方なら当たり前ですが問題無いけど、ブラックボックスにもほどがある気がする。

更に気になる事は、リスタートってかまあ、毎回一旦終了してから元の本来のアプリから外部プロセスとして起動してるんですが、だいたい直後3回程度はトライアルがセーブされるんです。まあ、その時点のベストを保存する仕組みで、トライアル1番がベストなのは無視する様にしてますが、そもそもトライアル番号がリセットされないので毎回1個めがセーブされるのは別問題ですが、それ以外に数個が毎回なんです。いや、今毎回SMACでのリスタートにしてますので、だから同じパラメーターが使われ同じように改善してベスト更新されるからって話なのか...

1_143 10:47
2_145 10:47
3_146 10:47
4_153 10:48

1_306 12:03
2_309 12:03
3_311 12:16

1_322 12:23
2_324 12:23
3_347 13:00
4_599 14:32

1_626 15:12
2_631 15:13
3_636 15:25
4_637 15:25
5_643 15:32

これがセーブ回数とトライアル番号と時間の関係です。セーブされる番号は不規則に増え、時間も違うのでリスタート毎に違うパターンで進んでるとは思うんですよね。トライアル番号だけが何の理由か不明のまま保持されていると。これまで無意識にリセットされてたのに何でってもしかすると、今、ひたすら新馬戦用走らせてますが、微妙に内容が違うものが走らされるとリセットとかなのかはねぇ。これまであまりどちらか一方のみの連続スタートはしてなかったかもなので。

ああっ、現時点待機状態なので余裕かましてる訳じゃないが、いつまでもそんな状態が続く訳じゃなく、今後はまた辛い日々になるかもなので作業が進むか若干心配だけど...

2023/07/24

先程まる3日が過ぎました

 現時点で最長24時間4分10秒で、1時間以上2回、10分超え16回、1分超え34回で7,190トライアルです。ただ、ここまでセーブされたモデルは11個。最後にセーブされたのは学習開始から16時間後だったので、ここまでの72時間で、まあ、24時間掛かったトライアルもあるけど56時間はひたすらトライアルはこなしてはいるけど結果が出ずって事ですね😔 ログを見てるとほぼLbfgsPoissonRegressionRegressionのオンパレードなんだよね。なのにモデルとしては採用されない。だったらこれも除外してやれば更に効率上がって良いモデルが探せるのかなぁってね。

まあどうなのかは不明だけど、ちと72時間過ぎたけど中断。AutoMLが使うアルゴリズムは5種類なんですが、折角なくので全てにオプション付けようかどうしようかなんですがね。全てオフにしたらそもそも話にならないので最低1つ。まあ、1つじゃ多分自動でやるのも微妙なのかもしれませんが、ここまでの経験から問題を起こすLightGBMと微妙にメモリリークしてる気がするFastForest、更になんとなくだけどあまり採用されてない気がするLbgfsの計3つを除外出来るオプションを実装してみました。

ここ3日連続稼働してたので、一旦PC休ませて新規にスタートしてみようと思います。

独自ドメインのメルアド

 その昔ネット以前のパソ通の時代からPC触ってたりするのですが、パソ通では@nfityってかまあ、その前のNIFTY-Serveとかだったかとは思うけど、その流れからネットプロバイダーとして@nifty利用してましたのでメルアドなんかはプロバイダーのを当然使ってました。その後プロバイダーが変わる度にメルアドが変わるのも微妙なので独自ドメイン取得してメールサービスのみ契約するタイプにしたのがもう10年以上も前になるかと。当時は年二千円弱でしたのでまあいいかなっと思ったんですが、今日今年のドメインの更新案内が来てドメインの更新料金だけで二千円弱。プラスメールサービスが千円ちょいなのでまあ計三千円弱掛かりました。

そもそも普段は基本メインで使うメルアドはGmailだったりするんですが、確か金融機関なんかでフリーメルアドだととかって規制があったんだと思うんですよね。なので今更止めるのも微妙になってはいるんですが、老後の事を考えるとちょっと元気なうちに何とかしておかないとかなぁって思い始めてます。一応家族分のメルアド取得してあって妻も多分Appleアカウントとかで利用してるかと思うし、まあ、そもそも家族の銀行口座なんかでも使ってます。子供達は各自に判断任せて引き継いでしまえば良いとは思うけど、妻の分がねぇ😔 IT音痴だから普段も娘が妻のスマホの面倒は見てたりするからその辺りも踏まえて娘にお願いすれば良いとはいえ、独自ドメインのメルアド廃止してGmail一本化出来ないか調査始めなきゃです。

今回ちょっとびっくりだったのは、自分が持っている独自ドメインは.netなんですが、.comの方が更新手数料が安い😓 取得当時は同額だったから、そんなものだと空いている.netにしたんだけどこんな事なら.comの空きを頑張って探すべきだったなんてのは後の祭り。

2023/07/23

機能的には大体出来てきた

 そもそもの開発アプリですが、別にAutoMLが最終ターゲットではないんです😉 時代遅れになってるTARGETを卒業するぞ!って事で、自分が知りたい情報を表示して自分が使いたい機能をこなせるアプリを目指して開発してきました。現段階でザックリですが、実装は完了して来てます。

  • JV-Linkのデータ取得及びデータベース構築
  • 予想する上で観たい情報を見やすく閲覧
  • 即PATで投票
  • 何時まで必要かは疑問だけど旧JRA-VAN形式出力(ダビジェネ用)
  • 外部指数検証
  • より精度の高い予想
デバッグはまだまだ必要なのは把握してます。それでも一応の機能の実装は本日までに完了。ってか、本日は全ての投票まで自己アプリで完了しました。まだ未完成な部分もあり、デバッグも進めて近い将来に登録申請までたどり着けると良いんですけどね。

今後追加したい機能としては

  1. 自己投票結果集計
  2. その日の馬券動向(どのレースで万馬券出てるかとか)
  3. その日の予想結果
  4. 入力済み買い目の有無表示
まあ、これ以外は随時気が付いたら追加していきたいですね。残念なのは自分で即PAT関連の操作をアプリでさせるべく、Web連携方法試してますが、WebView2のみ進められてますが、本来多分HttpClientクラスで対処出来ればと思ってましたが、全くブレイクスルー出来ませんでしたので他力本願で外部ツール利用で実装しておいたので、若干そこが気がかりですが...

一昨日スタートした1週間学習ですが、昨夜日付変わってしばらくしてトライアルが嵌ってます。現時点で16時間程度。まあ、確かLightGBM無しで24時間程度嵌った事はあったと記憶してますのでこれ自体は待つのみなんだと思います。開始から30時間程度で4,075トライアルです。メモリは嵌りながらも微妙に上下してる感じで15ギガ前後で維持してるので、このままなら問題なく継続出来るかと。

2023/07/22

今更証明する意味は無いけど

 昨夜からオプションでLightGBMを外す事を可能にしたAutoMLで1週間学習スタート。ちと記憶が定かでは無いけど😓LightGBM外してれば問題なく完走は可能な筈なのかなぁ。昨夜スタート直ぐにアマプラで映画観た後にPCに戻ると信号無しでしたが、慌てず放置して入浴。戻ってみたら無事に画面表示されてた。ビデオ出力止まる程の処理をどのプロセスがしてるのか定かではないが、少なくともAutoML稼働中以外で経験は無いのでAutoMLが限りなく黒に近いかな。

ここまで24時間程度稼働してますが、流石にLightGBM外してると"failed"の回数がゼロです😁 最長1時間21分27秒ってのが1回のみ、10分超え12回、1分超え28回、11回モデルがセーブされてます。まあ、これまでも3日間学習とかはやってますし、LightGBMが無い状態では問題なく完走してますので、やはりこれまでの"failed"は全てLightGBMが原因だと言っても支障はないかと。まあ、問題は出来上がるモデルの精度がLightGBM無しでも...ああ、確か複勝率51%程度は行けてたので目指せ60%なんですけどね😉

取り敢えず発生した台風5号は特に問題にならないと思うので、今後後6日程度無事に行ける事を祈るしかないですね。

2023/07/21

Tower of Fantasyを引退

 半年以上は続けてましたが、本日iPhoneから削除しました。ギルドとかで挨拶してからにしようかとか、諸々考えましたが、単にザックリとアプリ削除だけにしました。いやね、もうiPhoneにしてから6年以上だったかと思いますが、ここまで色々なゲームで楽しませて頂きました。最長はトーラムオンラインかと思いますが、本当に基本ってか、絶対に課金はしないの精神(?)でやってきましたが、ただで沢山楽しませて頂き、空き時間を有意義に過ごさせて頂きました。

でもね、年齢的な肉体の限界なのか、マジで目が辛いんです。ちょっと前まではiPadもあったので、iPhoneよりは大画面で小さい文字も認識出来ましたが、iPadは機能的に微妙にアプリが落ちたりしてたので断念。ミラーリングで43インチのテレビに表示させたりしてたけど、やはり面倒だし、PS5のゲームは継続するとしてスマホは引退にしました。

C#の自動機械学習

 アイビー先生にC#で使える自動機械学習でAutoML以外にあるかって質問ぶつけると沢山返ってくるので色々と確認する。でもね、そもそもの質問がC#で使えるって言ってるのにとどのつまりC#で使えるのか分からないとか支離滅裂な回答ですorz いやまあ、これまでもアイビー先生には何度もやられてますので、それはそれで仕方ないかなっとね。世間で騒がれているChatGPTなんですが、そもそもネット上に存在しない情報を尋ねても答えられないのは当たり前ですね😉 今日も目の前でAutoMLが消えるのを目の当たりにして...Microsoftの別のプロジェクト(?)的なものも発見したけど、今年1月に最終リリースで今後はって見ると、じゃあ手を出さない方が良いのかなぁっとね。しかし、AutoMLではそんな発表はされてないので今後に期待しても良いのかどうなのかなんですけどね。

もう、自分自身が出来る事は無くなりつつあるかなぁ。それでもまだまだ諦められないので、まあ、現時点での選択肢としては、やはりLightGBMの取捨てですかね。って事で、入れるかどうかのオプション入れました😉 で、先程通常用の1週間学習をLightGBM無しでスタートしました。ああっ、アイビー先生にLightGBMを外すと精度落ちるか尋ねると落ちるかもって言われました😆 まあ、それでもプロセスが消えてなくなるよりは無事に完走出来るならと思ってスタートしましたので、これは結果待ちですね。

南の方で台風が発生するかもってのが若干気になります。1週間以内に影響があるとなると、また停電とかの心配もあるんですよねぇ。

2023/07/19

チューニング・アルゴリズム

 現在のAutoMLは最適なハイパーパラメーターを検索するために5個チューニング・アルゴリズムがサポートされているらしい。

  • SMAC - SetSmacTuner
  • グリッド検索 - SetGridSearchTuner
  • ランダム検索 - SetRandomSearchTuner
  • Cost Frugal - SetCostFrugalTuner
  • Eci Cost Frugal - SetEciCostFrugalTuner
AutoMLは既定でEci Cost Frugalを使うらしいので、これまでは学習は全てこのチューナーが使われてたって事になる。違いは諸々あるらしいが、エキスパートじゃないし、ファクター多過ぎて見当もつかないので、アイビー先生にどれがファクター多い時には向いてるか問い合わせてみると、SMACかEci Cost Frugalって回答でした。まあ、これ鵜呑みにして良いかは別として試しても良いのかもとは思う。ただ、根本的なLightGBMのって断言して良いかは微妙だけど、オーバーフローやアウトオブメモリー回避にはつながらない。

あっ、で、前々からLightGBMを気にしてるもう1つの理由なんですが、

2023/07/19 18:24  AutoML.exe
2023/07/19 18:24  AutoML.pdb
2023/02/01  8:18  FastTreeNative.dll
2023/02/01  8:18  LdaNative.dll
2019/01/18  9:45  libiomp5md.dll
2022/10/04  7:36  libSkiaSharp.dll
2022/10/14  2:06  LibTorchSharp.dll
2019/11/27  3:28  lib_lightgbm.dll
2019/11/27  3:28  lightgbm.exe
2023/02/01  8:18  MatrixFactorizationNative.dll
2021/07/02  1:34  MklImports.dll
2023/02/01  8:18  MklProxyNative.dll
2023/06/17  2:16  onnxruntime.dll
2023/06/17  1:34  onnxruntime.lib
2023/06/17  2:16  onnxruntime_providers_shared.dll
2023/06/17  1:28  onnxruntime_providers_shared.lib
2023/02/01  8:18  SymSgdNative.dll

これがビルドを発行した時の更新日付なんですが、何故かLightGBM関連と思しき2つだけが2019/11/27と群を抜いて古いんです。自分がビルド方法を理解してないのか何なのか全く分からない。この時にビルドされて完璧なのでそれ以降ビルドされてないって事なんだろか?

まあ、今回このチューニング・アルゴリズムを選択出来る様に修正掛けてみました。

experiment.SetGridSearchTuner();

とすればって説明だったので学習直前に入れてみると、最初のトライアルで固まりました。どうやら指定方法が間違っている模様。

experiment
    .SetPipeline(pipeline)
    .SetRegressionMetric(RegressionMetric.RSquared, labelColumn: columnInference.ColumnInformation.LabelColumnName)
    .SetTrainingTimeInSeconds(Convert.ToUInt32(nudTime.Value))
    .SetDataset(trainValidationData);

元々はこんな感じでやってましたので、別々にやると吹っ飛ばされるのかなっと判断して、

experiment
    .SetGridSearchTuner()
    .SetPipeline(pipeline)
    .SetRegressionMetric(RegressionMetric.RSquared, labelColumn: columnInference.ColumnInformation.LabelColumnName)
    .SetTrainingTimeInSeconds(Convert.ToUInt32(nudTime.Value))
    .SetDataset(trainValidationData);

としてやれば動くので多分上手く指定出来たのかなっと。

2023/07/17

ちょっとした自分のバグが

 諸々の情報を見ていてFLAMLなるものがAutoMLとは別にMicrosoftが手掛けてかなり便利らしいって話で、おお!っとなって少し調べてみるとPython用らしいorz だからAutoMLが進まないのかとか勘ぐってしまう。今更Pythonって言われても流石にちょっとその気にはなれないです。せめて同等なレベルにMicrosoft.ML.AutoMLを持って行ってくれる事を願うばかりです。

で、気が付いたのは、何度かファクター追加してたんですが、この追加作業でのバグを発見。いや、再度Model Builderも試すべきかな~っとCSVファイル覗いてみて、あれ?先日追加した頭数が無いなぁっとソース眺めてて気が付きました😓 ここまでの学習作業は全て何だったんだろ状態に。しかし、このバグが根本的なAutoMLのエラーの原因では無いかと思うので、一応まだ24時間学習とかはして、その結果を参考にそれ以上を検討する事になるかと。新馬戦用のCSV出力は相変わらず直ぐに終わるので取り敢えず1時間学習動かしながら通常用CSV出力してます。こちらも出力後に1時間学習はしてみますが、24時間学習を何時やるかは微妙。明日から新しい会社の勤務となるのでPCにあまり負担を掛けたくないので週末にでもやるかも。

メモリがどれだけ必要なのか

 今朝方57ギガ程度つかんで結局オーバーフローでトライアルは"failed"になってたんだけど、少し前に1時間以上掛かって徐々にメモリ増えてるな~っと思ってたけどEdge動かしてたりしたのが原因かは不明だけど、Edgeがページ表示出来ませんってなってAutoMLのプロセスは消えてなくなってた😖 Preview版無しでもダメってまあね、そもそも約40時間弱は動いてはいたけど"failed"の回数は40回弱だったかと。メモリ不足だろうがオーバーフローだろうがやはり起きる事自体に問題がある。やはり次のバージョンが出るまではLightGbmを無しで行くのが吉なのかなぁ。ちょっと考えてみます。

2023/07/15

考えうる全てをしたつもり?

 根本的な問題のあるAutoML自体のPreview版は避けて、他のものはPreview版で可能性のあるものは試そうと本日7時間程度進んでいた学習プロセスも先程亡くなりました。前回の失敗を踏まえて、自分でとどめを刺すのだけは回避するつもりでモニターをPCに戻すと信号無し状態でしたが、今は既にスクリーンセーバー機能もオフにしてるのでなんらかのプロセスが後処理か何かでビデオ出力出来ない状態だったのかもですが、取り敢えず我慢してそのまま入浴して戻るとAutoMLプロセスは消え、PC画面は表示されていました。

挫けてられませんので、根本的にPreview版は断念。現状の正規リリースのみで再ビルドしてみました。

Microsoft.ML 2.0.1
Microsoft.MLAutoML 0.20.1
Microsoft.ML.CpuMath 2.0.1
Microsoft.ML.DataView 2.0.1
Microsoft.ML.FastTree 2.0.1
Microsoft.ML.LightGbm 2.0.1
Microsoft.ML.OnnxRuntime 1.15.1
Microsoft.ML.Recommender 0.20.1
Microsoft.ML.TimeSeries 2.0.1

今回関連しそうなものを増やしてビルドしてみました。ぶっつけで1週間学習スタートさせて、まあ、行ける所までいくしかないかと。先ずは明朝どんな感じなのか、そもそも継続してくれてるかも心配ではありますけどね。

ちょっとした油断?

 昨夜ちょっとしたバグってかミスを発見したので修正して学習用CSVファイルの出力しなおしをしました。まあ、"登録頭数"を使うか"出走頭数"を使うかって話なんですが、出走前に取消とかあれば当然2つの値は変わります。学習には走破タイムを対象にしてるので取消されたデータは不要と思い"出走頭数"使えば問題ないと思ってましたが、若干諸々問題が出るので"登録頭数"に。いや、そもそも"登録頭数"を使う様にしばらくやってたと思うけど、今回のファクター追加時に勘違いして"出走頭数"に変えちゃってたんです。なので、そこを修正しての事です。

で、直前の通常用CSV出力は確か20分程度に短縮されてた気がしたんですが、昨夜は1時間弱だつたかな。特に大きな変更とかしてないと思うんだけど、まあ、若干出力進行状況を表示する為の処理は追加しましたが、処理速度に影響するものとは思えないんですけどね。

まあ、そのCSV修正前には特に24時間問題なく動いてたので、CSV出力後に通常用の1週間学習スタートさせて就寝。今朝確認すると特に問題なく動いてると思ってました。前回の24時間は2つ並走させてたけど、まあ、念の為通常用のみ単独でなんです。8時少し前にトライアルが長引いているのは確認済みで朝食。その後ネットで調べものしながらVisual Studioが見た事のないエラーをメニューバー下辺りに表示してて「ん?」となったんです。単にちょっとしたプロジェクトを開いてあったんですが、それ以前に特に問題は表示されてなかったんですが、そのエラーを削除するのに×をクリックしたりして...でもまた出たり😓 なんだこれ~ってなりながらEdgeに戻って「ん?」てね。Edgeが反応しないのでタスクマネージャーでって、その前にVisual Studioを終了するかって事で終了させた時にAutoMLプロセスが亡くなっている事に気が付きました😖 まあ、既に多分2時間程トライアル行ってたのでメモリも相当つかんでたかと思いますが消えた後では確認のしようもなかった。やはりPreview版はやめるべきかな~っと悩んでます。Preview版リリースが5月17日だったかと思うのでそろそろ2ヶ月経過します。早く次のバージョンがAutoML含めてリリースされないと、どうしようもないかも。いや、LightGBM.exeが新しくならないとって事なのかもですけどね。

ログみると大体時間が掛かっているのはLightGBMとFastForestなんです。で、まあ、FastTreeが絡んでるのかと思って入れてるんですがね。

2023/07/14

まずは24時間学習

 途中で消えることなく無事に完走はしました。ただ、その結果が気になる所ではあります。

新馬戦用
最大16分59秒 10分超え5回 1分超え45回 セーブ11個 エラー17 全15,298
7/13 13:39
7/13 13:45
7/13 14:04
7/13 14:19
7/13 14:19
7/13 23:40
7/13 23:52
7/13 23:53
7/14 0:35
7/14 0:37
7/14 0:37
開始から11時間のトライアルがそのまま結果となってます。
2023/1/1~2023/6/30で検証(学習データが2004/1/1~2022/12/31の為)
予想[71] 的中[30] (42.25%) 購入[¥49,000] 払戻[¥31,870 (65.04%)]

通常用

最大48分30秒 10分超え2回 1分超え15回 セーブ6個 エラー7 全426
7/13 13:42
7/13 13:32
7/13 13:44
7/13 13:48
7/14 1:38
7/14 3:38
開始から14時間のトライアルがそのまま結果となりました。
2021/1/1~2022/12/31で検証(学習データが2004/1/1~2020/12/31の為)
予想[6912] 的中[3444] (49.83%) 購入[¥4,616,500] 払戻[¥3,590,840 (77.78%)]

検証結果は可もなく不可もなくって感じですかね。問題はモデルの更なる学習でより良い結果が得られるかです。

2023/07/13

いくつかの疑問は未だ不明

 少し前に諸々の修正加えてたおかげで、通常用のCSVの出力も70分程度で終わってくれました。以前は4時間とかそれ以上だった記憶もある様な気がするので、その辺りは修正加えて良かったと実感出来ました。ああっ、SQL初心者なので、JOINの仕方にも微妙に理解が十分じゃなかったのでその修正もしたりしたのも功を奏した感じはあります。不必要な"FULL OUTER JOIN"とかを単純な"INNER JOIN"にする事で処理速度向上になりました。

新馬戦用は現時点でもまあ順調そうです。開始から4時間強で10分超え1回、1分超え14回、トライアルセーブが5個で、エラーが3個。まあ、若干気になるのは通常版との並走が多少影響してると思われるアウトオブメモリーがありましたが、プロセスが消える程のものではなく、ログに出るレベルの物で済んでるのは幸いです。かたや通常用は開始1時間ちょいで既に3時間半程1つのトライアルで嵌ってるので、これがエラーになるのか普通に次に行くのかは別として、24時間を有意義に学習してくれればと思います。ここまでってかまあ1時間しか実質動いてないので1分超え3回で、セーブ4つでエラー1つと悪くはないのですが、このまま24時間になった場合はちょっと再トライしなきゃになりますねぇ。

つよくてニューゲーム

 FFXVIクリアしてまだ90%だったけど、英語でクリアしてたので2周目は「つよくて」だけどストーリーフォーカス😁の日本語で始めてしばらくして確認したら100%になってた。獲得トロフィーが増えたからなのか何なのかは不明だけど、まあこれで一応はクリアって事なのか。しかし、今のPSのゲームってトロフィー・コンプ? 8か月続けているGT7でも確か80%チョイだったかなぁ。GT7ではライセンス全て金とか写真を100枚とか諸々の面倒なトロフィーがあるので全部は無理とは思ってますが、そもそも、そこ目指してる訳じゃなくGT7は単に楽しんでます。

それと比較するとFFXVIは2周目での収穫は、まず、英語のセリフがややたどたどしく聞きなれない国や登場人物の名前諸々で微妙だった部分が日本語だと少しマシかなぁ。口の動きはあれだけど、セリフは日本語の方がスムーズな気がします。英語版の声優を悪く言うとかではなく、セリフ自体が微妙な気がするので日本語版の声優との差をとやかく言いたくはないですが、日本語の方がやや良い気がする。英語では確か無かった戦闘終了時の掛け声っていうのかクライブの声が若干、あらっ、英語版の時にはこんなの確か無かったよなぁって感覚にはなりました。声優の声質的な違和感は英語版→日本語版であまり感じないのは、そんな人選してるのかなぁっと。

1周目の時には登場人物の関連とか、そもそも誰だよってのが、2周目だと把握出来てたりするので、えっ?、これ浮気してたの?っとかねぇ。今時の不倫じゃないが、そんな一面も有ったりしたのを再確認出来たり、どの国にどのキャラが属してるとかも把握出来ながらのストーリーの進行だと、理解度が深まるのかなぁっとかね。まあ、2周目まではやるけど、FFチャレンジには行かないと思います。

ここに来てファクター追加

 新馬戦用学習ももう少しで丸3日というこのタイミングなんですが、昨夜、ふと思った事なんですが、予想ファクターに枠番を追加してたんですが、これでまあ内枠と外枠とかの関連を予想に反映されるかなぁっと、でも、頭数って予想ファクターに必要かなっとね。小頭数と多頭数では違うんじゃって事も気になったんです。で、ファクターが変更になればここまでの学習は全くの無駄なので、新馬戦用学習も中断しました。

新馬戦用のCSVはまああっという間に出力されますが、相変わらず通常用は長時間掛かると思うので、その後それぞれの学習もやり直しorz 処理的な話をすれば、今回は出走頭数の追加なので既存のCSVにそれだけ追加するプログラム書けば処理も高速に済むとは思うけど、その為のコーディングをするのも時間掛かるし二度と使わないだろうしって考えたら追加項目を入れた処理を再度動かすのを選択しました。

この修正を入れ込んでいる時にちょっとしたバグも発見。CSV出力用のマッパーの修正漏れだったんですが、これがどの程度影響してたかと、予想ファクターの枠番追加時に新馬戦用の修正漏れとかがあったかも。まあ、その辺りも含めてどんな結果になるのかはちょっと楽しみなんですが、週末の予想に1日学習は間に合うかなって感じで、それ以上は今後徐々に作業進めます。

しかし、予想ファクターはもうこれ以上ないよなっと思っていたのに...今後もまだ追加があるのかないのか、ちょっと今一度JV-Linkのデータ仕様書眺めながらこれ以上もう本当に無いのか確認しなきゃダメですね。通常用は現時点で59項目です。現時点でも過去出走データの前走のみをもっと増やすとかも検討材料ではあるんですが、それ以外でも同レース出走の他馬データがあれば比較してとかもありかな~っとかあるんですが、これもデータ量増えるしちと大変なんですよね。馬個々のデータに出走レース情報もあるんだから、学習時にこっからここまでの馬が同レースだからみたいに出来れば良いんですがねぇ。学習ってか評価ってかを自分でメソッド書く方法もあるっぽいけどこれも大変そうなので、今は考えないで行きます😓

2023/07/12

自分の失策ですが

 今年の誕生日で還暦となりここ9年ちょい務めた勤務先を定年退職してるんですが、まあ、これは今の時勢から言えば65歳までは働くでしょってのは当然の話です。諸々の事情をここにつらつら書き込むのも微妙なので割合しますが、遊んで暮らせる訳はないです。なので、週明けから新しい勤務先に雇用されます。この書き方が微妙ですが、まあ、年齢的に雇用してくれる企業ならって事で内定承諾してるんです。もうね、贅沢は言えませんが、ちょっとえぐいのは間違いないかと。そもそも、スタートダッシュ後の自分の社会人としての諸々のしっぺ返しだと受け止めたりしてますが、人生の分岐点での選択ミスからの結果として...家族に迷惑だけは掛けない様にしたいと思ってます。

年齢的にも自分の望む職とか諸々の欲望は全て捨てて70歳位まで元気なら働き続けなきゃなので、良い悪いじゃなく単に雇用してくれるって理由だけで勤務します。で、何ってここまで自由にというか、ふんだんに時間を費やして来れましたが、勤務時間はこれまでの様に自由にやりたい放題使えなくなるので若干自分の作業は進まないかもですが、何にしても今の学習プロセスが無事に行けば来週月曜日に終わるんで、入社前に報告は出来ると思います。

一旦まとまれば、アプリをJRA-VANに登録申請してみようかと思ってます。

2023/07/11

当初LightGBMを使わなかった理由

 現時点でAutoMLは別プロジェクトにして外部プロセスとして本来のアプリから起動して利用してる事は書いたと思います。開発中のアプリがJV-Linkを利用していて、JV-Linkが32ビット環境のみなのでターゲットを「x86」にしてる事も書いたと思います。OSはWindows11 Proを使ってますので環境自体は64ビットです。世の中にはまだ沢山のWindows10やそれ以前のバージョンのOSが稼働するPCが存在してるかとは思いますが、基本32ビットアプリも64ビットOS上で稼働する様になっている模様です。当然ですが、64ビットアプリは32ビットOS上では動かないかと思います。

開発中のアプリに機械学習組み込もうとやり始めモデルビルダー辺りで32ビット環境ではNGって事でモデルビルダーを諦め自前でAutoMLを組み入れたんで、32ビット環境で動かしてました。多分これがLightGBMを使用しない設定にしてた理由かと。どうやらLightGBMって64ビット環境前提っぽいですね。実は未だにAutoMLをアプリに組み込んであります。時間の短い学習なら32ビットでもって思ってたんですが、AutoML部分は今後削除しなきゃかもです。

今現在、新馬戦用の学習プロセスを稼働してます。先程24時間経過しました。トライアルが19,000超えた感じです。ここまで1時間超えが1回、10分超えが11回、1分越えが26回です。"failed"なトライアルが17回ありました。これの時間とかはチェックしてませんが、数十分なのは多々あるかと。長々と時間掛けてオーバーフローですとかアウトオブメモリーですって感じです😓 で、ここまでセーブされたトライアルは5つ。最後が20時間程前なので、24時間といっても4時間程度後に最後がセーブされてますので、仮に24時間の学習だったら4時間学習と変わらないものになりますね。まあ、あくまでも今回はって事ですが。開始して数時間はセーブされるけど、そこからそれ異常なモデルはなかなか見つからないって事なんだとは思うけど、今まで1時間学習、3時間学習、10時間学習、etc.とやってましたが、これ、結局セーブしてなかったので、どのタイミングで出来たモデルなのかで、トータル学習時間は意味ない指標なのかもです。以前1時間学習を計5回行った違いとかがって書き込んでますが、どのタイミングでのモデルなのかが全く不明なので...今回の学習プロセスは一応また1週間でスタートさせましたので、このままいくと17日(月)の昼に終わる予定。ただ、もう何度も途中でプロセスが消えてますので、Preview版とかに変えているとはいえどうなのかは不明です。

今試している機械学習

 Preview版で問題だったのはどうやらMicrosoft.ML.AutoMLのPreview版だった模様。

Microsoflt.ML 3.0.0-preview.23266.6
Microsoft.ML.AutoML 0.20.1
Microsoft.ML.FastTree 3.0.0-preview.23266.6
Microsoft.ML.LightGbm 3.0.0-preview.23266.6

現在試しているのが上記4つでビルドしたやつです。下2つはパッケージ眺めてて、なくとなく入れてみた。いや、特にLightGbmなんです。そもそもの問題はこれが少し前から当初使わない指定だったのを使う様に変えトライアルで"failed"となるのを経験。まあ、今のビルドでも"failed"には何度もなってますけど😔 下2つ入れた効果があるのかどうなのかは分かりません。ネットで検索してもほぼヒットしませんので、本当のコアな方が使っているのみで公にはなってないのかも。それでもMicrosoft.ML.LightGbmのダウンロード数は2.9Mです。本体のMicrosoft.MLが4.36Mに対して半分強なので自分の様に訳も分からず取り敢えず入れてみてるってパターンなのかは不明ですが、にしてもずいぶん多い数だと。一連のpreview版は今年の5月17日に公開されてるんですがちょっと気になる事も。プロジェクトビルトして発行して自分の本来のアプリから外部プロセスとして起動して使ってます。どこかでシングルファイルとしてって指定してるんですが、結局13個のファイルになるのも気になっては居るんですが、その中に、プロジェクトのターゲットの.exeファイル以外にもう一つ.exeが出来るんですが、lightgbm.exeです。更にこの更新日付が2019/11/27って随分古いんです。それもあって今回Microsoft.ML.LightGbmを追加してみてるんですが変わりませんでした。こいつを新しいバージョンに出来れば、もしかすると"failed"が回避出来るかなっと。

2023/07/09

FFXVIクリア?

 本日ようやくエンディングまでたどり着きました😁 昨日まあラスボス一度挑んで疲れて断念。本日午前中は用事で出掛けた後再度ラストに挑んで老体には非常に負荷が掛かりしんどかったですが、何とかクリア!エンディングはGT7もそうでしたが長い😖 映画でもエンドロール全て見る方はまれだと思いますが、ゲームのエンドロール最後まで見る方もごく少数だと思います。まあ、クリアすると第2ラウンドってなりますが、これはまあおまけでやるやらないはオプション的に選択かとは思います。

RPGでエンディングまでプレーするのはFFX以来かな。FFXはPS2でしたが、あの頃はエンディング最後まで見たかは記憶が定かでないです。あっ、更にさかのぼってファミコンの頃にエンディングまでやったRPGがあったかどうかの記憶は...って感じなんですが、FFXは良かったです。FFXVIは?FFXは会社の後輩の借りてやったので実際自分で出費してませんでしたが、今回は自分としては相当な投資した感じのなかで、正直価格に見合うかと問われたら、回答はノーですね。感動モノの映画でもここまでの出費はないです。今回のストーリーは可もなく不可もなくですが、ならコスパは?ってなると、今時の大作映画でもここまでの出費は必要ないし、そう考えると感動的な観点ではコストには見合ってない。まあでもPS5で、その可能性をって観点ではまあ合格点だとは思います。FFXの頃と比べればグラフィクス的な観点ではねぇ。30年という技術の進化諸々で、いいものを見させて頂きました。

PS5もいよいよマイナーチェンジ版の噂も出始めて、次世代への期待とかになってくるんだと思うけど、その頃は流石に年齢的には賞味期限切れでゲームからは離れてる気がしますが、ガキの頃からゲーム、まあビデオゲームは好きだったので今後の動向は気になりますが大作はこれが最終になるかも😉 ちと気になったのは、エンディングみても90%となってましたのでこれ、トロフィーの獲得が足りないからなのか2周目で更なるって事なのかは気にはなるかも。

2023/07/08

Preview版とはいえテストされてるんだろうか?

 Preview版なんですがダウンロードは400万超えとかなのに...あっ、でもMicroosft.MLのダウンロード数なんで、Microsofot.ML.AutoMLの方はまだ百万には届いてないです。でも、そんな数のダウンロードはされててもダウントードするだけで使われてないのかな?それとも自分が使いこなせてないのかな?コードは全く変更してないんですが、NuGetでパッケージのバージョン変えただけなので、まあ、バージョン変わると使い方が変わってコード変えなきゃダメって事ならそれを調べなきゃなんですが、あまりドキュメントとかもないんで探さなきゃですね。しか、AutoMLで使ってもモニターが悪さしてるのか何なのか、タイマーコントロールとかが機能させてもらえない。これまで普通に中断ボタンも使えたし、ログもスクロール出来たりとタスクが別スレッドでキッチリと動いてたと思うんですが、それが出来なくなってる感じです。

まあ、そんなのも分かりながら取り敢えず12時間学習させてって思いながら就寝。朝起きるとPCファンの音がしてないのでモニターの電源入れるとプロセスが消えてましたorz 30分とかは問題なく動くんですが、長時間(?)だとダメなのかなぁ。Preview版は止めます。Preview版があるって事はそのうち正式版もリリースされる可能性があると思うので待つしかないですね。Preview版から元に戻すと当然ながらモニターも問題なく機能します。

2023/07/07

少なくとも現時点ではLightGBMはNG

 丸4日が過ぎて、まあ、ここまでのトライアルの少なさにはいささか疑問も持ちながら、それでも我慢し続けてたんですけどね。4日と6時間過ぎまでは動いてるのは確認してたんですが、アマプラで映画1本視聴後PCに戻るとAutoMLの姿が消えてました😭 これは明らかにLightGBMを有効にした見返りですかね。

自分自身が出来る事はやってたつもりです。しかし、これ以上はどうしようもないので禁断のプレビューで行ってみます。

Microsoft.ML 3.0.0-preview.23266.6
Microsoft.ML.AutoML 0.21.0-preview.23266.6

これが現時点での最新な筈です。これでビルドして再挑戦してどうなるか😓 今回試した途中のトライアルのセーブで分かった事なんですが...

7/3 11:00頃 AutoMLプロセス開始
7/3 11:12 Trial 8 セーブ
7/3 11:14 Trial 12 セーブ
7/3 13:10 Trial 23 セーブ
7/3 13:30 Trial 67 セーブ
7/4 8:35 Trial  2,134 セーブ
7/5 10: 30 Trial 2,574 セーブ
7/7 19:00頃 プロセス異常終了

確かTrial 8,000は超えてたとは思うんです。前にやった5日間学習では18,000超えのトライアルこなしてたのですが、今回数時間やってトライアルがエラーで次に的なのもあったし、数時間まで行かないまでも数十分後にとかは多々ありました。そんな訳でトライアル数もこれまでの様にはこなせなかったんだと。しかし、丸2日はセーブ無かったのでその間のトライアルは無駄?それともそれを糧に改善されそうなトライアルをひたすら試してるんだろうか? 最後にセーブされたモデルで検証してみたんですが1点目の複勝率が46%程度とぼちぼちな物でした。

プレビューでビルドした状態でデバックで30分動かそうとしたけど、ハング。1分で再度チャレンジすると動きが微妙ながら終了。いや、ここまでPC4日超えの連続稼働でしたのでちと一旦休ませてみます。

2023/07/05

またもやメモリ不足

 今朝確認した時はまだ動いてたんですが、メモリを40ギガとかつかんでたので気にはなったんです。それでもトライアルがエラーとかで次に行ったりしてたのでそのうちにと思いながらゲームしてPCに戻るとトライアルのエラーではなくってか、トライアルもエラー出してたかな。それに加えてプロセスもエラー出してて継続するか終了するか的なもので継続選択するものダメっぽいので終わらせた。まあ、取り敢えず通常用は生きて継続してるのでこのまま終了まで突っ走るしかないのですが、LightGBMが悪さしてるのが気になるなぁ。どのアルゴリズムのトライアルでって表示されずに単にエラー吐くので、そこもちと修正してみるべきかもですが、だからって自分で対処出来ないし、出来るのはアルゴリズム自体の排除なのでどうなんだろって思います。まあ、今回の結果を踏まえて判断するしかないですね。

新馬戦用は結局初日の12時間経過した辺りのモデルが7個目のセーブでそれ程でもない感じがしますので、これはまた後日実行したいとは思うけど、普通に同じエラーでプロセスが死ぬ気もします。AutoMLのバージョンアップまで様子見するしかないのかなぁorz

オーディン撃破!

 FFXVIもプレイ57時間で82%かな。ボス戦が毎回長いです😭 ゲームも終盤ですがまだまだ操作になれない。召喚獣のアビリティも把握しきれない。2週間経ちますがちょっとマンネリ化して来た。まあ、どんなゲームでも2週間もプレーしてれば仕方ないかも。それでもエンディングは観たいので続けるしかないですね。ここ最近はスマホのRPGばかりで、ストーリーがなかなか出来たものもあるんですが、結局最後までやってないのが実情。1つのゲームを数ヶ月プレーして、新しいのがリリースされると良ければ移る感じなのでってか、そもそも、スマホとかのRPGにエンディングとかあるのかは疑問だけど😓

スマホのゲームとかでは基本無課金貫いてるので移る時にもそれ程抵抗は感じない。課金してるとそれまでのって気持ちになると思うけどすっぱりと止めます。ああっ、でももう数年前になるけどトーラムオンラインは3年以上プレーしてたかな。これまで一番長かったのがFFXIの2年ちょいだったのに大幅に記録伸ばしましたが最後はちょっとダレた。

感動(?)のエンディングまでもう少し頑張ってみます。

2023/07/04

分からないまでも解っている事

 通常用の5日間学習はもう1ヶ月程前にやってたんですが、実は今回AutoMLMonitorを諸々した時に変更を施しました。AutoMLやり初めにちと記憶は薄れてるので詳細までは不明なんですが、パイプラインの指定で"useLgbm: false"を指定してましたが、これ学習で使うアルゴリズムを使わない指定です。まあ、元々いくつか存在しててそのどれを使うとかも含めてトライアル実行してるんですが、そのうちの1つですね。で、特に問題ない感じで学習出来ては居ましたので気にはしてなかったんですが、ふと今一度本来の姿にじゃないですが、この指定を外したんです。これで得られる学習済みモデルの成績がどうなのか気になるの、それを知る為もあり今回も1週間に再チャレンジしてるんですが、そのアルゴリズム無しでやった5日間ではそもそもトライアルでエラーが起きるとか無かったんです。しかし、既に24時間は経過してますが、開始してしばらくして気が付いてはいました。

2023/07/04 08:35:56 > Working on trial 2135 ... 2135 failed with exception Arithmetic operation resulted in an overflow.

2023/07/04 12:43:08 > Working on trial 2136 ... Trial 2136 finished training in 60sec

                                        with pipeline ReplaceMissingValues=>OneHotEncoding=>Concatenate=>LightGbmRegression

2023/07/04 12:44:08 > Working on trial 2137 ... Trial 2137 finished training in 15sec

                                        with pipeline ReplaceMissingValues=>OneHotEncoding=>Concatenate=>LightGbmRegression

2023/07/04 12:44:23 > Working on trial 2138 ... 2138 failed with exception Exception of type 'System.OutOfMemoryException' was thrown.

2023/07/04 13:26:22 > Working on trial 2139 ... 2139 failed with exception Arithmetic operation resulted in an overflow.

これ特に今日何度も連発してたタイミングのログなんですが、こんな感じだからバージョンがまだ0.20.1とかって事なのかなぁ。プレビューならこの後のバージョンもあるんですが、それを試すべきかは分からない。ただ、少なくとも当初除外したアルゴリズムが絡んでいるのは濃厚だと思われます。LightGBMアルゴリズムってどんなものなのか全く知識はないですが、グーグル先生に問い合わせると教えてくれますね😉

開始から30時間は超えてますが、新馬戦用が15,743トライアル、通常用が2,234ってな感じです。途中でセーブされているのは7個と5個。今の所ばんばんセーブされる事はないので、まあ、ディスクの空きとかは心配無用かも。

2023/07/03

最終日に自分でとどめを刺した?

 先日書きましたが、1週間学習最終日の朝にモニターをオンにするも信号無しだったのでマウス動かしたりキーボード叩いたりは当然したけど、いや、PCの電源は夜通しオンだったと思う。朝もPCの電源LEDは点灯してファンの音もしてたので問題なく稼働してたと思いながら、スクリーン表示が戻らないのでCTRL+ALT+Deleteで...これって自分でリセット掛けてるんですよね😓 いや、今日も新たに2つの1週間学習動かしてるんですが、タスクマネージャーのCPUが度々100%に張り付いてるんです。で、スクリーンセーバーがこれだとスムーズに動かない事を目の当たりにしました。復帰までに普段以上に反応が悪いです。もしかすると日曜日の朝もこの状態だったのを我慢しきれずに自分で終わらせたかもとorz

取り敢えずスクリーンセーバーは切りました。Windows Updateも1週間しない様に設定。画面オフを30分にしてましたが、自分で手動で切るのでこれも「なし」にしたので、今回はモニターの電源入れればPC画面に普通に戻る筈です。

今回の2つのプロセスはまあ通常用は既に1回3時間37分とかあったけど、新馬用は最長23分と、軽快にここまで6時間以上経過して2,500トライアル以上消化してるので、まずまずの出だしだとは思うんです。今回はAutoMLMonitorに手を加えたのでベストを吐き出しますが、興味深いのはどちらも2時間程度で4つ吐き出した後にダンマリです。つまり、ここ4時間はそのベストを超えるものが出てきてない。これをひたすら続けて時間が来た時にベストがって事ですかね。

AutoMLモニターのReportBestTrial

 昨日はあまりのショックで作業する気にはなれなかった。でも、そうもいってられないので今一度AutoMLMonitorのソースを眺めているとReportBestTrialというメソッドは初めから用意されているが中身は単にreturnのみで何も書かれていない。試しにログ出力する様にしてみると、どうやら名前の通りベストトライアルだった時に呼ばれる事が分かった。時間で出力するのは色々と面倒ってかまあ不可能じゃないけど、取り敢えず毎回そのトライアルセーブしておけば今回の様な万が一でもそこまでのベストがだらだらと出力されているので最後のは少なくとも見れる事になる。

って事でもしかすると膨大なトライアルがセーブされてしまうかもだけど、6日もやって何も残らないよりは終わったら消せば良いし、何なら途中で余分なのは消せるのでこの修正入れたのでもう一度1週間やってみます。まあ、途中のを確認も可能になるし試すしかないですね。

まあ、そんなの実行しながら開発も進めます。気が付いたら出馬表表示に1分以上掛かったりする使い物にならない状態になってました。まあ、SQLやら諸々いじってたんですが裏目に出た感じです😖 せめて10秒程度で表示されないと話にならないかと思うけど、JOINしてクエリーが5秒とか掛かるのでそこをまずどうするか考えてみようかと思います。

2023/07/02

言葉が無い...

 今朝起きてモニターをオンにしても信号が無いって😓 PCは夜通し稼働してたと思うけど、寝てたので何があったのか定かではないです。昨夜寝る前には2つのプロセスは特に変わりなく稼働してたし6日4時間経って残り20時間だなぁっと楽しみにしてたんですが、この6日ってか約1週間が無駄になりました😭 真剣に学習途中でもそこまでの成果を保存出来る様に考えないと6日の学習成果でも残っていればまだ救われたと思うんですよね。ちと方法ってか可能なのか調べて対処する事を考えなきゃです。

現在失業中で、基本仕事がないので家に居るんですが、前回の外出から2週間経過してたので車のバッテリーが上がってました。まあ、当然って言えばそうなんですが、なので

SUPER NATTO 全自動12Vバイクバッテリー充電器■【車両ケーブル付属】【トリクル充電器機能付】 軽量コンパクト BC-GM12-V

を2,180円で購入。今朝から充電してます。既に昨日届いてたんですが、雨だし出掛ける用事もあったので天気の良い今日にしました。幸いまだバッテリーが空までは行かなかったと思うので充電中になってるので夕方までには終わってくれればです。ブースターケーブルだけにしてしばらくエンジン掛けておくなり何処かに行ってくるってのもありだとは思いましたが、家庭用コンセントから充電って事で有ればまた使えるだろうとね。モバイルバッテリー的なのもあるのは知ってましたが、これ、このモバイルバッテリー自体がいざって時に役に立たなくなってたらどうしようもないのでこれにしてみた。ただ、ブースターケーブル自体もやはり持っておかないと怖いとは思うので購入しておく予定。以前持ってたんですが、どこに行っちゃったのか行方不明なんです😔

追記 2023/7/4 7:47
日曜日に10時間程充電し日没で一旦停止。月曜日も10時間充電しても充電完了ランプが点灯しない。実は日曜日充電開始前には既にバッテリーは相当空に近づいていたと思います。ワイヤレスでドアロック解除試みるも反応しないのでキーを使って手動でアンロックして開けました。日曜日停止後ワイヤレスでドアロックすると反応する。なので月曜日朝もワイヤレスでドアロック解除。月曜日の充電停止後、流石にトータル20時間充電しているんでそろそろどうなんだろって事でエンジン始動試みると難無くスタート。まあ、念の為アイドリング20分程してエンジン停止。今後は少し気をつけなきゃです。