メモ Kubernates
BIツールのMetabaseを構築するのがゴール の記事⬇️ qiita.com
k8s触り始めた、というかHelm
(アウトプットする言うてぜんぜん書けてない)
KubernetesはDocker for Macに標準で入ってた。というか設定GUIからチェックをつければ入る minikubeももともと入れてたのでどうなるのかと思ったら
$ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE docker-desktop docker-desktop docker-desktop docker-for-desktop docker-desktop docker-desktop * minikube minikube minikube
から一覧がみれて
$ kubectl config use-context docker-for-desktop
で切り替えることができるらしい
$kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE docker-desktop docker-desktop docker-desktop * docker-for-desktop docker-desktop docker-desktop minikube minikube minikube
なんか2つあるが...
helmはkubernatesをいい感じにするやつっぽい どっちにしろyaml地獄なんですが...
Scality/Zenkoをデプロイしようとしても
$ helm install --generate-name -f single-node-values.yaml zenko Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(ConfigMap.metadata): unknown field "role" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
なのはなぜ...(足りない経験値)
GensimのDoc2VecでQiitaのタグを可視化 <実践編>
(<理論編>はありません)
Qiitaの記事にはタグがついていて、読者は記事についたタグを見て「何についての記事か」を把握することができるようになってます。書き手は必ず1つ以上タグをつけなければいけないようです。要はタグは記事の内容の特徴を表すものなので、これを利用してDoc2Vecでタグ間の関係性を可視化してみます。おおまかな流れは
- Qiita APIを使って記事を取得
- 前処理を行う
- GensimのDoc2Vecで学習させてmodelを作成
- t-SNEを使って次元圧縮して2次元に
です。雑に書き散らかしたソースは https://github.com/SyureNyanko/Doc2Vec_From_Qiita
Qiita APIは「1時間に1000回」の制限があるので、4秒のSleepを入れました。取得するデータ自体が大きくなる&稼働時間がながくなるのでAWSを利用し、EC2上でスクリプトを動作させて、データはS3へと格納するようにしました。記事数の多い上位282タグを利用しました。
取得されるデータはJSONの配列で、rendered_bodyとbodyなどがあります。rendered_bodyを利用し、lxml.html.document_fromstringで文字列にしてからMecabで分ち書きにしました。最初はJUMAN++を利用していましたが、長い文字列を入れると(?)遅くなるよう(?)で今回は見送りました。後日、検証したいと思います。
Doc2Vecでの学習はMBP(Mid 2015)で6時間ぐらいかかりました。
できたモデルをt-SNEで2次元まで次元圧縮しました。
(重なってわかりづらい...)
- 左上のSQLのあたりにDatabase関連が集合(Database/DB/SQLServer/MongoDB)
- 左下にはテキストエディタが集合(VSCode/Vim/Emacs/Sublime text)
- Security/セキュリティやtest/テスト、Facebook/Twitter、スクレイピング/Selenium、Chrome/Firefoxが重なってますね。HTTPとWebも近い。
わかることを挙げるとキリがありません。楽しいですね。それでは。
(今年はいろいろ勉強してアウトプットしていこうと思います。)
参考にしたサイト/コード:
Qiita公式 https://qiita.com/api/v2/docs
Gensim https://radimrehurek.com/gensim/
DeepAge : Doc2Vecの仕組みとgensimを使った文書類似度算出チュートリアル
https://deepage.net/machine_learning/2017/01/08/doc2vec.html
Jacopo Farina's blog https://jacopofarina.eu/posts/gensim-generator-is-not-iterator/
ARBELT OFFICIAL BLOG https://blog.albert2005.co.jp/2015/12/02/tsne/
Target Visualization - T-SNE and Doc2Vec https://www.kaggle.com/arthurtok/target-visualization-t-sne-and-doc2vec/data (重いので表示されるのに時間がかかります)
chainerでCNN組んでラーメン画像分類 (やってみた)
動機
どこかのphp入門書の帯にラーメンの種類(味噌ラーメンとか塩ラーメンとか)を機械学習で(?)見分けるという売り文句書いていたので、それにインスパイアされ、初心者にはうってつけの題材だと思ったので、chainerのCNN(Convolutional Neural Network)手習いとしてやってみました。
とりあえず読んだ本は
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (17件) を見る
- 作者: 岡谷貴之
- 出版社/メーカー: 講談社
- 発売日: 2015/04/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (13件) を見る
要件
画像から何ラーメンか見分けたい。以下のようにフォルダごとに分けた学習用画像がある。
中身は各種類の画像(写真はつけ麺フォルダ)
種類は家系ラーメン、二郎系ラーメン、味噌ラーメン、塩ラーメン、とんこつラーメン、つけ麺の7種類である。これらでCNNのモデルに学習させて分類器を生成する。
環境
MacBook Pro
Python 2.7.10
chainer 3.0.0
実装
datasetを作るやりかた。
非常に役に立ちました。
qiita.com
モデル
5層のネットワークです。畳み込みのパラメータは適当
1と2、2と3の間が畳み込みで繋がれて3と4, 4と5の間が全結合です。
特に根拠はありませんが、これのmnistの例を参考にしてみました。
- 作者: 新納浩幸
- 出版社/メーカー: オーム社
- 発売日: 2017/09/15
- メディア: 単行本
- この商品を含むブログ (1件) を見る
学習結果
validation/main/accuracyがmain/accuracyと乖離し、6割止まりであるため、
過学習していると思われます。
モデル、パラメータ、学習データをチューニングする必要がありそうです。
一応ソースも貼っておきます。
github.com
次回、いろいろ真面目に?チューニングがしたいの巻です。たぶん。