- 投稿日:2019-07-07T21:27:21+09:00
【Mac】nodebrewでNode.jsのバージョン管理を行う
自分のメモ用に。
OSのバージョン
mac OS Mojave 10.14.5
前提
Homebrew、Nodeberewをインストールしてあること
現在インストールされているバージョンを表示する
nodebrew lsインストール可能なバージョンを表示する
nodebrew ls-remoteバージョンを指定してインストールする
nodebrew install [バージョン名]バージョンを指定してアンインストールする
nodebrew uninstall [バージョン名]使用するバージョンを切り替える
nodebrew use [バージョン名]バージョンを切り替える際は、以下のようにすると良いでしょう。
- 使用したいバージョンをインストールする
- バージョンを切り替える
- 不要なバージョンをアンインストールする
バージョン確認
最後に、今使用しているバージョンを確認し、使用したいバージョンに切り替わっていればOKです。
node -v
- 投稿日:2019-07-07T19:26:11+09:00
Docker + macでLittleSLAMを動かす
SLAM入門: ロボットの自己位置推定と地図構築の技術(友納 正裕) のサンプルコード、LittleSLAMをMacのDockerで動かす。
gnuplotを使っているので、ホストにXQuartzを用意してXを表示する。Prepare files
Clone the repo
$ git clone --recursive https://github.com/furo-org/LittleSLAM.gitもしくは
$ git clone https://github.com/furo-org/LittleSLAM.git $ cd LittleSLAM $ git submodule init $ git submodule updateDownload the dataset
https://github.com/furo-org/LittleSLAM の通り、支持されたリンクからデータセットをダウンロードする。
LittleSLAM/datasetディレクトリに置くことにする。$ cd /path/to/LittleSLAM $ mkdir dataset $ cd dataset $ wget https://furo.org/software/little_slam/dataset.zip $ unzip dataset.zip
path/to/LittleSLAM/dataset以下に*.lscファイルが置かれる。Prepare X11
dockerコンテナ内からgnuplotで描画したのをホスト(Mac)のGUIで見れるよう、Xを準備する
参考: http://raphine.hatenablog.com/entry/2018/08/14/004634
Install XQuartz
- https://www.xquartz.org/ からXQuartzをダウンロード→インストール
- インストール後、macからログアウト→ログイン
Enable X11
- XQuartzのメニュー→「環境設定」→「セキュリティ」タブ→「ネットワーク・クライアントからの接続を許可」にチェック
- XQuartzを終了→起動
- この後起動するdockerコンテナからのXの接続を許可
$ xhost + 127.0.0.1Run LittleSLAM in a docker container
Launch a docker container
$ docker run -it \ -e DISPLAY=docker.for.mac.localhost:0 \ -v /path/to/LittleSLAM:/workspace \ -w /workspace \ --name little-slam \ debian:stretch bash
-e DISPLAY=docker.for.mac.localhost:0: Xの接続/workspace: コンテナ内の作業ディレクトリを指定。好きな場所を指定すればよい。--name little-slam: dockerコンテナの名前を指定。好きな名前を付ければよい。debian:stretch: この例ではdebian:stretchイメージを利用。好きなイメージを使えばよい。以下は、上記で起動したdockerコンテナ内での作業となる。
https://github.com/furo-org/LittleSLAM/blob/master/doc/install-linux.md の通りに進めていけばよい。Build LittleSLAM
# apt update # apt install build-essential cmake libboost-all-dev libeigen3-dev gnuplot gnuplot-x11 # mkdir build # cd build # cmake .. # makeRun LittleSLAM
# cd /workspace/build/cui # ./LittleSLAM ../../dataset/corridor.lsc
- 投稿日:2019-07-07T12:46:04+09:00
はじめてのhomebrew…どのような手順でhomebrewを導入したか
今までまともにMacを触ったことはなかったのですが、つい最近、MacBook Airを購入しました。購入して最初に導入したのは、鉄板のパッケージマネージャーであるhomebrewです。
homebrewの導入
インターネット接続さえ確立したならば、公式サイトの手順通り、以下のコマンドをターミナルで入力することにより導入プロセスが始まります。
sudoは必要ありません。導入プロセスが始まったならば、あとは終わるまで見ているだけです。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"homebrewの導入プロセスは、自宅のフレッツ光回線であれば、開始から合計数分で完了しました。
homebrewで驚いたこと
Windowsの著名なパッケージマネージャーであるchocolateyでは、インストールプロセスでシェル上に出力されるメッセージは、以下の箇条書きに挙げるくらいでした。多くの場合、インストールプロセス自体はほぼサイレントで進んでいきます。
- Downloading
- (Downloading) Progress
- Hashes match
- Installing
- Installed
一方のhomebrewでは、依存関係にあるソフトウェアのインストールプロセスや、インストールに必要なシステム設定の変更までシェル上に出力されていきます。私がhomebrew-caskをインストールした際には、以下のようなメッセージがシェル上に出力されていました。
- gmpのインストール
- libtasn1のインストール
- libunistringのインストール
- nettleのインストール
- libffiのインストール
- p11-kitのインストール
- opensslのインストール
- libeventのインストール
- unboundのインストール
- gnutlsのインストール
- emacsのインストール
- caskのインストール
- libffiの実行結果
- opennsslの実行結果
- unboundの実行結果
- emacsの実行結果
モジュールの依存関係等の管理手法がWindowsとUNIX系では異なるためなのでしょうが、シェルに出力されるものがここまで違うと、強く印象に残ります。
- 投稿日:2019-07-07T10:56:32+09:00
Mac + Docker + Git Labインストール
Docker on Macで、GitLabを構築した時のメモです。
0. 追記
記事を書き終えた後に気づいたのですが、docker-composeでインストールする方法も公式ドキュメントに書かれていました・・・(;ω;)
Mac用にボリュームを書き直せば動きそうです。Installing GitLab using docker-compose(公式)
Mac用にボリュームを書き直した記事もありました。
MACでDocker(docker-compose)を使用してローカルで使用するgitlabを起動
1. はじめに
基本的には以下記事を参考にしていただければ8割型は解決します。
私もお世話になりました。ありがとうございました。上記手順でうまくいかない場合は、公式ドキュメントを見ましょう。
私はこの2つでどうにかなりました。
Install Gitlab with docker(公式)Docker使わずにMac上に直接インストールする記事もいくつかありますが、
Docker を使う方が楽だし、Macも汚れないのでオススメです。2. 詰まったところ
(1) localhostにアクセスしても、It worksと表示される。
公式ドキュメント にも書かれていますが、初回起動は、GitLabが立ち上がるまでに少し時間がかかるようです。
全然立ち上がらないので、あれ?あれ?と再起動を繰り返してしまいました。
docker logs -f gitlab でログが見られるので、気長に起動を待ちましょう。
- 投稿日:2019-07-07T01:01:47+09:00
DonkeyCar3シミュレーターで強化学習してみる
はじめに
DonkeyCar 3.0 is Released!でいろいろと新しくなったらしいのでそろそろやってみようと思いました。ラジコン等を買うお金を貯めるまでとりあえずシミュレーターで学習などの予行演習をやっておきます
レポジトリを漁っているうちにシミュレーターで強化学習するのが簡単になってるっぽかったのでやってみることにしました
環境をセットアップする
macOS Mojave 10.14.5
pyenvで専用の環境をつくります
pyenv virtualenv 3.7.3 donkeycar pyenv activate donkeycar python -V Python 3.7.3後で重複するものもあるが以下のモジュールをインストールしておきます
pip install python-socketio flask eventlet pygame numpy pillow h5py scikit-image opencv-python gymdonkeycarのレポジトリをクローンします
git clone https://github.com/wroscoe/donkey donkeycar必要なモジュールをインストールします
pip install -e donkeycarself-driving sandboxのレポジトリをクローンします
git clone https://github.com/tawnkramer/sdsandbox.git必要なモジュールをインストールします
pip install -r sdsandbox/requirements.txt次にdonkey_gymをクローンします
git clone https://github.com/tawnkramer/donkey_gym必要なモジュールをインストールします
pip install -e donkey_gymReleaseページから現行最新版のシミュレーターバイナリDonkeySimMac_10_13.zipをダウンロードして展開し
donkey_simを /Applications に配置しますシミュレーターを起動して強化学習する
reinforcement_learningのディレクトリに移動しますcd donkey_gym/examples/reinforcement_learning/シミュレーターのパスを指定して
ddqn.pyを実行します。Deep Reinforcement Learning with Double Q-learningの実装のようですpython ddqn.py --sim=/Applications/donkey_sim.app/Contents/MacOS/donkey_sim実行すると以下のようになってシミュレーターの起動画面が表示されます
/Users/user/.pyenv/versions/donkeycar/lib/python3.7/site-packages/skimage/viewer/__init__.py:6: UserWarning: Viewer requires Qt warn('Viewer requires Qt') WARNING: Logging before flag parsing goes to stderr. W0706 22:06:32.471105 4405204416 deprecation_wrapper.py:119] From ddqn.py:26: The name tf.keras.initializers.normal is deprecated. Please use tf.compat.v1.keras.initializers.normal instead. W0706 22:06:32.475600 4405204416 deprecation_wrapper.py:119] From ddqn.py:218: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead. W0706 22:06:32.475827 4405204416 deprecation_wrapper.py:119] From ddqn.py:220: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead. W0706 22:06:32.508859 4405204416 deprecation_wrapper.py:119] From ddqn.py:221: The name tf.keras.backend.set_session is deprecated. Please use tf.compat.v1.keras.backend.set_session instead. starting DonkeyGym env donkey subprocess started binding to ('0.0.0.0', 9091) waiting for sim to start.. 2019-07-06 22:06:33.317 donkey_sim[38189:2539567] Could not find image named 'ScreenSelector'. waiting for sim to start.. waiting for sim to start.. waiting for sim to start..画面下の Play! ボタンをクリックします
シミュレーターが起動し自動的にコースが選択されて学習がはじまります。動画のように何度も運転が繰り返されます
ログをみると学習が繰り返されているのがわかります
got a new client ('127.0.0.1', 59824) W0706 22:07:47.631042 4405204416 deprecation.py:506] From /Users/user/.pyenv/versions/donkeycar/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version. Instructions for updating: Call initializer instance with the dtype argument instead of passing it to the constructor Episode: 0 EPISODE 0 TIMESTEP 30 / ACTION [-0.08891889, 0.3] / REWARD 0.9979240885446676 / EPISODE LENGTH 30 / Q_MAX 0 fps 14.380368140227569 EPISODE 0 TIMESTEP 60 / ACTION [-0.31381074, 0.3] / REWARD 1.22906461238042 / EPISODE LENGTH 60 / Q_MAX 0 EPISODE 0 TIMESTEP 90 / ACTION [-0.46118185, 0.3] / REWARD 1.283182117658 / EPISODE LENGTH 90 / Q_MAX 0 fps 19.979947188928957 episode: 0 memory length: 107 epsilon: 0.9895139999999955 episode length: 107 Episode: 1 episode: 1 memory length: 108 epsilon: 0.9894159999999954 episode length: 1 Episode: 2 episode: 2 memory length: 116 epsilon: 0.9886319999999951 episode length: 8 Episode: 3 episode: 3 memory length: 117 epsilon: 0.988533999999995 episode length: 1 Episode: 4 EPISODE 4 TIMESTEP 120 / ACTION [0.5056638, 0.3] / REWARD 0.6079470236506799 / EPISODE LENGTH 3 / Q_MAX 6.9752893 episode: 4 memory length: 126 epsilon: 0.9876519999999946 episode length: 9 Episode: 5 episode: 5 memory length: 131 epsilon: 0.9871619999999944 episode length: 5 Episode: 6 episode: 6 memory length: 142 epsilon: 0.986083999999994 episode length: 11 Episode: 7 episode: 7 memory length: 149 epsilon: 0.9853979999999937 episode length: 7 Episode: 8 EPISODE 8 TIMESTEP 150 / ACTION [-0.971151, 0.3] / REWARD 0.90009812538202 / EPISODE LENGTH 1 / Q_MAX 13.961587 episode: 8 memory length: 155 epsilon: 0.9848099999999934 episode length: 6ディレクトリに学習済みモデル
rl_driver.h5が生成されていますls -1 README.md ddqn.py ppo_train.py rl_driver.h5 unitylog.txtおわりに
シミュレーターで簡単に強化学習できました。しばらく学習させてみて、ちゃんと走るようになるかみてみようと思います

