日々精進

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

2021-10-01から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月の記事なのでちょっと古…