日々精進

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

PyCharmでSSH Interperterの設定をしていると「Can't get remote credentials for deployment server」エラー

AI

原因は、ssh configurationsで設定したsshの接続設定があるプロジェクトでしか利用できない設定になっていて、PyCharmで開いているプロジェクトでは利用できないため。 以下を参考にVisible only for this projectのチェックを外すと直る。 stackoverflow.com

PyCharmからOpenVINOをimportすると「ImportError: /opt/conda/envs/myenv/lib/python3.7/site-packages/openvino/inference_engine/ie_api.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN15InferenceEngine10IExtension9getOpSetsEv」エラー

AI

.soファイル:soはshared objectの略。動的にリンクされる共有ライブラリ・バイナリファイル undefined symbolの原因:soファイルから参照している関数が見つからない(=関数が実装されているsoファイルが見つからない)こと undefined symbol: の後の_ZN15…

PyCharmでdebug実行時に.bashrcが実行されない

AI

PyCharmでSSH Interpreterを使っている場合。 .bashrcで定義している環境変数がないと動かないプログラムをPyCharmからデバッグ実行すると、.bashrcが実行されないのでエラーになる。 JetBrainsのサポートサイトには、以下の.shファイルを作ってSSH Interpre…

mmdetectionで推論すると「mmcv RuntimeError: nms_impl: implementation for device cuda:0 not found.」エラー

AI

現象は以下。 Dockerfileでmim install mmdetを実行して作ったコンテナで推論を実行すると発生する docker buildのログを見ていると、mmcvのcpu版がインストールされている。でも実行環境ではgpu版を使おうとしてエラーになっているっぽい 手動でmim install…

Jetbrains製IDEでuntrusted server certificateをacceptするか何度も聞かれる問題

IT

設定で自動的にAcceptするようにできる。セキュリティ的にはよろしくないと思うけど・・やり方は以下参照。 android - Untrusted Server Certificate in Intellij - Stack Overflow

Cmderでタブ毎にhistoryを分ける

IT

cmderフォルダ\config\clink_settings の history.shared = True をFalseにすると分けられる。 参考: github.com

エクセルで同じBookを2つ並べて作業する

IT

違うシートを参照しながら作業したい場合などに使える。 以下のサイトの方法で同じBookを複数ウィンドウで開ける。今までファイルをコピーして開いたりしてたけど、こっちの方が楽だしどちらのウィンドウで編集したも同じファイルが更新されるのでいいな。。…

docker imageをビルドすると「mesg: ttyname failed: Inappropriate ioctl for device」というメッセージが出る

IT

害は無いんだけど、赤字で表示されるし何か気になるので抑止したい。。 以下の行をDockerfileに追加すると出なくなった。 RUN sed -i -e 's/mesg n || true/tty -s \&\& mesg n/' /root/.profile 参考: www.educative.io

pip install の-fオプションをconda env createで環境構築する時に使う方法

AI

以下のように- pip:の次の行にオプションを書けばいい。 - pip: - --find-links https://download.pytorch.org/whl/cu113/torch_stable.html 参考: stackoverflow.com

sshでログインしようとすると「Unable to negotiate with xxx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss」エラー

IT

原因は最近のopensshが古い形式の秘密鍵をサポートしなくなったこと。openssh 8.3ではエラーが出なかったが8.8だとエラーになった。 以下の設定を接続設定に追加すると直った。 HostKeyAlgorithms ssh-dss,ssh-rsa PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa …

dlibインストール時に「CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage」エラー

AI

原因はgcc,g++がインストールされていないため。Visual Studio 2022 Community版をインストールすると直った。

画像分類・物体検出において、背景を物体と認識してしまう問題

AI

画像分類・物体検出のアノテーションは矩形の枠とラベル(人・犬など)で付ける。 なので、人のアノテーションにはどうしても人の後ろの壁など人以外の部分も含まれてしまう。 そうすると、その壁などもモデルは人の一部であると見なして学習してしまう。 そ…

Deep Learningでは基本乱数は完全には固定できない(なので全く同じモデルは作ることが難しい)

AI

乱数のseedを固定すれば同じInputに対して、同じ推論結果を返す重みファイルが生成できるはず・・と思っていたが、そうではないらしい。 乱数の固定の仕方は以下参照。 qiita.com これを設定しても、cuDNNの中の乱数は固定できないらしい。TensorFlowではこ…

conda create, removeを繰り返すと.conda_trashファイルが増えていく問題

AI

現象は以下。 conda create, conda removeでconda環境の作成・削除を繰り返すとpip3.exe.conda_trash, pip3.exe.conda_trash.conda_trash, ...のように.conda_trashがconda createを実行した回数だけ繰り返すファイルができる これによって超長いファイル名…

Log4jの任意のコードが実行出来る脆弱性の影響範囲

IT

今日知ったLog4jの脆弱性について調べたことを書きます。 脆弱性を修正したPR github.com 影響範囲 log4j2の影響を受けるバージョンは以下の記事によると、2.0 <= Apache log4j2 <= 2.14.1 www.cyberkendra.com log4jバージョン1も影響を受けるというコメン…

iPhoneのUDIDを調べる方法

IT

ググるとiTunesを使う方法などが出てくるが、それは古いっぽい。 以下で紹介されている、Finderで調べる方法をやってみると確認できました。 apptopi.jp

PyCharmでSSH Interpreterを使っている時に、リモートホスト上でターミナルからinstallしたpackageをPyCharmにダウンロードさせる方法

AI

sshでリモートホストにログインし、pip installでpackageをinstallした後、ライブラリの更新操作をPyCharm上でやるとダウンロードしてくれる。今までInvalidate Cache&Restartを実行して全部のライブラリをダウンロードし直してた。。 やり方は以下参照。 tk…

Pythonで複数の環境で共有したい、けどpipなどのpackageにするほどでもないコードの共有

AI

「複数の環境」と言っているのは、例えば機械学習で言うと前処理、学習、精度検証のようなイメージ。 そういう環境で、ある程度実装も実行環境も分かれているけど一部の実装を共有したい場合どうするか。 pip packageにすると修正したらアップロードとインス…

tfliteで推論すると「RuntimeError: There is at least 1 reference to internal data」エラー

AI

原因はわかっていないが、再実行したらエラーが出なかった。なぜだ・・

multiprocessing.Poolは各ProcessにGlobal変数をコピーする

AI

マルチプロセスなので当たり前なんだけど、Pythonのmultiprocessing.Poolを使って複数プロセスで並列処理をする時にGlobal変数はそれぞれのプロセスにコピーされる。 なので、以下の例だとmy_funcの中でGlobal変数を変更しても他のプロセスには影響しない。 …

Pythonでオブジェクト==で比較すると「{ValueError}The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()」エラー

AI

発生条件は以下。 @dataclassの付いたclassのオブジェクトを==で比較する そのclassのインスタンス変数にnumpy.ndarrayがある 原因は以下。 @dataclassで自動生成されるeqメソッドは、そのクラスのフィールドからなるタプルを比較する 参考: docs.python.or…

Pythonスクリプトを実行すると「ImportError: cannot import name」エラー

AI

原因は色々ありうるが、今回は同じフォルダ名が複数あることだった。つまり、以下のようなフォルダ構成になっていて root/aとroot/bをPYTHONPATHに追加していた。 root/a/common/a.py root/b/common/b.py そうするとa.pyをimportしようとするとそんなモジュ…

学習中に突然学習が止まる

AI

以下のようなメッセージを残して学習が止まることがあり、困った。 train.sh: line 27: 32529 Killed 原因はOOMだった。 dmesg -T| grep -E -i -B100 'killed process' 上記コマンドを実行すると、以下が表示され、OOMでプロセスが殺されたことが分かる。 [F…

conda env createでyamlを指定しconda環境を作る時にpycocotoolsが含まれていると「ModuleNotFoundError: No module named 'Cython'」エラー

AI

pycocotoolsのsetup.pyがCythonなどをimportしているためエラーになるっぽい。 ホントはやりたくないが、以下のようにyamlに含めず後からpip installでインストールするようにした。 conda env create -f=/root/environment.yaml conda activate myenv pip i…

AWSでどのGPUインスタンスを使えば良いかが分かる資料

AI

GPUインスタンスの種類が多すぎて何を使えば良いかわからない・・と言う場合、以下を参考にするといいかも。 towardsdatascience.com ユースケース別にオススメのインスタンスタイプがかかれていて参考になりました。 ただ、2020年6月の記事なのでちょっと古…

TensorFlowで学習を実行すると「failed call to cuInit: CUDA_ERROR_NO_DEVICE」エラー

AI

原因はGPUが1つしかないのに export CUDA_VISIBLE_DEVICES='1' が環境変数に設定されていたため。 export CUDA_VISIBLE_DEVICES='0' に変更すると直った。 参考: qiita.com また、問題の切り分けのために、以下を実行してtensorflowからGPUが見えているかを…

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