概要 Pythonでコマンドライン引数を扱う際に便利なclickについて、利用可能なTypeについてまとめる。 バージョン情報 Click==7.0 Python 3.7.3 指定可能なタイプ 下記のTypeが利用できる。 string int float bool click.UUID click.File click.Path click.Ch…
概要 Pythonでword2vecを実行する簡易な例として、gensimでWikipediaのリンク情報を用いて各記事の距離を出すコードを書く。 バージョン情報 Python 3.6.8 gensim==3.6.0 word2vec==0.9.4+2.g8204e5c 導入 必要なものはcondaで入れられる。gensimのword2vec…
概要 Open Image Dataset v4から600クラスのデータを落としてきて中身を確認したり軽く使ってみたり、Pascal VOCの形式に変換したりする。 v5が出たこの時期にいまさらな記事。 ダウンロード 下記からダウンロードする https://storage.googleapis.com/openi…
概要 リクエスト先のURLが302等でリダイレクトをされた場合に、リクエスト先のURLを取得したい。 バージョン情報 requests==2.21.0 ソースコード リダイレクトURLを取るだけであればヘッダだけあれば良いのでgetではなくheadでリクエストを行い、レスポンス…
概要 matplotlibで色分けしてグラフを表示したい時に、色をたくさん取ってくる方法について調べる。 バージョン情報 matplotlib==3.0.3 8色まで matplotlib.colors.BASE_COLORSで8色が出せる。用意されている色はb, g, r, c, m, y, k, w import matplotlib f…
概要 仕事柄Webスクレイピングのコードを書くことがよくあるので、普段使っているコードをまとめておく。 バージョン情報 beautifulsoup4==4.7.1 requests==2.21.0 chardet==3.0.4 reppy==0.4.12 導入 $ pip install beautifulsoup4 requests chardet reppy …
概要 Airflowでdagの実行中にタスクをソースコードから削除すると、stateがremovedになったタスクがTask Instancesのトップに表示されたままになることがある。 フィルタでState not contains removedとすれば消えるけど、邪魔なので根本的に削除する方法を…
概要 AirflowのCheckOperatorを使ってテーブルのカウント等のチェックを行う。 バージョン情報 Python 3.6.7 apache-airflow==1.10.3 CheckOperatorの種類 name description CheckOperator 0やemptyをチェックする ValueCheckOperator 値が指定値と同じか、…
概要 OpenCVで画像を読み込んでサイズを一定のルールで変更して保存する処理を実行する。 用途としては機械学習用に集めた画像データを保存しておく用として、最大で縦横のどっちか長い方が512pixelになるようにしておくことを想定している。 バージョン情報…
概要 Tensorflow2.0のalpha版が出ていたのでBIGGINER TUTORIALSを読む。 バージョン情報 tensorflow-gpu==2.0.0a0 Python 3.7.3 読んだページ Get started with TensorFlow 2.0 for beginnersのクイックスタート、服の分類問題、回帰、モデルの保存とリスト…
概要 Tensorflow2.0のalpha版が出ていたのでBIGGINER TUTORIALSを読む。 バージョン情報 tensorflow-gpu==2.0.0a0 Python 3.7.3 読んだページ Get started with TensorFlow 2.0 for beginnersのクイックスタート、服の分類問題、回帰、モデルの保存とリスト…
概要 Pythonの例外を投げる時に「どれ使おう?」と迷うことが多いので一覧を作成する。 出しやすい例外については実際に発生するサンプルコードを掲載。 バージョン情報 Python 3.6.8 built-inの一覧表示 ipythonより下記のhelpから表示。 help(__builtins__…
概要 クラウド上にいるサーバーのネットワークの使用量をある程度キャップしたい。 バージョン情報 wondershaper 1.1a-9 Ubuntu 18.04.2 導入 $ sudo apt install wondershaper 制限をかける wondershaperで制限をかける際の文法は下記。 wondershaper [inte…
概要 顔認識システムのFaceNetを使って顔の距離計算をしてみる。 バージョン情報 FaceNet Latest commit 096ed77 on 17 Apr 2018 顔認証の実装について 顔認証が可能な実装として他にOpenFaceがある。アルゴリズムはFaceNetに近い。 FaceNetはTensorflowとPy…
概要 顔認証の勉強中に、FaceNet: A Unified Embedding for Face Recognition and Clusteringを読む。そのメモ書き。 下記がその論文。 https://arxiv.org/abs/1503.03832 下記がその実装。 https://github.com/davidsandberg/facenet Abstract まずはFaceNe…
概要 Face DetectしたかったのでOpenCVとdlibをそれぞれサンプルコードを動かす。 バージョン情報 Python 3.7.3 dlib==19.17.0 OpenCV==3.4.2 インストール condaで仮想環境作ってOpenCVとdlibを導入する。 pipとかjupyterとかscikit-imageとか他に使いそう…
概要 画像処理のコードを書いてブログに例を載せたい時に、拾い物の写真だと権利周りが気になる。 そんな時に使えることがあるskimageやsklearnのサンプル画像を貼っていく。 バージョン情報 scikit-image==0.15.0 scikit-learn==0.20.3 データの配置場所 sc…
概要 HBaseに対してがっつりinsertやselectする際はhiveと連携させると楽だった。 バージョン情報 Hive 1.1.0 HBase 1.2.0 参考情報 https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration keyとvalueだけを持つテーブルの生成 今回のサンプル…
概要 Airflowのテンプレートに日付を埋め込む時に毎回ググってる気がしてきたので、自分用のまとめを書いた。 バージョン情報 apache-airflow==1.10.3 参考URL https://airflow.apache.org/macros.html 確認用スクリプト contextの中にいるtsとかdsとかds_no…
概要 ConnectionやVariableの値はWeb UIから入れられるけど、実運用ではコマンドラインから構築できるようになっていた方が便利。 試しにConnectionとVariableにそれぞれ値を投入してみる。 バージョン情報 Python 3.6.7 apache-airflow==1.10.3 Connections…
概要 HBaseを使う際のコマンドをhbase shellでちょっと確認。 バージョン情報 HBase 1.2.0 hbase shellの起動 $ hbase shell helpの参照 > help 機能ごとのhelpの参照。下記はcreateの例。 > help 'create' テーブル生成 exampleテーブルの生成。 > create '…
概要 pandasにはcsvやpickle、parquetなど様々な形式でのデータ出力が用意されている。 各出力形式で実際にデータを出力して結果や実行時間を確認してみる。 実行時間はipython上で%%timeを用いて計測。小数点以下はround。記事の最後に実行時間と出力サイズ…
概要 psutilでCPUのコア数、ディスクの空き容量、メモリの使用量等、ハードウェアの情報を取得する。 バージョン情報 Python 3.6.8 psutil==4.4.2 Ubuntu 18.04.1 インストール $ pip install psutil CPUのコア数 import psutil psutil.cpu_count() => 8 上…
概要 PythonからElasticsearchにデータの登録、検索、削除を行う。 バージョン情報 Python 3.6.8 (elasticsearch==6.3.1) Elasticsarch 6.5.4 導入 PythonのElasticsearchクライアントを入れておく。 $ pip install elasticsearch ElasticsarchはDockerで立…
概要 PySparkでexplodeやflatMap、mapPartitionsを用いて1レコードを複数レコードに加工する。またgroupByで元の1レコードに戻す。 バージョン情報 spark-2.3.1 Python 3.5.5 サンプルデータ id, title, tagsの3つのカラムを持つcsvファイルがあるとする。ta…
概要 pandasで大きめのDataFrameに対してapplyすると、いつまで待てば結果が返るのか不安になることがあるのでtqdmで進捗を表示したい。 バージョン情報 Python 3.6.8 tqdm==4.31.1 pandas==0.23.4 サンプルデータ ランダムな数値で1万行のDataFrameを作成し…
概要 リージョン一覧自体は下記ページなどに載っているけど、利用可能でないリージョンも載っていたりAzure CLIで指定するNameが載っていなかったりする。 Azure Locations | Microsoft Azure CLIを利用して利用可能なリージョンとそのNameについても取得す…
概要 AirflowのConnectionsで設定したDBへの接続情報を利用して、Pythonのスクリプト上でDBへ接続する。 サービスで利用するDBの接続情報(ユーザー名/パスワード等)をAirflowで管理してしまおうという考え。 バージョン情報 Python 3.6.7 apache-airflow==…
概要 condaで使っているPythonのバージョンを上げたり下げたりする。 バージョン情報 conda 4.6.7 Pythonのバージョンを更新する envに作るのではなく $CONDA_HOME/bin/python 自身のバージョンを上げる場合。 実行前のPythonのバージョン $ python --versi…
概要 Azureで1台のVMにNICを2枚挿したかった。 バージョン情報 azure-cli 2.0.54-1 Ubuntu 18.04.1 LTS vmの立ち上げ まずは適当な名前でVMを生成。 RESOURCE_GROUP=your_resource_group_name $ az vm create \ --resource-group $RESOURCE_GROUP \ --name e…