【AI】[keras]GPUではなくCPUを使用するコード■結論 import os os.environ["CUDA_VISIBLE_DEVICES"] = "-1" os.environ["TF_ENABLE_ONEDNN_OPTS"] = "1" #これはCPUパフォーマンス最適化用なので任意 ■経緯 kerasで簡単な学習をさせる時に、カーネルがすぐに逝くので、 バッチサイズを減らしてみましたがだめ。 GPUを大量使用していることが分かったので、 CPUのみ使用する方法でうまくいきました。 ※kerasのバージョンは、2.10.0
【Oracle】CLOB型を出力するSQL■結論 DBMS_LOB.SUBSTR(カラム名, 4000, 1) 例) SELECT DBMS_LOB.SUBSTR(カラム名, 4000, 1) FROM hoge; ■引数の意味 1文字目から4000文字を抽出
【数学】[コラッツ予想]考察笑わない数学の放映を見て、コラッツ予想を考察してみました。 ■コラッツ予想の予想 2のn乗に必ず収束することを証明すれば良い 【理由】 2のn乗に到達⇒ その後は「2で割る」ことが連続するので、必ず1に収束する ■考察 ①Pythonで1~100までの1への収束状況をグラフ化 (1) 収束まで多く回数を要する場合、グラフはほぼ同じだった (2) 収束まで少ない回数の場合でも、多い場合でもグラフの後半はほぼ同じ ※下記は54~57の場合。 ②奇数の次は必ず偶数なので、永遠に上がり続ける状況はない ③かならず1に収束するということは、偶数が連続するようになっているはず
【Azure】Recovery Servicesが異なるリージョンのバックアップを出来ない理由■結論 1.異なるリージョンへデータを転送するとコストがかかる/レイテンシの問題が発生するため 2.あるリージョンでは合法なデータも、別のリージョンではコンプライアンスに違反している可能性があるため ※2の方が納得する
【Azure】ADサービスでライセンスがグループ階層を下へ継承しない理由■結論 ADサービスでライセンスがグループ階層を下へ継承しない理由 【理由】 グループ用途が異なる可能性があるので、継承してしまうと意図せぬ結果を生むため ■例 ADのグループが下記とします。 A | B <-------ここにAzure Active Directory Premium P2ライセンスを割り当て | C <-------ここには、P2ライセンスは継承されない
【AI】[LightGBM/XGBoost]GPU使用/評価出力■GPUを使用するためのパラメータ設定 1.LightGBM params = { … 'device': 'gpu', 'gpu_platform_id': 1, 'gpu_device_id': 1, # GPUがNVIDIAでない時は0 or 1に変更 … } 2.XGBoost params = { … 'tree_method': 'gpu_hist', … } ■評価を何回毎に出力するか 1.LightGBM(3系) model = lgb.train( … callbacks = [ … lgb.log_evaluation(50), #50回毎 … ] … ) 2.XGBoost model = xgb.train( … verbose_eval=50, #50回毎 … )
【AI】NumExpr detected 16 cores but ・・・■事象 llama_indexでdownload_loaderを実行すると下記INFO (INFOですが気持ち悪い…) INFO:numexpr.utils:Note: NumExpr detected 16 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 8. INFO:numexpr.utils:NumExpr defaulting to 8 threads. ■解決方法 1.もう一度実行する 2.下記コードを入れる import os os.environ["NUMEXPR_MAX_THREADS"] = "8"
【AI】MSLEとMSEの違い■テーマ mean_squared_log_error(MSLE)とmean_squared_error(MSE)の違い ■結論 以下、私なりの結論です。 通常、ディープラーニングではMSEを評価指標にするケースが多いように思えます。 しかし、外れ値の影響を薄めたい時は、MSLEの方が適切かと思います。 また、対数変換することで正規分布に近づくので統計的手法が適切になる (例)お菓子価格の回帰分析⇒ MSE (例)不動産価格の回帰分析⇒ MSLE 【理由1】 お菓子価格⇒ あまり外れ値が大きいとは考えにくい 不動産価格⇒ 家の価格はピンキリ ■コード例(MSEとMSLEの比較) ■対数変換によって正規分布に近づく様子
【AI】PyTorchチュートリアルの間違い箇所■間違い箇所 ※間違いでないかもしれませんが、少なくともエラーが出ました。 ※PyTorchのバージョンは「2.0.0+cu117」です。バージョン起因の可能性がありますが… CIFAR10の読み込みと正規化 1_4_cifar10_tutorial_jp.ipynb ◆間違いコード images, labels = dataiter.next() ↓実行結果 AttributeError Traceback (most recent call last) Cell In[13], line 12 9 plt.show() 11 dataiter = iter(trainloader) ---> 12 images, labels = dataiter.next() 13 # images, labels = next(dataiter) 15 imshow(torchvision.utils.make_grid(images)) AttributeError: '_MultiProcessingDataLoaderIter' object has no attribute 'next' ◆正しい(動く)コード images, labels = next(dataiter) ↓実行結果
【AI】PyTorch Lightning LIGHTNING IN 15 MINUTESエラー■事象 Lightning in 15 minutes — PyTorch Lightning 2.1.0dev documentationlightning.ai 上記のコードをWindows10のJupyter Notebookで素直に実行するとエラーになりました。 以下、要修正点です。 ◆要修正点 1.fake_image_batch = Tensor(4, 28 * 28) 正:fake_image_batch = Tensor(4, 28 * 28).cuda() ※「cuda()」を付けないと、fake_image_batchがCPU上で、モデルがGPU上なのでエラーになります。 2.tensorboard --logdir . 正:下記です。 %load_ext tensorboard %tensorboard --logdir ./lightning_logs