SageMakerStudioから削除する方法が見付からなかったのでCLIから削除した。 以下のコマンドで削除できる。
aws sagemaker delete-pipeline --pipeline-name pjname
参考:
SageMakerStudioから削除する方法が見付からなかったのでCLIから削除した。 以下のコマンドで削除できる。
aws sagemaker delete-pipeline --pipeline-name pjname
参考:
原因はnumpyのバージョンが古いことで、1.20.1以上にすれば直るっぽいが TensorFlowが1.19.5に依存しているのでnumpyのバージョンを上げられない・・
しょうがないのでpycocotoolsを使わずアノテーションファイルのparseを独自実装することにした。
Estimatorのinitにtensorboard_output_configという引数があるので、これを設定するとtensorboardのログをS3にアップロードしてくれそうだけど、してくれなかった。。 以下で同じ問題で困っている人がいるけど解決してないっぽい。
しょうがないのでtensorboard callbackのlog_dirにS3のパスを指定してアップロードした。詳細は以下参照。
SageMaker Studio上でTensorBoardを表示する手順は以下。
ssh hostname -vvvTを実行すると以下のログが出る。
debug1: Trying private key: /c/Users/username/.ssh/mykey.pem debug3: sign_and_send_pubkey: RSA SHA256:nQr29X+3juJvSWOedeEVmgKCZgaO169LKCvAZCKkFKM debug3: sign_and_send_pubkey: signing using rsa-sha2-512 SHA256:nQr29X+3juJvSWOedeEVmgKCZgaO169LKCvAZCKkFKM debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 51 debug1: Authentications that can continue: publickey,password debug2: we did not send a packet, disable method debug3: authmethod_lookup password debug3: remaining preferred: ,password debug3: authmethod_is_enabled password debug1: Next authentication method: password
「receive packet: type 51」はユーザの認証に失敗したという意味。 今回の原因は/home/username/.sshフォルダの権限が600になっていたため。正しくは700。 sshはほんとハマリやすい。。
学習時にcustom loss functionを使った場合、load時も同じ関数をcustom_objectとして渡してやらないといけないらしい。 ただ、再学習するのではなく推論するためにmodelをloadするのであれば以下のようにcompile=Falseを指定してやればOK。
model = load_model("lc_model.h5", compile=False)
参考: