日々精進

新しく学んだことを書き留めていきます

AI

tf.keras.load_modelでモデルを読み込むと「ValueError: Unknown loss function」エラー

AI

学習時にcustom loss functionを使った場合、load時も同じ関数をcustom_objectとして渡してやらないといけないらしい。 ただ、再学習するのではなく推論するためにmodelをloadするのであれば以下のようにcompile=Falseを指定してやればOK。 model = load_mod…

Kaggle Notebookで起きたエラーの原因分析をしやすくする

AI

手元の環境で実行してもエラーが出ないが、Kaggle Notebookで実行するとエラーになる、ということがあった。 手元とNotebookではライブラリのバージョンが違うのでそのせいだと思うが・・ Notebookではデバッグ実行できないし、原因分析しづらかったのでNote…

SageMaker Processingでconda環境をactivateしてpythonを実行できない

AI

例えば、以下のサンプルコードのようにScriptProcessorを使って.pyファイルを実行する場合。 github.com .pyファイルをconda仮想環境myenvで実行するにはどうすればいいか。 ScriptProcessorのcommandでconda activateしてもだめで、理由はdokcerに渡された…

LightGBMで学習を実行すると「[LightGBM] [Fatal] categorical_feature is not a number,if you want to use a column name,please add the prefix "name:" to the column name」エラー

AI

原因はハイパーパラメータとしてcategorical_column=[0]が設定されていたため。 KaggleのNotebookからコピーしてきたのだが、これはまずかったようだ。 categorical_columnはcategorical_featureの別名。categorical_featureの仕様的にはintでfeatureを指定…

TensorFlowのSavedModelをOpenVINO IRに変換すると「UnicodeDecodeError: 'ascii' codec can't decode byte 0xfa in position 1: ordinal not in range(128)」エラー

AI

Scaled YOLOv4 tinyのsaved_model.pbをIR形式に変換したら表題のエラーが発生。 原因はよく分からないが、学習時と変換時のTensorFlowのバージョンを合わせたら直った。 TensorFlowのバージョンによってsaved_model.pbの仕様が違うんだろうな。。 IR形式への…

SageMaker Studioで「You were logged out of your account. Choose 'Sign In' to continue using this workplace.」が繰り返し表示される

AI

現象は以下。SageMaker StudioにSSOログインしている場合しか起きないかも? * SageMaker Studioを開いた状態から、しばらく操作せずログアウト状態になる * Reloadボタンをクリックし、AWSコンソールに再ログインする * 別ウィンドウが開き、SSOログインし…

pip installで「ERROR: Could not install packages due to an OSError: [WinError 5] アクセスが拒否されました。」エラーが出た時に「pip install --user」は使わない方が良い

AI

「ERROR: Could not install packages due to an OSError: [WinError 5] アクセスが拒否されました。」 というエラーメッセージでググるとpip install --userという風に--userオプションを付けると直るよという情報が見付かる。 私見では--userを付けるのは…

pip installl tensorflow時に「ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory:」エラー

AI

pip installl tensorflowを実行したら以下のエラーが出た。 ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 'c:\\users\\< username>\\appdata\\local\\continuum\\miniconda3\\envs\\envname\\lib\\site-pack…

SageMakerのビルトインテンプレートを使用する権限が無い場合の対処法

AI

SageMaker Immersion Dayの資料を見ながらデモを実行していたら、以下で躓いた。 sagemaker-immersionday.workshop.aws 上記サイトでは プロジェクトページでは、事前に設定された SageMaker MLOps テンプレートを起動できます。 このラボでは、モデル構築、…

sagemaker.get_execution_role()を実行すると「KeyError: 'UserSettings'」エラー

AI

以下の記事では解決できなかったが、解決方法が見付かった。 anton0825.hatenablog.com 原因はSageMaker SDKの不具合で、2.46以上であれば修正されているらしい。 SageMaker StudioでPython 3(Data Science)を起動するとsagemakerのバージョンが2.40.0だった…

conda環境の本番と開発の差分ができにくくしたい

AI

普通にやると、prod.yamlとdev.yamlを作ってそれぞれを使って本番のconda環境と開発のconda環境を 作ると思うが、そうすると例えばprodのtensorflowのバージョンは上げたけどdevの方は上げ忘れた・・ということが起き得るので 二重管理にならないようにした…

SageMaker NotebookからS3にファイルをアップロードするとS3UploadFailedError

AI

原因はNotebookインスタンスのIAM roleにS3への書き込み権限が付いてないため。 role = get_execution_role() print(role) でroleのARNを表示。 IAM role画面でそのARNで検索。 当該IAM roleにAmazonS3FullAccessポリシーをアタッチ。 で直った。 参考: sta…

conda env create ~でdlibをinstallすると「CMake must be installed to build the following extensions: dlib」エラー

AI

dlibのsetup.pyの中にsubprocess.check_output(['cmake', '--version'])を実行しているところがあり、cmakeへのパスが通ってないためcmakeというファイルが見付からないことが原因。 github.com subprocess.check_outputの引数にcmakeのパスを設定すれば直せ…

windowsでconda仮想環境を作るとapi-ms-win-core-console-l1-1-0.dllなどのDLLが2つずつインストールされる

AI

windows環境でminicondaを使って仮想環境を作ると以下のパスに仮想環境のファイルが保存される。 C:\Users\username\AppData\Local\Continuum\miniconda3\envs\envname 上記と、以下のパスに「api-ms-win-core-console-l1-1-0.dll」などいくつかの同じDLLフ…

conda env createでconda環境を作ると「ERROR: No matching distribution found for torchaudio==0.7.2」エラー

AI

windows環境でpytorchをインストールした後、conda env exportでyamlファイルを出力し、そのファイルを使ってconda env createするとエラーが出る。 原因は以下によるとwindowsをサポートしていないこと。でも手動だとインストールできるし何か違う気がする…

pythonプログラムを実行した時に、自分の環境だとエラーが出ないが他の人の環境だと「No module named~」エラーが出る

AI

conda環境もアプリのコードも同じなのになぜ・・と思ったら、自分の環境ではuser siteに必要なパッケージが入っているが他の人には入っていなかったためだった。 user siteとはユーザ単位で利用するパッケージをインストールするところで、以下のようなとこ…

pythonnetでpythonモジュールを実行すると「No module named~」エラー

AI

コマンドプロンプトから python main.py のように実行すると問題無いのにpythonnetから実行すると「No module named~」エラーになる、というケースがあった。 原因はpythonnetが.pthファイルを読んでくれないこと。以下のサイトには .pth ファイルを読み込…

conda exportで出力したyamlに含まれるprefix:は消して良い

AI

prefix:の行に環境依存のパスが書かれていて嫌だなと思っていたが、消して特に問題無いらしい。というか消した方が良い。何であるんだこの行。。 参考: stackoverflow.com

windowsでプロセスのスレッド数を調べる

AI

以下の手順でスレッド数を調べられる。 タスクマネージャを開く 「詳細」タブを表示 ヘッダを右クリック>列の選択をクリック スレッド数にチェックを付けてOKをクリック 上記はWindows10向けの手順だが、以下のサイトにはWindows7向けの手順も載っている。 …

TensorFlow MKLをwindowsでinstallしようとすると「ClobberError: This transaction has incompatible packages due to a shared path.」エラー

AI

原因はwindows10の制約でパスの長さの最大値が256文字となっているがそれを越えてしまうため。 以下の方法で制限を解除すると直った。 knowledge.autodesk.com

Pythonのテストでfloatの値を比較する

AI

floatだとテストOKな場合でもぴったり一致しないことがあるのでmath.iscloseを使う。 assert math.isclose(0.1, 0.1) np.iscloseとかもあるらしい。 参考: note.nkmk.me

Pythonでraiseのみ書いたときの挙動

AI

以下のようにraiseのみの文があったのでなんだこれと思ったら、raise eの場合とスタックトレースが異なるらしい。raiseの方がスタックトレースが見やすくていい。なるほど。 try: ~ except Exception as e: raise 詳細は以下参照。 qiita.com

TensorFlow, TensorFlow MKLが使うコア数を指定する

AI

推論時のCPU使用率を下げたい、というモチベーションでTensorFlowが使うコア数を減らしてみた。(CPUで推論させてます) デフォルトでは推論時に論理コア数と同じだけスレッドが作られ、並列処理される。そうすると推論にかかる時間は短くなるが並列処理のオ…

Anacondaのdefaultsチャネルの使用が商用利用有料になっていた

AI

今日知ったが、2020年4月からAnacondaのdefaultsチャネルの使用が商用利用有料になっていたらしい。 詳細は以下参照。 qiita.com ただ、conda-forgeからインストールするようにすれば無料で使い続けられる。 qiita.com 上記を参考に conda config --remove c…

conda installを実行すると「CondaVerificationError」エラー

AI

エラーメッセージの全体は以下。 CondaVerificationError: The package for tensorflow-base located at C:\Users\username\AppData\Local\Continuum\miniconda3\pkgs\tensorflow-base-1.15.0-mkl_py37h190a33d_0 appears to be corrupted. The path 'Lib/si…

pythonのGCについて

AI

pythonのGCについて調べたことのメモ。 参照カウントと世代別mark&sweep方式 GCログを出す場合、gc.callbackにログを出力する関数を登録する。ただし、出力できる情報は限られている docs.python.org gc.set_debug(gc.DEBUG_STATS)で統計情報を出せるように…

「ImportError: No module named 'resource'」エラー

AI

resourceモジュールを使ってメモリ使用量を調べようとしたら掲題のエラーが出た。 原因はresourceモジュールはunixでしか使えないため(windows環境で実行しようとしていた・・) 解決策としてはpsutilをインストールして使うといいらしい 参考: stackoverf…

windows環境向けtensorflow-mklをinstallする

AI

intel公式サイトによると、windows向けはソースからビルドしてねと書いてある。 software.intel.com めんどい・・と思っていたがanacondaがビルド済モジュールを配布しているっぽい。ただし、tensorflowのすべてのバージョンに対応するmklバージョンがあるわ…

__pycache__のパスを変更する

AI

python3.8以降はPYTHONPYCACHEPREFIX環境変数を設定するなどの方法でpycacheが保存されるフォルダを変更することができる。 参考: stackoverflow.com

TensorFlowでModelを読み込むと「ValueError: NodeDef mentions attr 'incompatible_shape_error' not in Op~」エラー

AI

原因は学習時と推論時でTensorFlowのバージョンが違うこと。 参考: github.com