ひよこ、通勤中。

通勤中の電車の中でひよこは何を思うのか。

カランメソッドをはじめて、Stage1がようやく終わった

カランメソッド

会社で英語を使う機会が多く、学ぶ必要があったのだが、まわりからカランメソッドというのをおすすめされることが多かった。

カランメソッドはくっそ辛いかわりにめっちゃ能力が身につくみたいなやつ。 nativecamp.net

5年前くらいにもやろうとしたことがあるんだけど、本当につらすぎて1mmも面白くないので早々にやめた。 英語がまじで全然できないときはフリートークで先生と楽しく話して、発話可能なボキャブラリーを増やすほうが自分には向いてた。あのときに頑張ってカランやってたら今の倍くらい英語がさらに嫌いだったと思う。

でも5年たってしょうもない話くらいはできるようになったし、そろそろちゃんと学ぶかと思って重い腰をあげて始めた。

カランメソッドはStage1~Stage10があって、テストをうけてどこから始めるか決められるんだけど、一番最初のStage1からやってねと言われたのでそうすることにした。

すすめかた

私はNativeCampというサービスを使ってやってる。 12月頭からはじめて、昨日Stage1がようやく終わった。 時間としては9時間(18レッスン)くらいかかった。

カランメソッドは連続して2レッスンうけると倒れそうになるくらい頭が痛くなる。 私は詰め込みでやるときでもカランを1レッスン受けた後に30分別のことをするようにした。

それでようやくそんなに苦痛じゃなくなってきた。

Stage1でできるようになったこと

  • 三単現のsとか、省略形(She is --> She's)とかが自然と口から出るようになった
    • isとareもかなり区別できるようになった気はする
  • 変なクセが矯正された
    • It's の後に必ずaをいう癖があったことに気づいた。It's a small. みたいな。

他になにができるようになったかはわからない。 口から出てくるスピードは早くなったような気がしないでもない。


とりあえずStage2も頑張ってみます。

「人を動かす傾聴力」を読んだ

こちらの本を読んだ。

仕事をしていく中で、自分のことを喋ってくれるタイプではない人と関係性を深めていくということが十分にできていないのを感じていた。

本を開いてすぐ、傾聴の目的は「長期的な良好な関係性を作る」とあるが、まさにそれができるようになりたいと思った。

本の内容についての詳細はここでは書かないが、傾聴スキルをつけることは一朝一夕でできるようなことではないため、読んだ上でで自分が日々できているかチェックしたいと思った項目を作った。

自分ができているかチェックリスト*1

  1. 相手の話を聞こうという意思を持ち続けている
  2. 相手と話すスピードをあわせる
  3. 相手と話す音量をあわせる
  4. 目標ではなく、目的を聞いている
  5. オープンクエッションで質問している
  6. 具体的にはどういうことですか?と深堀りができている
  7. 「事実」をほぼ全て出し切ってもらえている
  8. 「事実」のあとに「解釈」を話してもらい、理解できている
  9. 沈黙の最中に相手に合わせた表情で待つことができている
  10. 5W1Hをすべて聞いている
  11. 「過去」と「未来」を知る
  12. 「要約」と「確認」を入れることができる
  13. 相手と話す単語をあわせる
  14. 相手と話すジェスチャーをあわせる
  15. 定期的にここまでの会話でなにか気づきがあったかを確認できている

最後に

3時間ほどで読める軽めの本でありながら、学ぶ部分が多くてとても良い本だった。 自己主張が強めな自分みたいなひとにはぜひおすすめしたい。

*1:項目は優先度順。最初のほうができるようになったら、後の方までできるように頑張っていく

rect(top, left, bottom, right)からIoU計算する

IoUとは: Intersection over Union (IoU) for object detection - PyImageSearch

import numpy as np
from sklearn.metrics import jaccard_score

N = 100 # 精度
# rect:  top, left, bottom, right (0~1, float)
def rect_to_array(rect):
    top, left, bottom, right = (np.array(rect) * N).astype(int)
    box = np.pad(np.ones((bottom - top, right - left)), ((top, N - bottom), (left, N - right)))
    return box

def iou(true, pred):
    true_array = rect_to_array(true)
    pred_array = rect_to_array(pred)
    return jaccard_score(true_array.flatten(), pred_array.flatten())

print (iou((0.5,0.5,1,1), (0,0, 0.8, 0.8)))
# 0.1125

saved_modelのグラフの中身がどうなってるかを確認する

1. ログにグラフ情報を書き出す

import tensorflow as tf
log_dir = "/tmp/tf-log/"

graph = tf.Graph()
with tf.Session(graph=graph) as session:
    loaded = tf.saved_model.load(
        session,
        {'serve'},
        ここにsaved_modelのpath
    )
    
    train_writer = tf.summary.FileWriter(log_dir)
    train_writer.add_graph(session.graph)

2. tensorboardで見る

tensorboard --logdir /tmp/tf-log


追記(2020/05/04): netronつかったらguiでグラフ構造確認できるわ...
github.com

Docker/kubernetes関連本メモ

これ読みながらのメモ

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

alias:

  • k: kubectl

Dockerコンテナのdeploy

  • --nameは本番環境では使わない -docker image prune
    • 現時点で使ってないimageの削除
  • docker container stats [container id]
    • container を top する

docker-compose

  • --build option で毎回ビルド
  • volumes
    • local:dest
  • container-name で名前つけれる

実用的なコンテナ構築とデプロイ

  • データはData Volumeコンテナに持たせる
  • busybox
    • data volumeとかに使われる最小限の軽量OS
  • --volume-from [volume container name]
    • volumeが共有される

local(Docker for Mac)でkubenetes

  1. kubenetesのpreferenceからkubenetesを起動
  2. kubectxコマンドで確認するとdocker-for-desktop というクラスタができている

training

  • k proxy でpodたちと通信できるproxyが立ち上がる
  • k exec -it POD COMMAND -c CONTAINER で実行中のコンテナに入る

deploy

  • k rollout history deploy DEPLOY でdeployのhistoryが見えれる。(--recordつけてapplyしたdeploymentの)
  • k rollout history deployment DEPLOYでrollback

service (svc)

  • cluster内のserviceは Service名.Namespace名.svc.local で名前解決できる
  • ClusterIP Service(default): 内部IPアドレスにserviceを公開できる
  • NodePort Service: 各ノード上からServiceポートに接続するためのglobalなportを空ける
  • LoadBalancer Service: クラウドで提供されているロードバランサと連携する
  • ExternalName Service: kuberenetesから外部ホストを解決するためのえい