ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ

あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ

ああああああ!!!!!!!ああああああああ!!!!!!あ!!!!!!!!!!!!!!!!あ!!!!!!!!!!!!あああああああああああああああああああああああああああああああああああああ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!AAAAAAAAAAAAAAAAAAAAAあ

!!!!!!!!!!!!!!!!!!!!1

あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ

ああああああ!!!!!!!ああああああああ!!!!!!あ!!!!!!!!!!!!!!!!あ!!!!!!!!!!!!あああああああああああああああああああああああああああああああああああああ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!AAAAAAAAAAAAAAAAAAAAAあ

!!!!!!!!!!!!!!!!!!!!1

ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ!!!!!!!あああああああああ!!!あ!!あ111111111111111

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

f:id:aipacommander:20190705224231p:plain

f:id:aipacommander:20190705224247p:plain

 あああああああああああああああああああああああああああああああああああああ

あああああ

あああああああああああああああ

ああああああああああああああああ

あああああああああああああああああああ ああああ

あああああああああああああ

あああああああああああああああああああああああああああ

ああああああああああああああああああ

あああああああああああああ

ああああああああああああああ

あああああああああああああああああああああああああああああああああああああああ

ちばりよー

【mlflow】作成済みのrun_idの情報(metrics, tags, etc...)を更新したい

ドキュメントみてたけど明示的に書いていない(はず)

mlflow.org

start_runの項目を確認すると、run_uuidの引数があるので「もしや・・・!」と思い試した。

# 色々情報はすっ飛ばす
# MLflowに記録
mlflow.set_tracking_uri('http://localhost:5000')
with mlflow.start_run():
    mlflow.sklearn.log_model(model, "ml_models")
    mlflow.set_tag('test_tag', 0)  # あとから更新したいタグ

引っ張ってくる

from mlflow.tracking.client import MlflowClient
from mlflow.entities.view_type import ViewType

query = 'tag.test_tag = "0"'
runs = MlflowClient().search_runs([0], query, ViewType.ACTIVE_ONLY)
_run = runs[0]
print(_run.info.run_uuid)  # 11923d8756ea4d21axxxxxxxxxxxxxxxxx

更新する

# MLflowに記録
mlflow.set_tracking_uri('http://localhost:5000')
with mlflow.start_run(run_uuid=_run.info.run_uuid):  # run_uuidを指定する
    mlflow.set_tag('test_tag', 1)  # 更新

これでできた(めっちゃ時間かかった....

駄目駄目マン

まだスランプというか、うまくいっていないマン。振り返りたい

駄目駄目なこと

  • 毎日がギリギリ
    • ギリギリなのが悪いのではなくその上進捗がでていないのが駄目駄目

原因

  • 脳死している気が...
    • 自分の仕事にプライドを持っていないような
    • 年齢重ねるにつれ、プライドがでてきたなと思いきや逆にプライドがなくなっている気が
    • その証拠に何度も似たような失敗していると思う
    • これはやばい. 勝手に疲弊して死んでいくパターン
  • 実力が足りない
    • 永遠の課題

解決案

  • 1人で仕事しない
    • 人の意見入ると一点張りになりづらいのでいいかなって思う
    • 資料とかよく突っ込まれるのでレビューしてもらうのもいいかと
  • 一回死ぬ(論理/n回目)
    • 今実力が足りないのはわかっているので勉強し続けるしかない
    • しかし時間はないので睡眠削るとかしか手がない
    • だがしかし経験上長くは続かないので細かい時間使ってなんとかするしかない

こういう考えもだめかな?(そもそも無理するって現実的なの?的な
実はこれも逃げなのでは?

うーむ難しい

希望

  • プライドを持つ
    • オレがやるなら絶対成功させる的な

まずはこれじゃないかなー

Tensorflow2でKerasみたいな保存の仕方すると死ぬ

タイトルはてきとーにつけたので正しくはない

Colaboratoryで遊んでいるとき、他notebookで保存したモデルを読み込みたかった.

import tensorflow as tf


model = None  # 学習済みのモデルを想定
# Model is the full model w/o custom layers
model.compile(optimizer=tf.keras.optimizers.Adam(),
              loss=tf.keras.losses.CategoricalCrossentropy(),
              metrics=['accuracy', tf.keras.metrics.AUC(name='auc')])

model.save('/content/drive/My Drive/model.h5')

保存に成功したので、別notebookでロードする.

model = tf.keras.models.load_model('/content/drive/My Drive/model.h5')

ValueError: Unknown entry in loss dictionary: class_name. Only expected following keys: ['xxx']

??????

どゆことと、調べたら下記issueがヒット

github.com

i find the reason, in my code: loss_object=tf.losses.SparseCategoricalCrossentropy() model.complie(loss=loss_object, optimizer="sgd")

it raise the error.

the i change my code to model.complie(loss="sparse_categorical_crossentropy", optimizer="sgd")

it is ok

なんだと・・・・

いや、それはそれでいいんだけど、カスタムlossとかの場合はどうなるんじゃろ???

それはさておき、issue出した人はPRも出していた

github.com

これをコピペしてロードしたら動いた

しかしどうしようかな。。。