日々精進

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

IT

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枚(高い精度と検出率、差異が少ない対象を扱っている場合、汎化…

Windowsで複数のアプリから同時にカメラを使う方法

IT

Windowsで複数のアプリから同時にカメラを使えない理由: ・パフォーマンス上の問題が発生しやすい ・動画を同時にキャプチャするアプリ間で動画のフォーマットを合わせる必要がある stackoverflow.com ・ドライバが同時に1つのアプリしか動画をキャプチャす…

windowsで仮想カメラを作る方法

IT

windowsでsnap cameraのようにカメラ画像を加工するなど処理をした上で他のアプリに加工後の映像を流したり、同時に複数のアプリからカメラ画像を利用するためには 仮想カメラを作る必要がある。 その方法を調査した結果が以下。 Media Foundationは動画のキ…

SecureRandomのSeedがLinux環境で固定できない

IT

以下の現象が起きた。 Windows環境ではSecureRandomのコンストラクタにSeed値を渡すとSeedを固定できる(=同じ文字列を何度も暗号化すると毎回同じ値が出力される) Linux環境では同じコードでもSeedを固定できない docs.oracle.com ↑のHPに以下の記載があ…

json.loadsで文字列をdictに変換しようとしたら「json.decoder.JSONDecodeError」エラー

IT

jsonのKeyはダブルクォートで囲まれてないとだめっぽい。 Valueはシングルクォートはだめで、文字列はダブルクォートで囲まないとだめっぽい。 参考: ja.stackoverflow.com

クライアント証明書でWebアプリの認証をする方法

IT

クライアント証明書での認証のやり方を調べてみたところ以下でできるっぽい。(未検証ですが・・) Global Signなどでクライアント証明書を取得する クライアント証明書をクライアント端末とサーバの両方のルート証明書としてインストールする https通信する…

Jacksonはgetterもjsonに出力する

IT

Jacksonを使ってオブジェクトをjson形式にシリアライズしていたんだけど、 getString のようなメソッドを定義したらjsonの項目に"string"が追加された。。 メソッド名がgetXxxx(booleanの場合はisXxxx)の場合、自動的に出力対象になるらしい。 この仕様罠だ…

PyTorchを使ったアプリを実行すると「RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /tmp/pip-req-build-ocx5vxk7/aten/src/THC/THCGeneral.cpp:50」エラー

IT IT

原因ははっきりしないが、EC2のDeep Learning用AMIを使ってEC2インスタンスを作り直したら直った。 CUDA周りのライブラリがインストールされてなかったのかな。。

ブラウザの実験的な機能を使う方法

IT

現時点でのWebNFCのように、chromeでexperimentalな機能として実装されている機能を使いたい場合、以下でできる。 chrome://flags/#enable-experimental-web-platform-features をEnabledにする Origin Trialsに申し込む Origin Trialsは特定のドメインにア…

iOS,Androidアプリ間連携について

IT

iOSはUniversal LinksまたはURL Schemeを使って別のアプリを呼び出し、データを渡すことが出来る。 8vivid.net Androidの場合はIntentを使って同様のことが出来る。 stackoverflow.com 上記はWebアプリからも可能。 ただし、呼び出した別アプリから処理結果…

docker containerを起動すると「stderr: nvidia-container-cli: initialization error: cuda error: no cuda-capable device is detected」エラー

IT

原因はGPUのないマシンでruntime: nvidiaが入っているdocker compose yamlを使ってコンテナを起動しようとしたため。 GPUありのマシンで実行すると直った。 参考: github.com

突然EC2インスタンスにsshでログインできなくなったら「ステータスチェック」を確認する

IT

EC2のトラブルで接続出来なくなっている可能性があるのでAWSコンソールで「ステータスチェック」を確認した方が良い。手順は以下参照。 docs.aws.amazon.com

Docker操作を楽にするエイリアス

IT

以下の設定を使わせて頂いております。これでdockerコマンドの実行がすごい楽になった。 qiita.com ↓もよく使うのでaliasに追加しようかな。 docker commit $(docker ps --latest --quiet) debug && docker run -it debug /bin/bash

AIモデルを作る時に精度目標を求められたら楽観 / 悲観 / 中間の場合の目標を決める

IT

モデルの精度改善は非常に見積が難しく、ビジネス側からいつまでに精度何%を達成出来るのかと聞かれると答えに困ってしまう。。 下記の記事を見て楽観 / 悲観 / 中間の場合の目標をエイヤで決めて出すのが良さそうだと思った。 参考: f-bun.hatenablog.com

CentOSでsshdを自動起動する

IT

以下でできる。 systemctl enable sshd.service 参考: www.server-memo.net

CloudWatchのログを一括ダウンロードする方法

IT

awslogsを使うとできる。というか、AWS console画面からポチポチすればできるようになっててほしいんだが。。 pip install awslogsでインストール。 ログ取得するコマンドの例は以下。ログの開始時刻を-sで指定しないとエラーになるので注意。 awslogs get <log_group_name> <log_stream_name></log_stream_name></log_group_name>…

PyCharmのProfilerで時間を計測すると「<method 'acquire' of '_thread.lock' objects>」がほとんどのCPU timeを使っている

IT

原因は別スレッドでの処理はすべて「」と表示されるため。 なのでパフォーマンス計測をする場合はシングルスレッドで動かさないといけない。 参考: stackoverflow.com

pillowでresizeすると「SystemError: tile cannot extend outside image」エラー

IT

原因はresize後の画像サイズのwidthが0になっていたため。 参考: docs.aws.amazon.com

ALB経由で時間のかかるリクエストを送ると502 GATEWAY TIMEOUTが発生する

IT

EC2上にデプロイしているアプリのタイムアウト値は200秒などかなり長い時間になっているのに、それよりも短い70秒ぐらいのリクエストがタイムアウトになっていた。 原因はALBのアイドルタイムアウト値。アプリサーバがリクエストを受けてからレスポンスを返…

windowsで特定のポートをlistenしているプロセスを調べる

IT

サーバを起動したらポートがすでに使われててサーバが起動しない・・という場合によく使う。 例えば以下を実行すると80番ポートをlistenしているプロセスのpidがわかる。 netstat -oan | findstr 80 参考: www.atmarkit.co.jp

jarファイルの書き換え方

IT

jarの拡張子をzipにしてすべて解凍してファイルを修正して再度zipで固めて拡張子をjarに戻したらjava -jar temp.jarを実行したらエラーになってしまった。 対象のファイルだけを修正して差し替えないとだめっぽい。 やり方は以下参照。

iOS端末のcrash reportを取得する

IT

MobileSafariがクラッシュした場合などにクラッシュログを見たいという場合は以下の方法で見られる。 設定>プライバシー>解析および改善>解析データ Macに取り込む方法は以下。 iOS端末をMacに繋げて同期する ~/Library/Logs/CrashReporter/MobileDevice…