日々精進

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

IT

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…

pythonからslackに通知を送る

IT

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

nohup.outの名前を変更する

IT

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

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

IT

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

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

IT

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

TensorBoard Debugger V2がすごい

IT

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

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

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…

conda install -c s3://backet_name ...を実行するとError: boto3 is required for S3 channelsエラー

IT

conda install -c s3://backet_name package_name のようなコマンドを実行すると以下のエラーがでた。 Error: boto3 is required for S3 channels. Please install with `conda install boto3` Make sure to run `source deactivate` if you are in a conda …

pythonからheadless chromeを実行すると「Message: unknown error: net::ERR_CONNECTION_TIMED_OUT」エラー

IT

原因はProxyの設定がないため。Proxy環境で動かす人が少ないのか、情報が少なくて困った。。 以下のようにオプションでProxyを設定すると直った。 なお、 --proxy-server=http://domain.com:8888 のようにdns名でProxyを設定すると「ERR_NO_SUPPORTED_PROXIE…

conda env create -f environment.yamlを実行すると「An unexpected error has occurred. Conda has prepared the above report」エラー

IT

原因はenvironment.yamlがUTF-16LEでencodeされていたことだった。 BOMなしUTF-8にすると直った。

EaseUS todo backupでバックアップを復元すると「ターゲットディスクに十分な空き容量がありません」エラー

IT

バックアップ取ったのと同じディスクに復元しようとしているのに容量が足りないとはなぜ・・と思っていたら 原因は復元先のディスクにEFIシステムパーティションが残っていることだった。 セクタバイセクタで復元しようとしていたからちょっとでもバックアッ…

ピボットグラフでデータが無いところの間隔を詰めないようにする

IT

最近便利に使っているエクセルのピボットグラフだが、デフォルトではデータの無い部分を描画しない。 なので、例えば多峰性のヒストグラムをかいた場合、各ピークが結構離れていて間にデータがない区間があるとその部分は詰められるのでピーク同士は結構近く…

cv2.imreadがNoneを返す・cv2.imwriteがエラーを吐く

IT

cv2.imread、cv2.imwriteは日本語に対応していないので、パスに日本語が入っているとNoneを返したりエラーになったりする。 なので以下で紹介されているコードを使って回避した。ありがたや~ qiita.com

データの可視化はエクセルが便利

IT

データ分析のためにグラフを描く場合、matplotlibを使うことが多かったけど、結構時間がかかるんだよな。。(慣れてないだけかも) エクセルのピボットグラフでやってみたら思った以上に簡単に、インタラクティブにグラフを描けるのでビックリした。これはす…

.gitignoreで特定のファイルだけ無視しない設定

IT

以下のように書きたくなるが、これはだめ。 tmp/ !tmp/tmp.txt フォルダの無視設定は後から書き換えられないらしい。以下のように各フォルダ毎に除外設定と例外設定をする必要がある。 tmp/* !tmp/tmp.txt tmp/tmp2/* !tmp/tmp2/tmp.txt なぜこんな仕様なん…

「ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from C header, got 192 from PyObject」エラー

IT

原因はnumpyの不具合。 バージョン1.14.2だとだめで、1.16.0だと直る。 参考: github.com

機械学習モデルを作るのに必要な学習データ量の目安

IT

・以下のサイトに記載されている学習データ量の目安 https://www.nakasha.co.jp/future/ai/yolov3train.html 最低:1カテゴリに対して100枚 基準:1カテゴリ1000枚 推奨:1カテゴリ5000、10000枚(高い精度と検出率、差異が少ない対象を扱っている場合、汎化…