ITの隊長のブログ

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

雑ログ lambdaで遊ぶ

lambda楽しい〜とつぶやいた3時間後、無事死亡

一気にやろうとして死んだ。

ハマったこと

  • lambda-uploderでアップした関数のruntimeがpython2.7
  • 謎のエラー invalid syntax (__init__.py, line 53)
  • 動かないlambda layer

runtimeの件は、lambda-uploderのREADME.mdみたら解決した。

github.com

最初、awsの公式の仕様と勘違いして、awsのドキュメントをあさっていたんだけど見つからなくてシクシクしていたら、よくよく考えてみたら、こいつだったことを思い出した。

謎のエラーは、bs4がC言語で動かいているからバージョン指定しないと動かないっぽい。

qiita.com

requirements.txtに追記した.

beautifulsoup4==4.6.0

lambda layerは、ブログ記事通りに試さず、自分のやりたい通りに書いたら動かなかったので、次は下記ブログを一度試して動いたことを確認してから進む。

blog.serverworks.co.jp

そういえば、lambda layerで利用するモジュールはどうやってinstallされるんだろ?

雑ログ

決定木で、テストデータがどの葉に分類されるかを自動でやりたいとき、なんかないかなーと探してたら公式ドキュメントにあった。

scikit-learn.org

# decision_pathで全体の結果が返ってくる?
node_indicator = estimator.decision_path(X_test)


# テストデータの行番号
sample_id = 0

# 0行目のデータを決定木に入力したときに、通る順番のノード番号が入っている.
node_index = node_indicator.indices[node_indicator.indptr[sample_id]:node_indicator.indptr[sample_id + 1]]

# ということは、このリストの最後に入っているノード番号が、葉のノードを示していることになる.
last_idx = node_index[-1]

# ノード番号をkeyに、そこに到達する行番号を保持するようにする
last_node_d = {}
last_node_d[last_idx] = []
last_node_d[last_idx].append(sample_id)

last_node_d = {}
for sample_id in range(X_test.shape[0]):
    node_index = node_indicator.indices[node_indicator.indptr[sample_id]:node_indicator.indptr[sample_id + 1]]
    last_idx = node_index[-1]
    if not last_idx in last_node_d.keys():
        last_node_d[last_idx] = []

    last_node_d[last_idx].append(sample_id)

これで、あるノード番号に含まれるテストデータを抽出することができる.

2019年1月3週目の振り返り

体調管理

  • ダメだねー

技術

数学

  • 特にしていない

個人開発

  • 決定木で遊んだ

  • 読んでいない

趣味

映画

ゲーム

  • やっておらん

仕事

  • うーむ。まだまだまだまだだなーという気持ち
  • 不安な業務に対し、相談も動きも遅いので早めに作業を終わらせたいのだが、なかなかうまくいかない
    • 多分、分析する必要があるのでちっと日毎に振り返りをやりたい

家庭

  • 子供の100日記念を取る場所を探し中
  • 結婚式の予算だったり、ドレスとかだったり確認しに

雑感

  • もちっと、資料を作る力と引き続き数学を勉強していきたい
  • アルゴリズムの実装を確認するのは結構勉強になったので引き続き進める
  • 体調管理どうすべ

雑ログ

YOLOを引き続き勉強中である。

github.com

↑のような説明記事をみてもわからないことが多い

  • darknet53で画像から特徴をとっているらしいが、それが後半の検出にどう使用されているのか
  • クラスの出力が、softmaxじゃなくてロジスティック回帰
  • バウンディングボックス検出の詳細ロジック
  • アンカー定義の謎 -> これはわかった

とりあえず、せっかく勉強したので、Tensorflow勉強しながらこれも進める。

2019年1月2週目の振り返り

体調管理

  • 1日歩いて出社した
  • +@ 土曜日に2kmぐらい歩いた

技術

数学

  • 微分を改めて勉強
  • 「あたらしい機械学習の教科書」みたいな名前の本のP.100あたりの微分の計算が解けない

個人開発

趣味

映画

  • ( ゚д゚)ハッ! みてない

ゲーム

仕事

  • ぼちぼち...
  • もうちょっと相談などを早めにすべき

家庭

  • 子供の100日記念を取る場所を探し中

雑感

  • まぁぼちぼちな進み方できた
  • YOLOは引き続き勉強したい