日々精進

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

pickle.dumpを呼ぶと「PicklingError: Can't pickle typing.List[~]: it's not the same object as typing.List」エラー

IT

pickleの代わりにcloudpickleを使うと直った。dillというライブラリも使ってみたが、そちらは解決しなかった。 参考: gitmemory.com

windowsでRotatingFileHandlerでログを出力すると「PermissionError: [WinError 32] プロセスはファイルにアクセスできません。別のプロセスが使用中です。」エラー

IT

RotatingFileHandlerがwindows環境で上手く動かないっぽい。 代わりにConcurrentLogHandler を使うと直った。 参考: pypi.org

ChromeでMediaStreamTrack.Stopを呼ぶとブラウザが固まる

IT

以下の現象を踏んだ。。 support.skyway.io これが発生すると、画面上はDOMを変更しても何も変化しなくなってしまう。 Chromeを一旦バックグラウンドに送ってからフォアグラウンドに戻すと直る。

オライリーのサブスクを年額99ドルで利用する方法

IT

ACM会員になればオライリーの本が沢山読み放題になるサービスが通常価格より大分安い年額99ドルで利用できる。 そして、知らなかったが最近は日本語の書籍も多少追加されているらしい。利用手続きは以下が一番わかりやすかったです。 yoshikiito.net そして…

docker composeで設定した環境変数はsshでログインした時には設定されていない

IT

docker composeファイルのenvironmentに定義した値はdocker execでコンテナ内に入った場合は設定されているが sshでdockerコンテナにログインした場合には設定されていなかった。 これはdocker composeのcommandで以下を実行すると回避できる。 printenv | g…

pd.read_excelでエクセルファイルを読み込むと「ValueError: Unknown engine: openpyxl」エラー

AI

このエラーメッセージでググるとopenpyxlをインストールしてengine='openpyxl'を引数に指定しろという情報があるが、これをやっても直らないので困った。。 原因はpandasのバージョン。1.0.1以上でないとだめらしい。 pip install -U pandas を実行してバー…

unzipコマンドで解凍してできたファイル名が文字化けしている問題

AI

unzip -O sjis hoge.zip のように文字コードを指定すると直った。自動で判定とかしてくれればいいのに。。 参考: qiita.com

TensorFlowの不具合調査をしやすくする

AI

TensorFlowで学習しているとlossがnanになり、その原因を調査することがあったが、かなり大変だった。。 不具合調査の時に、調査しやすくするために不具合の再現性を確保するために以下記事を参考にSeedを固定した。 参考: qiita.com

pythonからslackに通知を送る

IT

以下のサイトを参考にして実装したら送れました。Slackにはapi.slack.com経由でメッセージを送る方法などあるようで、他のサイトに載っている方法だとうまくいかなかったりしたが↓は大丈夫でした。 developers.wonderpla.net

nohup.outの名前を変更する

IT

以下のような感じで変更出来る。 nohup some_command &> nohup2.out & 最近以下のような感じでmulti gpuマシン上で複数の実験を回しているが結構快適です。各並列で動く処理のoutputが混ざったり上書きされたりしないよう気をつけないといけないけど。 nohup…

YOLOを学習するとIoUなどがnanになる

AI

学習途中で出力される評価指標がnanになることがあるが正常らしい。評価指標の計算式的に仕方ないのかも?ずっとnanが続くようだとだめだけど、学習データの中に物体のlabelが一つも含まれないような場合ではnanになるのは正常らしい。 参考: github.com

XMLで&をエスケープしないとエラーになる

IT

xmlを読み込むとinvalidなxmlだと判定されることがあった。原因は&をエスケープしてないことだった。 VoTTはAnnotationをつけたデータをVOC形式でExportする時にエスケープしてくれないっぽい。困る。。 参考: github.com kotaroito.hatenablog.com

PyCharmのSSH Interpreterで実行時にファイルをアップロードしてくれない問題

AI

PyCharmのSSH Interpreterは便利だけど、使ってるといつの間にかサーバに修正したソースコードを自動でアップロードしてくれる機能が動かなくなることがよくある。。 その原因はdefault serverの設定がなぜか外れることっぽい。アップロードされなくなったら…

mish活性化関数を使う

AI

pip install tensorflow-addonsでTensorFlowのaddonを入れると使えるようになる。 import tensorflow_addons as tfa ... tfa.activations.mish(x) 参考: www.tensorflow.org

TensorBoard Debugger V2がすごい

IT

lossがnanになっている原因など調べる場合、すごく便利そう。使い方は以下参照。このチュートリアルもよくできている。 www.tensorflow.org ただし、 tf.debugging.experimental.enable_dump_debug_info を実行するとkerasのsaveメソッドを実行してSavedMode…

tensorboardにアクセス出来ない問題

IT

tensorboard --logdir=./logsのようなコマンドで起動したものの、アクセスできない・・同じマシン上からcurlでリクエストを送るとアクセスできているっぽい、という状態。 原因はtensorboard2からデフォルトでは外部のマシンからのリクエストを受け付けなく…

pandasでto_csvで書き出したファイルをエクセルで開くと文字化けする問題

IT

原因はエクセルが文字コードがUTF8の場合BOM付きであることを期待しているため。 世の中の標準としてはBOMなしの方が正しいんだけど。。しょうがないので以下のようにBOM付きで出力する。 df.to_csv('./df.csv', encoding='utf_8_sig') 参考: qiita.com

sshでlocal forwardingしている時に、そのlocalのportにリクエストを送ると「channel 10: open failed: connect failed: Connection refused」エラー

IT

自分の場合、原因はリモートホストで動かしていたサーバ(TensorBoard)が外部からのリクエストを許可していなかったため。 「channel 10: open failed: connect failed: Connection refused」エラー自体はリクエストを送った先のportをlistenしているプロセ…

docker-compose upを実行すると「docker.errors.InvalidArgument: “host” network_mode is incompatible with port_bindings」エラー

IT

前に実行したことのあるdocker-compose.yamlファイルを使ってコンテナを起動するとエラーがでた。なぜ。。 原因はdocker-composeのバージョン1.26あたりからnetwork_mode: 'host'とport mapping設定を両方設定するとエラーになるよう仕様が変わったため。 バ…

DeepLearningモデルの計算量

IT

モデルの速さの指標としてflopsとmacsがよく使われる。 macsが何かを調べると、積和演算の回数らしい。なるほど。 ja.wikipedia.org

エクセルの調子が悪い時はプログラム修復をする

IT

最近エクセルが重かったり、挙動がおかしいことがある。。以下を試すと多少良くなった気がする。 getnavi.jp エクセルはよく使うので調子が悪いとストレスフルだなぁ。。

エクセルの関数は空欄と0を区別しない

IT

エクセルの関数で =IF(A1=0.... のような式を書くと、A1が空欄でも0でもTRUEになってしまう。マジか。。 しょうがないので以下のように0かつ空欄でないという条件にした。 AND(A1=0, A1<>"") 参考: www.excelspeedup.com

tf.keras.Model.saveを呼ぶと「TypeError: Input 'resource' of 'AssignVariableOp' Op has type float32 that does not match expected type of resource.」エラー

AI

デバッグのためtf.debugging.experimental.enable_dump_debug_info を呼んでいたが、これが原因だった。これを呼ばないようにすると直った。 参考: github.com

sshでアクセスすると「Connection closed by UNKNOWN port 65535」エラー(再)

IT

以前Connection closed by UNKNOWN port 65535エラーが出る場合を紹介したが、別の原因でまた出た。 anton0825.hatenablog.com 今回の原因は接続先IPアドレスが間違っていたこと。サーバのIPがxxx.xxx.xxx.111だとすると、xxx.xxx.xxx.112 にアクセスしてい…

batファイルを実行すると「内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」エラー

IT

このエラーメッセージは色んな原因で出るんだろうけど・・ 自分のところで起きた時の原因は改行コードだった。 改行コードがLFの場合、batファイルの中身がascii文字のみの場合は大丈夫だが 2バイト文字が入るとエラーになる。 改行コードをCRLFにすると直っ…

ストレージ容量を食っているフォルダを探したい場合はFolderSizesが便利

IT

今まで容量空けたい場合はDiskAnalyzerを使ってたけど、重いので他のアプリを探した。 FolderSizesを使ってみたらサクサク動くので気に入った。 有料(しかもPERSONAL EDITIONで30$)だけど。。でも買ってもいいかな。 参考: www.foldersizes.com

PythonのLGPLライブラリをimportしてもソースコードは公開しなくていい

IT

LGPLライブラリを使ったらソースコード公開しないといけないもんだと思っていたが、 Pythonのimportは動的リンクで、動的リンクの場合はLGPLのライブラリをリンクしてもソースコードのライセンスはLGPLにしなくていいらしい。 参考: qiita.com future-archi…

logging.config.dictConfigを実行すると「AttributeError: 'NoneType' object has no attribute 'flush'」エラー

AI

原因はabsl-pyがデフォルトのログハンドラを書き換えてしまい、かつそいつがsys.stderrがNoneになる場合を考慮していないため。 恐らくPythonを別のプロセスからConsoleを表示させず起動すると標準エラー出力の出力先が無くてNoneになる。 無理矢理だけど、l…

environment.yamlでconda仮想環境を作ろうとするとdlibインストール時にエラーが発生する

AI

dlibインストール時にcmakeを使ってビルドするようで、cmakeが入ってないとエラーがでる。 environment.yamlを使うならdlib以外をyamlを使ってインストールして、その後手動でdlibを入れるとかになりそう。。 手動の手順が入るのが嫌だったのでbatファイルで…

conda activate/deactivateをbatファイルで実行するとそれ以降のコマンドが実行されない

AI

activate/deactivateを実行する場合は以下のようにcallを頭につけないといけない。色々罠があるなぁ。。 echo y | conda create --name myenv python=3.7.9 call conda activate myenv pip install cmake==3.18.4.post1 参考: github.com