情報系院生のノート

情報技術系全般,自分用メモを公開してます。

Python

MLFlowの使い方

はじめに MLFlowの3本の柱 MLFlow Tracking 最小サンプル 複数の実験を管理したい Experiments Runs Tags log_param argparseをまるごと記録したい log_metric x軸をtimeじゃなくてstepで記録したい log_metricの履歴のcsvが欲しい log_artifact フォルダま…

強化学習の報酬のグラフを良い感じに書く

完成図 想定するデータ コード 説明 定数 例 完成図 報酬のグラフ こんな感じで2つのアルゴリズムを比較できるように作りました。もちろん、1つでも使えます。 (報酬が離散的すぎてやや例としては悪いですが…) 想定するデータ なんでも良いのですが、今回…

Pytorch Distributed Data Parallel(DDP) 実装例

はじめに DataParallelといえばnn.DataParallel()でモデルを包んであげるだけで実現できますが、PythonのGILがボトルネックとなり、最大限リソースを活用できません。 最近では、PytorchもDDPを推奨しています。が、ソースの変更点が多く、コーディングの難…

Pythonでmultipart/form-dataの送受信

はじめに 送信 受信 AWSのLambda その他 はじめに 以下記事の通り、AWS上のLambdaを使って機械学習モデルのAPIを立てたのですが、 Pythonでmultipart/form-dataのパースが大変だったので共有します。 tmyoda.hatenablog.com 送信 requestsモジュールを使用す…

セグメンテーションするpytorch機械学習モデルをAWSへデプロイ(API Gateway, Lambda, ECR)

はじめに 独り言 構成 コンテナイメージの作成 フォルダ構成 Dockerfile POST, Responseスキーム app.py ローカルでテスト Lmabdaのロギング ECRにプッシュ Lambda関数作成 API Gatewayの作成 POSTテスト 感想 参考 はじめに pythonを使った機械学習モデルは…

EfficientDetのsingle-machine model parallelを実装して、D8(D7x)を学習させる

はじめに 実装したリポジトリ 実装解説 バックボーン NMS まとめ はじめに 魚群コンペ記事の第二弾です。 tmyoda.hatenablog.com EfficientDetの良さそうなリポジトリを見つけ、このリポジトリをコンペに使おうと思いました。 github.com しかし、EfficientD…

singularityでcuda+pytorchのコンテナの作り方

はじめに 構成 使い方 実行方法 sandbox作成 shellに入る .defファイル はじめに tmyoda.hatenablog.com この記事の亜種です。 singularityは--nvを付ければホストのGPUをマウントするので、本来はホストのcudaを使いますが、harmo2とharmo5のcudaバージョン…

singularityでubuntu20.04+python(+pipenv)環境を構築

はじめに 構成 使い方 実行方法 sandbox作成 shellに入る .defファイル はじめに pythonは仮想環境が豊富なので、わざわざコンテナ化する必要ある?って思っていましたが、 いざGPUクラスタ上で動かすときに環境構築ハマったので、そのとき作成したpythonを…

docker, singularityでtzdata等の対話が必要なモジュールのインストールで止まるとき

解決方法(非推奨) 解決方法 singularityをdefからbuildしていたのですが、以下ような画面でインストールが止まってました。 Configuring tzdata ------------------ Please select the geographic area in which you live. Subsequent configuration quest…

pysparkの使い方に慣れるためにirisデータセットをいじってみる

はじめに 環境構築 サンプル集 読み込み カラム確認 統計量 スライシング ランダムサンプリング 列の追加 ユーザ定義関数 グルーピング groupBy→aggで集計 groupBy→pivotで縦横変換 一意の識別子を付ける DFのJOIN 列を取り出す 参考文献 はじめに pysparkを…

SingularityコンテナでOpenCV+Boostを使ったC++コードをコンパイル

はじめに コンテナ作成 作成したビルド&強化学習に必要な環境 実行方法は2つあります Singularity Libraryからpull .defファイル 注意点 はじめに 研究でC++コードをpybind11を使ってPythonから呼んで強化学習をしています. 強化学習をGPU上で回したくなっ…

Singularity + headless VNC + Pipenvを使ってサーバ上で強化学習環境を整える(gym, pybullet)

はじめに headless VNCとは headless VNCを触ってみる docker Singularity 導入 docker singularity (rootless) singularity libraryからpull (おすすめ!) ローカルPCでbuild サーバ上での作業 xfce4 パネル初期化コマンド はじめに 強化学習をしてると何か…

singularityの使い方

はじめに メリット Dockerとの違い コンテナ作成方法 コンテナ作成例 pytorch/conda-cudaをDocker Hubから.sif作成 sandboxでコンテナを作成するオプション マシン上のdockerにあるhello-world imageから conda-torch.defから コンテナ実行方法 conda-cuda-t…

PFN2020インターンに応募したので,その課題の解答を公開します

PFN2020インターンに応募した話 PFN2020課題 もし数式が正しく表示されていなければ,ブラウザをリロードしてみてください. Q1 問題の解法説明 プログラムの正しさの検証 Q2 問題の解法説明 プログラムの正しさの検証 Q3 問題の解法説明 プログラムの正しさ…

Azure Web App + Flask + Github Actionsで認証ページ付きポートフォリオをデプロイする方法

はじめに 概要 参考にさせて頂いた記事 Azure登録まで Flaskで認証ページを実装 解決策 デプロイ サブモジュール関連のトラブル 注意点 追記 はじめに 以前Firebaseでデプロイしたときをベースに書いてますので、先にこちらを見て下さい。 tmyoda.hatenablog…

論文のpdfをコピペしたときのいらない改行を削除する

追記 (2020/12/07) はじめに 導入方法 注意点 追記 (2020/12/07) Webで動く便利なサイト見つけました https://dream-exp.net/shaper/ はじめに 論文を翻訳にかけるとき、単純にCtrl+Cすると余計な改行がはいって非常に煩わしいですよね そこで、クリップボー…

pandasで行検索するときの速度比較

pandasで行検索 忙しい人向け dfを定義 検索条件が1つのとき 検索条件が2つのとき 検索条件が3つのとき 結論 pandasで行検索 忙しい人向け 結論から言うと,apply, map, queryを使うよりも ==, <=等の等号不等号を使った検索の方が早いです. dfを定義 impor…