- 投稿日:2020-09-10T22:26:41+09:00
深層強化学習の環境構築とサンプルテスト(Mac版)
強化学習
「ScratchでAIを学ぼう」はScratchで動かしながら強化学習を理解できる凄い本を読んだりして、少し強化学習に興味が出てきたので「OpenAI Gym / Baselines 深層学習・強化学習 人工知能プログラミング 実践入門」という本を読んで、環境構築や、サンプルを自分で作って動かしてみた内容のメモ。本当に個人的メモです。
GitHubリポジトリは以下です。
環境はMac前提です。
- iMac Retina 4K 2017
- macOS 10.13.6
OpenAI Gym
OpenAI Gymとは?
「OpenAI」が提供している強化学習用のツールキット。
環境構築
pyenvを使う前提です。pyenvのセットアップ方法や詳細は以下記事参照ください。
pyenv/pyenv-virtualenv/Anacondaを使ってクリーンなPython環境をセットアップ
以下はpyenvがセットアップできている前提です。
$ pyenv install 3.7.3 $ pyenv virtualenv 3.7.3 rl $ pyenv global 3.7.3/envs/rl以下は本に書いてありますが、自分の環境だと実行不要(すでに全部インストール済みだった)でした。
$ brew install cmake boost boost-python sdl2 swig wgetpipでOpenAI Gym関連のパッケージをインストール
$ pip install gym $ pip install gym[atari] $ pip install gym[box2d]テスト
$ git clone https://github.com/karaage0703/reinforcement-learning-sample $ cd reinforcement-learning-sample $ python gym_level_01.py $ python gym_level_02.py $ python gym_level_03.py$ python check_space.py CartPole-v1 $ python check_space.py Breakout-v0Stable Baselines
Stable Baselinesとは?
「OpenAI Gym」で使われる強化学習の実装セットです。
環境構築
$ brew install openmpi$ pip install stable-baselines[mpi] $ pip install tensorflow==1.15.3テスト
$ python hello_baselines.pyまとめ
強化学習、とりあえず動かしてみたりしているのですが、イマイチピンときていません。ゲームのAI作りとしてはこれで良さそうですが、実世界への応用は、ギャップがかなり大きそうだなという印象です。その分、何か面白いことができたらインパクトは大きそうですが。
イマイチ面白もの作るところまでのイメージが浮かばないので、強化学習に関してはとりあえずここまでにして、しばらく寝かしておこうと思います。おやすみー。
参考リンク
- 投稿日:2020-09-10T17:40:34+09:00
【ターミナル改造⑧】zinitでzshで利用できるRustツール一式を用意
はじめに
- Macの標準シェルとなったzshを拡張するためのプラグイン管理としてoh-my-zshを利用していたが、動作の観点でzinitという軽量のツールへ変更。
- 同時に、普段利用しているRust製コマンドツール(ripgrepやexa)の管理も行えることが判明。
- そこで、今回の記事ではzinitの導入・ツール設定方法を記述していく。
環境
- Mac OS X 10.15.6
手順
zinitインストール
sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zinit/master/doc/install.sh)"
- コマンド入力後、
~/.zshrc
に以下の内容が自動入力されるため、確認する。### Added by Zinit's installer #省略 source "$HOME/.zinit/bin/zinit.zsh" autoload -Uz _zinit ### End of Zinit's installer chunk
- 以下のコマンドで確認。
zinit self-update利用ツール選定
zshrc設定
- 利用ツール選定完了後、以下のプラグイン内容を
.zshrc
へ記述### Added by Zinit's installer # 省略 ### End of Zinit's installer chunk # ripgrep zinit ice as"program" from"gh-r" mv"ripgrep* -> rg" pick"rg/rg" zinit light BurntSushi/ripgrep # exa zinit ice as"program" from"gh-r" mv"exa* -> exa" zinit light ogham/exa # bat zinit ice as"program" from"gh-r" mv"bat* -> bat" pick"bat/bat" zinit light sharkdp/bat # fd zinit ice as"program" from"gh-r" mv"fd* -> fd" pick"fd/fd" zinit light sharkdp/fd # alias設定は適宜 # alias ls='exa'
- 記述後、保存してターミナルで、以下のコマンドで読み込み。
source ~/.zshrc
- ツールのダウンロードが始まるため、終了後に各種コマンドを入力。
- 確認できたら完了。
参考
- 投稿日:2020-09-10T17:33:39+09:00
Ruby on Rails × DockerでRspecを導入
目標
- rails × docker 環境でrspecを導入したい
前提
- Docker on mac
- Ruby on Rails
手順
1.Gemfileにgemを追加する
以下のgemを:develop, :testに追加する
gem "rspec-rails"
gem "factory_bot_rails"Gemfilegroup :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] # テストフレームワーク gem "rspec-rails" gem "factory_bot_rails" end2.サーバーとは別のターミナルからrspecをインストールする
MacBook-Air アプリ名 % docker-compose run web rails g rspec:install Starting アプリ名_db_1 ... done Running via Spring preloader in process 64 create .rspec create spec create spec/spec_helper.rb create spec/rails_helper.rbこれで設定ファイルがディレクトリに作られる
さっそくテストを作成してみる
modelのspecを追加してみる
まずディレクトリを生成する。modelは自身がすでに生成したmodel.
MacBook-Air アプリ名 % docker-compose run web rails g rspec:model reception Starting アプリ名_db_1 ... done Running via Spring preloader in process 64 create spec/models/reception_spec.rb invoke factory_bot create spec/factories/receptions.rb生成できたら今回はバリデーションに関するテストを書く
spec/factories/reception.rbFactoryBot.define do factory :reception do name {"サンプル訪問者1"} purpose {"面談"} organization {"サンプル株式会社"} end endspec/models/reception_spec.rbRSpec.describe Reception, type: :model do reception = FactoryBot.create(:reception) it 'receptionインスタンスが有効' do expect(reception).to be_valid end endspecを追記したら、
MacBook-Air アプリ名 % docker-compose run web bundle exec rspecで実行完了
MacBook-Air アプリ名 % docker-compose run web bundle exec rspec Starting アプリ名_db_1 ... done . Finished in 0.22889 seconds (files took 6.32 seconds to load) 1 example, 0 failures参考文献
- 投稿日:2020-09-10T15:27:41+09:00
Macを買ったら必ず行うセットアップ(メモ)
メモです
ショートカットキー設定
システム環境設定 → キーボード → 入力ソースを選択。
入力ソース
前の入力ソースを選択: cmt + スペース
次の入力ソースを選択: cmt + shift + スペースSpotlight
Spotlight検索を表示: ctrl + スペース
Wifi接続
がんばる
ブラウザ
Chromeを立ち上げ、アカウントにログイン。
アカウントで同期設定がoffになっている場合は、元のPCで
設定→同期とGoogleサービスから、同期をONにする。アプリ
- Slack
- iTerm
- f.lux
- Docker for Mac
homebrew
これがないと人権が得られない
https://brew.sh/index_jaEmacs
$ brew install emacsGit
$ brew install gitCatallinaからデフォルトシェルがzshに代わり、git-promptを入れるのにbashと同じやり方では通じない。
こちらの記事を参照。最後に.gitconfigの内容を旧PCから新PCへ丸ごとコピー。
GitHub SSHキー設定
.ssh/config
に下記を追加。Host github github.com HostName ssh.github.com User git Port 443 IdentityFile ~/.ssh/github_key鍵を生成。
$ ssh-keygen -t rsa -C "メールアドレス"GitHubのSSH And GPG Keysに、新しく生成された公開鍵を貼り付け。
VSCode
ここから
https://code.visualstudio.com/下記のプラグインをとりあえず入れておく
- GitLens
- Prettier
- Project Manager
- vscode-reveal
- Github Theme
Golang
下記を参照
https://qiita.com/sunnyG/items/cabc700e6d9a28219cc8Pyenv
https://qiita.com/crankcube/items/15f06b32ec56736fc43a
Nodebrew
https://qiita.com/ucan-lab/items/517ee13a2f8769ab866c
Goland
https://www.jetbrains.com/go/promo/
GitリポジトリをClone
ひたすらがんばる
SSHキー引継ぎ
がんばる
aws credential引継ぎ
.aws/credentials
ファイル