walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

openai/gymのAtari環境でプランニング可能だって知ってた?俺は知らなかった。

こんにちは。たまにはキャッチーな記事タイトルをつけたくなるwalkingmaskです。 今回はopenai/gymのAtari環境でプランニングを可能にするためのWrapperを書いたので紹介したいと思います。リポジトリは以下。遊び心で木構造を作っていますが、メインとなる…

MMOMazeというWebアプリを作った

最近ブログの更新もしてないしネタもないので、作った話を雑に書こうと思います。 作ったのはこちら。よかったら遊んでみてね。 迷路解くの好きな人とか居れば。バグ等あれば報告してもらえると嬉しいです。ゴールには何かがあるかも。https://t.co/DbNnBes2…

torch.multiprocessingでfork時に親プロセスでmodel()した後に子プロセスでmodel()できない

自分のプロセス周りの知識不足のせいだと思うが、納得のいかない挙動だったのでログ。 import numpy as np import torch from torch.autograd import Variable import torch.multiprocessing as mp from model import NN def f(x): model = NNPolicy(1, 6) p…

scipy.misc.imresizeはどこへ行った?

最新のscipy 1.3ではscipy.misc.imresizeは削除されている。 https://scipy.github.io/devdocs/release.1.3.0.html#scipy-interpolate-changes 代わり何を使えばimresizeと全く同じ結果を得られるか? scipy 1.1 では以下のようなメッセージが見られた。 `im…

Google Colaboratory 上の cv2 で作成した動画を表示する

思いの外詰まった&パッとドキュメントが見当たらなかったのでメモ。 まず動画ファイルを作ります。 import cv2 fourcc = cv2.VideoWriter_fourcc(*'MP4V') writer = cv2.VideoWriter('./out.mp4', fourcc, 60, (80, 80)) for frame in frames: frame = cv2.…

gymの全Atari環境のaction_space.n

メモ。DQNのscoresはこっち。 Adventure 18 AirRaid 6 Alien 18 Amidar 10 Assault 7 Asterix 9 Asteroids 14 Atlantis 4 BankHeist 18 BattleZone 18 BeamRider 9 Berzerk 18 Bowling 6 Boxing 18 Breakout 4 Carnival 6 Centipede 18 ChopperCommand 18 Cr…

Google Apps Scriptのバージョンアップをしないアーキテクチャ

どうも、GAS芸人のwalkingmaskです。 walkingmask.hatenablog.com walkingmask.hatenablog.com walkingmask.hatenablog.com GASいじる度に毎回思うのが「公開するときバージョン上げるのだるいな」です。 そこで今回新しいSlackボットを試作するにあたり、「…

令和ドローの裏側2、画像内オブジェクト領域の頂点をGUIで求める

謎シリーズ第一回に続き第2回目です。 令和ドローリリースから度々アップデートをかけてきたのですが、今回のアップデートが多分最後のアップデートです。あんまり使われてないからねorz 第一回でも述べられているように、平成ドロー、令和ドローは超アナロ…

令和ドローの裏側1、PNG画像の一部分を削除する

「令和」とてもいい元号だと思います。おめでとうございます そして、平成ドローの令和バージョン、令和ドロー作りました。 令和コラ作成ツール作りました新しい時代の始まりに面白コラ量産しましょうhttps://t.co/p4h1bxjip9 pic.twitter.com/088Gw4DahG— …

Google Chrome の履歴を csv で出力する

散々既出ですが、自分用メモ。 拡張機能は不要で、実行環境はmacOS、sqlite3を使います。 以下、手順。 cp ~/Library/Application\ Support/Google/Chrome/Default/History ~/Desktop/ sqlite3 ~/Desktop/History 以下を実行 .mode csv .output chrome-histo…

argparseでconfigファイルを使えるようにする

CLI ツールを作るときに、設定ファイルを使いたい場合があると思います。 Python には argparse という素晴らしい CLI 用の引数パーサがありますが、設定ファイルの読み込みには対応していません。 configparser という設定ファイル読み込み用モジュールもあ…

Pythonでの関数名取得(lamdaに渡した関数名+デコレータ関数を通常の関数呼び出しする)

普通の関数定義であれば、 def test_function(): print(1) print(test_function.__name__) # => test_function 簡単ですね。では lambdaではどうでしょう? test_lambda = lambda: test_function() print(test_lambda.__name__) # => <lambda> 当然、取れません。ins</lambda>…

Numpy 3次元配列のインデックスを変数に格納する

結論 slice オブジェクトというものがあります。これをタプルで複数まとめて扱えます。 A[(slice(3, 6), slice(5, 8))] == A[3:6, 5:8] 以下、2次元配列の例。 >>> A = np.zeros([10, 10]) >>> A[(slice(3, 6), slice(5, 8))] = 1 >>> A array([[0., 0., 0.,…

OpenAI gymで使えそうなツールを作ってまとめた

昨年の暮れから最近まで体調を崩していて、回復したので Python のリハビリ&研究用に gym 向けの Tool を作った。 ということで、久々にネタができたので更新。 テキストを三次元配列に変換する?text_arrayが見どころ。 開発環境 今のところ、macOS でしか…

2つの動画の類似度を求める

ググっても意外と出てこなかったので、シンプルな実装をログ。より効率的なアルゴリズム、高パフォーマンスな方法が他にあることは明らかなので、見つけ次第追記していければと思う。 実験用リポジトリは以下。 github.com 画像の類似度 動画はただの画像の…

Docker コンテナをコマンドなしで起動させ続ける

docker run -d -t ubuntu:16.04 デバッグ用に Ubuntu 環境が欲しい時に、サクッとコンテナ立ち上げて、かつ、しばらく立ち上げて置きたい時に。 とっても単純な操作なのに意外と知らなかったのでログ。 日本語で調べると次のような方法が出てくる。 Dockerの…

Twitter API developer account 申請ログ

AINA の Twitter Bot のために、もともと twitter api のアカウントは持っていたのだけれど、しばらくそれが死んでいたので、AINA メンテの機会に developer account に乗り換えたのでログ。 ということで、今回のケースは、 app.twitter の方で API を作っ…

Django - MySQL Connector/Python で INSERT IGNORE できない問題

最新のもの使えば起きなかった問題かもしれないが、起きたものは起きたので、一応メモ。 各種バージョンは以下の通り。 Python: 3.6 Django: 1.11.7 MySQL: 8.0.12 MySQL Connector/Python: 8.0.13 エラーは次のようなものが吐き出される。 File "/usr/local…

ブックマークをPATHのように扱えるChrome拡張を作った

Slash Bookmarks ソースコード 前回の作った平成ドローに比べると地味だけど、これもずっと作りたかったものを形にできたので最高。 開発中のログを加筆修正・まとめつつ載せておく。 デモ アイディア 2018/03/17 にはアイディアがメモされている。割と新し…

Promiseのresolve後の挙動

初歩的な知識だと思うけど、割と詰まったのでログ。 function f1() { return new Promise(resolve => { for (let i = 0; i < 10; i++) { if (i > 3) resolve(i); console.log(i); } }); } async function f2() { const r = await f1(); console.log(r); } f2…

平成コラgif作成ツールを作った

平成コラ作成ツール作りました平成最後の夏にクソコラ量産しましょうhttps://t.co/fgerWA3H2x pic.twitter.com/DTGgiPwySP— 升 (@walkingmask) 2018年10月8日 ツイートした後に気づいたけど夏終わってorz なりゆき "Trump draws" という面白画像のジャンルを…

Firebase Realtime Database と Cloud Functions でジョブを定期実行する小技

オフィシャルな方法ではないけど、表題の機能をこの2つだけで実現する方法をログ。 ただし、分単位での実行やユーザの滞在時間内での話になる。 developers-jp.googleblog.com これ系の記事をググると、こういった正当な方法が出てくるので、特に制約がない…

単一タブ内でページ更新後も情報を引き継ぐ

(初心者の私が)jsを扱う上で割とぶち当たる問題がページ更新やブラウザバック。 頑張って処理している途中に突如降りかかる F5 アタックを想定せずにフロントを書くことはできないと思う。 Webサーバでセッション管理していたり、そもそも処理のほとんどが…

今日のはてブホッテントリを表示するブックマークレット

ググったら腐る程出て来そうだけど、ネタがなさ過ぎてブログを全く更新していないのでカサ増し。 javascript:(function(){let t=new Date();location.href='http://b.hatena.ne.jp/hotentry/all/'+t.getFullYear()+('0'+(t.getMonth()+1)).slice(-2)+('0'+t.…

video.currentTimeの挙動

video = document.getElementById('video') console.log(video.duration) //=> 9.88 console.log(video.currentTime) //=> 0.0 video.currentTime = 1.0 console.log(video.currentTime) //=> 1.0 video.currentTime = 8.0 console.log(video.currentTime) /…

MacOS (High Sierra) の pyenv で pygame を使おうとするとキー入力が効かない問題

巷じゃ結構問題になっているようで、Python のバージョンを変えるとか、brew で Python 入れるとか、pythonw を使うとか、conda install python.app とか色々あるようです。 python - Pygame keyboard input issue - Stack Overflow Python pygameのキー入力…

TensorFlow.js を使って MicroExpNet をブラウザ上で動かしてみた

作ったもの。 github.com はじめに clmtrackr.js という、ブラウザ上で表情認識できてしまう、驚異的な技術があります。 github.com (デモはこちら) Webカメラの映像に対してリアルタイムで表情認識を行えます。 ただ、中身を見ると、流行りのディープラーニ…

TensorFlow.js で RGB2GRAY を実装する

TensorFlow.js の記事自体が少ないので、どんどん生成していきたい気持ちです。 とても基本的な機能ですが、意外と公式ドキュメント見てもささっとは実装できなかったので記録。 // rgb は Tensor const [r, g, b] = tf.split(rgb, [1, 1, 1], 2); const gra…

Saver.save で保存したモデル (checkpoint, data, index, meta) をプロトコルバッファ (pb) に変換する

かなり泥臭い方法ですが、自分なりに解決した記録です。 前提として、モデルの定義部分の Python コードが必要です。 要約すると モデル定義のコードと meta などからグラフ作成 tf.get_default_graph().as_graph_def().node を print してそれっぽいのを探…

GitHub PagesでWebページを公開する

要約 リポジトリの作成 index.htmlを直下に配置 リポジトリの「Settings」→「Options」→「GitHub Pages」→「Source」を「master branch」に変更 こんだけで公開できちゃう!すごい! 経緯など https://t.co/lRozhSloqP超便利じゃん。なんで今まで使ってなか…