日々精進

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

AI

Pytorchのtorch.cuda.Stream()を実行するとそれ以降PyCharmのDebugger windowで変数の値が見えなくなる

AI

変数の値を見ようとするとCollecting data...と表示されるだけで値が見えなくて困った。 PyCharmの設定でGevent compatibleをONにすると直った。詳細は以下参照。 stackoverflow.com なぜこれで直るか全然分からないがすごく助かった・・・ただし、このオプ…

pycocotoolsを使うと「ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject」エラー

AI

pycocotoolsが依存しているnumpyのバージョンが1.20以上だが1.19以下がインストールされていることが原因。 でもtensorflowが1.19.5に依存していて、1.20以上を入れることができない。。 なのでpycocotoolsのバージョンを2.0.0にダウングレードして回避した…

YOLOXの学習を実行すると「RuntimeError: falseINTERNAL ASSERT FAILED at "../aten/src/ATen/MapAllocator.cpp":300, please report a bug to PyTorch. unable to write to file </torch_4492_0>」エラー

AI

原因はshared memoryの容量が足りないこと。学習環境のdocker composeに以下を追加すると直った。 shm_size: '16gb' 参考: Unable to write to file </torch_18692_1954506624> - #6 by gaily_sun - PyTorch Forums

conda runを実行すると「CommandNotFoundError: No command 'conda run'.」エラー

AI

conda runコマンドは壊れたので4.10.0で削除されたらしい。まじか。。 conda runコマンドがあるバージョンのcondaをインストールして解決した。 参考: github.com

SageMaker PipelinesのStepのOutputに「ClientError: Cannot access S3 key.」と書かれていてもS3にアクセス出来ないことが原因でないことが多い

AI

Pipeline実行がエラーになり、エラーになったStepのOutputを見行くと、以下のメッセージが表示されていた。 This step failed. For more information, view the logs. ClientError: Cannot access S3 key. が、結論としてはS3がエラーの原因ではなかった。上…

SageMaker ProjectのPipelinesタブに自分で作ったPipelineを表示させる

AI

Pipelineのタグを以下のように設定すれば表示される。タグはsagemaker sdkのPipelineクラスのcreate, upsertメソッドの引数で渡せる。 sagemaker:project-name: , sagemaker:project-id: projectとpipelineの紐付け方がわからなかったが、tagで紐付けている…

SageMaker PipelineをCLIから削除する

AI

SageMakerStudioから削除する方法が見付からなかったのでCLIから削除した。 以下のコマンドで削除できる。 aws sagemaker delete-pipeline --pipeline-name pjname 参考: docs.aws.amazon.com

「pycocotools/_mask.pyx ValueError: numpy.ndarray size changed, may indicate binary incompatibility.」エラー

AI

原因はnumpyのバージョンが古いことで、1.20.1以上にすれば直るっぽいが TensorFlowが1.19.5に依存しているのでnumpyのバージョンを上げられない・・ stackoverflow.com しょうがないのでpycocotoolsを使わずアノテーションファイルのparseを独自実装するこ…

SageMakerで学習をしている時のTensorBoardを表示する

AI

Estimatorのinitにtensorboard_output_configという引数があるので、これを設定するとtensorboardのログをS3にアップロードしてくれそうだけど、してくれなかった。。 以下で同じ問題で困っている人がいるけど解決してないっぽい。 stackoverflow.com しょう…

pythonプログラムを実行すると「ImportError: libSM.so.6: cannot open shared object file: No such file or directory」エラー

AI

以下のサイトで紹介されている方法で直りました。 参考: omohikane.com

pythonスクリプトを実行すると「ImportError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory」エラー

AI

export LD_LIBRARY_PATH=/path/to/conda/envs/your_env/lib で直る 参考: github.com

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向けの手順も載っている。 …