情報系院生のノート

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

MLFlowの使い方

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

OpenCVで点線を描画する

C++

はじめに 点線を描画する関数 はじめに OpenCVには点線を描画する関数がありません。 すごしググると以下のようにcv::LineIteratorを使う方法がヒットしますが、これでは太さの指定ができません。 https://answers.opencv.org/question/180090/how-to-draw-a…

singularity sandboxが削除できないとき (Device or resource busy)

解決方法 lsofコマンドを使って、そのフォルダを使用してるプロセスをkillすれば良い コマンド lsof /path_to_sandbox 結果 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 269589 aaa rtd DIR 0,55 4096 397411169 path_to_sandbox run 269603 a…

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

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

Pytorch Distributed Data Parallel(DDP) 実装例

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

はてなブログで技術ブログを書く

Web

はじめに テーマ はじめに Qiita、Zenn等の技術記事専門サイトもありますが、はてブロで始めたいという方におすすめの設定を紹介します。 テーマ 等ブログのテーマは公式のEpicです。 個人の主観前回ですが、これが一番見やすい気がします。 あと、デフォル…

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を使った機械学習モデルは…

Beating the World’s Best at Super Smash Bros. Melee with Deep Reinforcement Learning (2017)

動画 1Pが人間のエキスパート 2Pが強化学習エージェント 論文紹介 https://arxiv.org/abs/1702.06230 スマブラDXを強化学習して、エキスパートに勝利した論文です。 DX大好きなので読んでみました。 しかしQ学習が非定常性な相手であるself-playに向かないっ…

Emergent Complexity via Multi-Agent Competition (ICLR 2018)

論文紹介 https://arxiv.org/abs/1710.03748 競争的な環境におけるSelf playに関する論文を読んだメモです。 zennのスクラップという機能を使ってみました。 zennのメモ Emergent Complexity via Multi-Agent Competition (ICLR 2018) しばらくスクラップをO…

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

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

mAP(mean Average Precision)を手っ取り早く上げるには

はじめに 結論 理由 mAPの算出方法 APの算出方法 例 mAPを上げるには はじめに signateの物体認識コンペ(魚群検知)に参加したので、そのときに得た知見をいくつか共有したいと思います。(複数記事に分ける予定) signate.jp 新記事公開しました。(21.02.1…

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を…

スライドの作りに便利なフリー素材サイト

はじめに 画像系 freepik Unsplash pixabay o-dan 図系 isoflow スライド作り注意点 はじめに twitterでたまに回ってくる,スライド作成向け便利素材サイトをまとめました 画像系 freepik 高品質フリー素材画像サイト stories.freepik.com Unsplash unsplash…

ubuntu18.04 noVNC dockerコンテナを公開しました

はじめに 公開したもの DockerHub GitHub はじめに tmyoda.hatenablog.com この記事のSingularityコンテナを作成するべく,参照元のdockerコンテナを作成しました. 以下の素晴らしいリポジトリを使おうと思ったのですが,あいにくubuntu18.04に対応しておら…

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 問題の解法説明 プログラムの正しさ…

Top-K Off-Policy Correction for a REINFORCE Recommender System

スライド Top-K Off-Policy Correction for a REINFORCE Recommender System from harmonylab 説明 Top-K Off-Policy Correction for a REINFORCE Recommender System – Google Research YouTubeで実際に運用された(今も運用されてるかは不明)強化学習を用…

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

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

Learning agile and dynamic motor skills for legged robots 解説スライド

スライド 説明 感想 スライド [DLゼミ] Learning agile and dynamic motor skills for legged robots from harmonylab 説明 複雑なモータ制御が必要なロボットの制御方法を提案 シミュレーションのみで学習した方策をロボットに転送し、実 環境のロボット制…

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

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

MuZero

スライド Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model (MuZero) from harmonylab 説明 囲碁・将棋などのドメインはモデルベースな強化学習手法が成功を収めてきたが、そのモデルを自動で獲得し、AlphaZeroなどの従来手法を上回…

EMERGENT TOOL USE FROM MULTI-AGENT AUTOCURRICULA(OpenAIかくれんぼ)

スライド EMERGENT TOOL USE FROM MULTI-AGENT AUTOCURRICULA from harmonylab 説明 調和系DLゼミ、札幌AI勉強会で発表させて頂いたスライドです。 内容は、チーム戦のかくれんぼを通じて,相互の戦略を獲得できたとする研究です。 各チームごとにシンプルな…

DQNからA3C, PPOまで

スライド 強化学習 DQNからPPOまで from harmonylab 説明 DQNからA3C, PPOまでの変遷を順に説明したスライドです。札幌AI勉強会で発表させて頂いた資料になります。 強化学習は基本的にDQNからの派生がほとんどなので、いきなり新しい手法の論文を見てもわけ…

A3C

スライド 北大調和系 DLゼミ A3C from Tomoya Oda 説明 エピソードのサンプリング・学習が非同期 + Actor-Criticな手法の提案。更にGPUではなくCPUのみでDQNより学習時間を削ることに成功。また、DQNが苦手な行動空間が連続な場合の可能性も示した。 しかし…