日々精進

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

tf.keras.load_modelでモデルを読み込むと「ValueError: Unknown loss function」エラー

AI

学習時にcustom loss functionを使った場合、load時も同じ関数をcustom_objectとして渡してやらないといけないらしい。 ただ、再学習するのではなく推論するためにmodelをloadするのであれば以下のようにcompile=Falseを指定してやればOK。 model = load_mod…

Chromeが重くなった時の対処法

IT

普段はアドレスバーに「chrome://restart」と打って再起動すると軽くなるが、これやってもだめな時があった。 そんなときはタスクトレイの中のChromeアイコンを右クリック→終了を選択してからChromeを起動すると軽くなった。 Chrome重いとかなりストレスフル…

縦横が混在したPDFを一括で印刷する

IT

縦向きと横向きのページが混在しているPDFをChromeで表示して印刷すると、 すべて縦向き、またはすべて横向きで印刷するので一部のページが見きれる・・ なのでまず縦向きのページを印刷して、その後横向きのページを印刷するとか面倒なことをしていた。 Acr…

Kaggle Notebookで起きたエラーの原因分析をしやすくする

AI

手元の環境で実行してもエラーが出ないが、Kaggle Notebookで実行するとエラーになる、ということがあった。 手元とNotebookではライブラリのバージョンが違うのでそのせいだと思うが・・ Notebookではデバッグ実行できないし、原因分析しづらかったのでNote…

DockerのENTRYPOINTとCMDの違い

IT

今まで曖昧だったので調べた。以下がが分かりやすかったです。 pocketstudio.net

シェルスクリプトの定番設定

IT

以下のようなやつ。 #!/bin/bash set -euxo pipefail これの意味を以下で知りました。なるほど。。というか設定された状態をデフォルトにして欲しいレベルだなぁ。 please-sleep.cou929.nu moneyforward.com

Ubuntuで容量を沢山食っているフォルダを探すにはncduが便利

IT

ncduを使うとサブフォルダも含めた容量を計算して見せてくれるので非常に便利だった。 Dockerの容量を削減したい時などに重宝しそう。 askubuntu.com WindowsではFolderSizesを愛用してます。前はDriveAnalyzerを使っていたけど、重かったので乗り換え。有料…

DockerのUbuntuコンテナで起動時にsshdを起動する

IT

Dockerコンテナではsystemctlが使えないらしく、困った。 docker-compose.yamlに以下を記載して対応した。 command: bash -c "/etc/init.d/ssh start && /bin/bash" 今回の使い方ではcommandを上書きし、かつsshでもログインしたい場合が無かったので大丈夫…

SageMaker Processingでconda環境をactivateしてpythonを実行できない

AI

例えば、以下のサンプルコードのようにScriptProcessorを使って.pyファイルを実行する場合。 github.com .pyファイルをconda仮想環境myenvで実行するにはどうすればいいか。 ScriptProcessorのcommandでconda activateしてもだめで、理由はdokcerに渡された…

Dockerfile内で. /opt/conda/etc/profile.d/conda.shを毎回実行しなくて良いようにする

IT

Dockerfileの中でconda環境をactivateした上でコマンドを実行したい場合、 RUN . /opt/conda/etc/profile.d/conda.sh && conda activate myenv RUN python test.py のようにしてもだめで、RUN実行毎に. /opt/conda/etc/profile.d/conda.sh && conda activate…

tty:trueを設定していてもdockerコンテナがすぐ終了してしまう

IT

docker-compose.ymlでcommandのところを以下のようにしていたらだめだった。 command: /etc/init.d/sshd restart && bash 以下のように複数コマンド実行する場合はbashスクリプトとして実行すれば大丈夫。 command: bash -c "/etc/init.d/sshd restart && ba…

LightGBMで学習を実行すると「[LightGBM] [Fatal] categorical_feature is not a number,if you want to use a column name,please add the prefix "name:" to the column name」エラー

AI

原因はハイパーパラメータとしてcategorical_column=[0]が設定されていたため。 KaggleのNotebookからコピーしてきたのだが、これはまずかったようだ。 categorical_columnはcategorical_featureの別名。categorical_featureの仕様的にはintでfeatureを指定…

TensorFlowのSavedModelをOpenVINO IRに変換すると「UnicodeDecodeError: 'ascii' codec can't decode byte 0xfa in position 1: ordinal not in range(128)」エラー

AI

Scaled YOLOv4 tinyのsaved_model.pbをIR形式に変換したら表題のエラーが発生。 原因はよく分からないが、学習時と変換時のTensorFlowのバージョンを合わせたら直った。 TensorFlowのバージョンによってsaved_model.pbの仕様が違うんだろうな。。 IR形式への…

SageMaker Studioで「You were logged out of your account. Choose 'Sign In' to continue using this workplace.」が繰り返し表示される

AI

現象は以下。SageMaker StudioにSSOログインしている場合しか起きないかも? * SageMaker Studioを開いた状態から、しばらく操作せずログアウト状態になる * Reloadボタンをクリックし、AWSコンソールに再ログインする * 別ウィンドウが開き、SSOログインし…

コマンドプロンプトのコマンドは^を末尾に付けると改行できる

IT

超長いコマンドを書いていたのでこのTipsのお陰でかなり見やすくなって助かりました。 こんな感じで改行できる。 python -m mo^ --framework=tf^ --data_type=FP16^ --model_name=ssdlite_mobilenet_v3^ --input_shape=[1,320,320,3]^ --input=image_tensor^…

pip installで「ERROR: Could not install packages due to an OSError: [WinError 5] アクセスが拒否されました。」エラーが出た時に「pip install --user」は使わない方が良い

AI

「ERROR: Could not install packages due to an OSError: [WinError 5] アクセスが拒否されました。」 というエラーメッセージでググるとpip install --userという風に--userオプションを付けると直るよという情報が見付かる。 私見では--userを付けるのは…

pip installl tensorflow時に「ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory:」エラー

AI

pip installl tensorflowを実行したら以下のエラーが出た。 ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 'c:\\users\\< username>\\appdata\\local\\continuum\\miniconda3\\envs\\envname\\lib\\site-pack…

SageMakerのビルトインテンプレートを使用する権限が無い場合の対処法

AI

SageMaker Immersion Dayの資料を見ながらデモを実行していたら、以下で躓いた。 sagemaker-immersionday.workshop.aws 上記サイトでは プロジェクトページでは、事前に設定された SageMaker MLOps テンプレートを起動できます。 このラボでは、モデル構築、…

windowsでアプリから例外コード:0xc000001dのエラーが発生した

IT

イベントビューアで例外コード:0xc000001dのエラーログが出ていた場合。 この例外コードは不正な命令をCPUで実行しようとした場合に出る。例えば、 AVX非対応CPUでAVX命令を実行した場合 32bitOSで64bit用アプリを実行した場合 に発生する。 今回は_pywrap_t…

「のどか」をインストールするとキーボードが効かなくなる

IT

キーバインディングソフトの「のどか」をインストールしてPCを再起動すると、キーボードを打っても何も入力出来ない状態になった。 appletllc.com ログイン画面でPINを入力できず、ログイン出来ないので結構焦る。 原因は、のどかのインストール前にデバイス…

-Xmx -Xmsオプションで指定したJVMのヒープサイズとCloudWatchのMemoryUtilizationが合わない

IT

ECS ClusterでJavaサーバを動かしているが、-Xmx -Xmsに3GBを指定し、コンテナのメモリが4GBなのにCloudWatchのMemoryUtilizationは10%程度だった。 75%ぐらいになるはずなのに・・と思っていたが、原因はCloudWatchのMemoryUtilizationの分子は使用中のメモ…

見えて安心ネットでiPhoneのMACアドレスが見付からない

IT

Wifiルータの機能で見えて安心ネットというものがあり、MACアドレスで端末を識別し、通信できる時間帯を制限出来る。 Wifiルータが認識しているMACアドレスの中にiPhoneのMACアドレスが見付からないという現象が起きた。 原因はiPhoneがプライバシー保護のた…

ECSタスク起動時のエラーログを確認する方法

IT

ECSタスクが起動しなくなった、という場合。普通のサーバだったらまずログを見に行くがECSタスクだとサーバが起動しないとすぐ タスクが停止されるということもありログが取りにくい。 そんな場合は停止したタスクの詳細の停止理由のところを見るといい。詳…

楽観ロックでもデッドロックは発生する

IT

sqlでDBのデータをupdateする場合、updateした行はcommitされるまでロックされるため、 複数行を複数回SQLを実行してUpdateすると、デッドロックが発生する可能性がある。詳細は以下サイト参照。 blog.livedoor.jp ただし、複数行のUpdateがAtomicな操作で一…

sagemaker.get_execution_role()を実行すると「KeyError: 'UserSettings'」エラー

AI

以下の記事では解決できなかったが、解決方法が見付かった。 anton0825.hatenablog.com 原因はSageMaker SDKの不具合で、2.46以上であれば修正されているらしい。 SageMaker StudioでPython 3(Data Science)を起動するとsagemakerのバージョンが2.40.0だった…

conda環境の本番と開発の差分ができにくくしたい

AI

普通にやると、prod.yamlとdev.yamlを作ってそれぞれを使って本番のconda環境と開発のconda環境を 作ると思うが、そうすると例えばprodのtensorflowのバージョンは上げたけどdevの方は上げ忘れた・・ということが起き得るので 二重管理にならないようにした…

AESのブロック長は128bit固定

IT

勘違いしてたけど、AESのブロック長は128bit固定。なのでIVも常に128bit。 鍵長は128,192,256から選べる。 stackoverflow.com 鍵はデータとXORを取るために使うのに、なぜブロック長と鍵長が一致しなくてもいいのかが不思議だ。以下の記事から想像するに、↓…

IntelliJ IDEAのコンソールの文字化けの直し方

IT

IntelliJの起動オプションで文字コードUTF8を指定すればいい。やり方は以下参照。 www.purin-it.com UTF8デフォルトにしてほしいなぁ。。

box driveのcacheを削除する

IT

box driveのcacheフォルダの容量が20GBぐらいになっていた。直接削除してもいいのかも知れないが、Boxのサイトにログアウトするとcacheが削除されると記載されていたので一度ログアウトした。無事cacheが削除されました。 参考: support.box.com

miniconda3/pkgsフォルダが肥大化しているのでcleanする

IT

miniconda3/pkgsフォルダが19GBも使っていた。このフォルダはキャッシュなので消しても大丈夫らしい。 conda clean --allを実行するとかなり容量削減できた。 参考: stackoverflow.com