20200910のMacに関する記事は4件です。

深層強化学習の環境構築とサンプルテスト(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 wget

 pipで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

cartpole.png

$ python check_space.py CartPole-v1
$ python check_space.py Breakout-v0

Stable Baselines

Stable Baselinesとは?

「OpenAI Gym」で使われる強化学習の実装セットです。

環境構築

$ brew install openmpi
$ pip install stable-baselines[mpi]
$ pip install tensorflow==1.15.3

テスト

$ python hello_baselines.py

まとめ

 強化学習、とりあえず動かしてみたりしているのですが、イマイチピンときていません。ゲームのAI作りとしてはこれで良さそうですが、実世界への応用は、ギャップがかなり大きそうだなという印象です。その分、何か面白いことができたらインパクトは大きそうですが。

 イマイチ面白もの作るところまでのイメージが浮かばないので、強化学習に関してはとりあえずここまでにして、しばらく寝かしておこうと思います。おやすみー。

参考リンク

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【ターミナル改造⑧】zinitでzshで利用できるRustツール一式を用意

はじめに

  • Macの標準シェルとなったzshを拡張するためのプラグイン管理としてoh-my-zshを利用していたが、動作の観点でzinitという軽量のツールへ変更。
  • 同時に、普段利用しているRust製コマンドツール(ripgrepexa)の管理も行えることが判明。
  • そこで、今回の記事ではzinitの導入・ツール設定方法を記述していく。

環境

  • Mac OS X 10.15.6

手順

zinitインストール

  • 手元の環境に、zinit(軽量で高速なzshプラグイン管理ツール)を、以下のコマンドでインストールする。
  • ※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

利用ツール選定

  • 今回、zinitで管理するRust製コマンドツールは以下。
    • ripgrep
      • 高速grep代替ツール
    • exa
      • 高速ls代替ツール
    • bat
      • 高速cat代替ツール
    • fd
      • 高速find代替ツール

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
  • ツールのダウンロードが始まるため、終了後に各種コマンドを入力。
  • 確認できたら完了。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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"

Gemfile
group :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"
end

2.サーバーとは別のターミナルから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.rb
FactoryBot.define do
  factory :reception do
    name {"サンプル訪問者1"}
    purpose {"面談"}
    organization {"サンプル株式会社"}
  end
end
spec/models/reception_spec.rb
RSpec.describe Reception, type: :model do
  reception = FactoryBot.create(:reception)

  it 'receptionインスタンスが有効' do
    expect(reception).to be_valid
  end
end

specを追記したら、

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

参考文献

https://qiita.com/Ushinji/items/522ed01c9c14b680222c

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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_ja

Emacs

$ brew install emacs

Git

$ brew install git

Catallinaからデフォルトシェルが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/cabc700e6d9a28219cc8

Pyenv

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 ファイル

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む