2019年5月大型連休も終了
こんにちは、iPXの須山です。
今年も春の大型連休が終わり、5月も中旬になりましたね。
今回、春の大型連休中の世間の目玉? は連休中に改元が行われた事ではないでしょうか。
自分はそこまで気にはしていなかったですが、
このような仕事をしていると これに関連するシステム改修が行われたりしているのが
ニュース等で流れていると 目に留まりました。
連休明けすぐに 届けられた水道料金の請求書です。
ちゃんと 発行日等の日付が「令和」になっています。
平成が31年で終わりましたが、せっかくですのでこの平成の間に
システム改修という観点以外にも少なからず 日常生活に影響がある出来事を
個人的にいくつかピックアップしてみました。
UE4で強化学習環境を動かし、学習状況を可視化する(Part1)
前書き
お久しぶりです。iPXのabikoです。
最近急激に気温が上がり、真夏日を記録する所も出てきました。
近年春といえるような過ごしやすい日が少なくなっていることを寂しく感じます。
今後も気温の変動が激しそうです、皆さんお体に気をつけてお過ごしください。
今回の記事は
今回はUnrealEngeie4(以下UE4)と強化学習を組み合わせた記事にしたいと思います。
ずばり、UE4で強化学習環境(CartPole)を動かし、学習状況を可視化する、です。
※といいながら、学習自体は行いません。可視化がメインです。
強化学習環境にはOpenAI Gymを使用し、行動はランダムで与えます。
事の始まり
最近ではUE4や機械学習に触れる機会が多くなりました。
そんな中、社内で「UE4ってPythonで書けないんですかね?」という話題が。
気になって調べてみると「UnrealEnginePython」というOSSプラグインを発見しました。
GitHub - 20tab/UnrealEnginePython: Embed Python in Unreal Engine 4
下記のページを見るに、Pythonコードにてアクターの座標移動まで実現できています!
UE4でPythonを使ってみる - Qiita
キューブが天に上っていく様子を見て、私の頭の中では下図が再生されました。
そう、かの有名なCartPoleです。機械学習の多くはPythonで書かれています。
Pythonで記述でき、ゲームプレイ時にキューブを動かすこともできるのであれば、UE4上で強化学習を実行するに止まらず、その学習状況の可視化もできてしまうのでは!と思い立ったのです。
それでは、さっそく試していきます。
準備の前に...
今回UE4および、Pythonのインストールについては割愛します。
参考
それぞれ下記のページからダウンロードすることができます。
UE4
www.unrealengine.com
Python
www.python.org
使用環境
OS | WIndows 10 |
UE4 | 4.21.2 |
Python | 3.6.6 |
UnrealEnginePython | 20181128 Binary Releases |
UnrealEnginePythonについて、当初はPythonが同梱(embedded)されているもので試してみたのですが、pipでエラーが出るなど苦戦したため、非同梱版を使用するようにしました。
→UnrealEnginePython_20181128_4_21_python36_win64.zip
そのため、Pythonを端末内に別途用意します。
今回は公式ページからダウンロード・インストールしたPythonを使用しています。
Pythonの下準備
UnrealEnginePythonのPython同梱版を使用しない場合、環境変数のPATHにインストールされているPythonのパスを設定する必要があります。
Pythonをデフォルトでインストールした場合には下記のパスを設定します。
C:\Users\****\AppData\Local\Programs\Python\Python36 C:\Users\****\AppData\Local\Programs\Python\Python36\Script
続いてコマンドプロンプトを起動してOpenAI Gymをインストールします。
$ pip install gym
UnrealEnginePythonをUE4プロジェクトに適用
UnrealEnginePythonプラグインをプロジェクトに適用する手順が下記になります。
1.空のブループリント(BluePrint=以下BP)プロジェクトを作成
2.作成したプロジェクトルート直下にPluginsフォルダを作成
3.UnrealEnginePythonプラグインをダウンロードして解凍
Releases · 20tab/UnrealEnginePython · GitHub
→「20181128 Binary Releases」の「 UnrealEnginePython_20181128_4_21_python36_win64.zip」をダウンロード
4.解凍結果のフォルダ配下にある「UnrealEnginePython」フォルダを「2. 」で作成したPluginsフォルダに配置
5.プロジェクトを起動
→Pythonの環境変数が正しく設定されていない場合、起動時にエラーとなる
6.ウィンドウ>Python Editor のメニューが表示されていることを確認
これでUnrealEnginePythonを使用する準備ができました。
UE4で可視化したいコード
今回UE4で実行&可視化したいコードはこちらになります。
import gym env = gym.make('CartPole-v0') for episode in range(50): observation = env.reset() done = False while not done: env.render() action = env.action_space.sample() observation, _, done, _ = env.step(action)
次の行動(右・左)をランダムに与え続けるコードになっています。
参考
CartPole環境の詳細についてはこちらを参照してください。
CartPole v0 · openai/gym Wiki · GitHub
Python Editorの動作確認
上記コードをPython Editorで実行してみます。
1.「ウィンドウ>Python Editor」を押下し、Python Editorを起動
2.上部メニューの「New」を押下してスクリプトファイルを作成
3.右下のエディタ部に上記コードをペースト
4.「Save」を押下して保存
※Ctrl+S での保存が効きません。
本格的に使用していく場合、VSCodeなど別のエディタを使ったほうがよさそうです。
※また、ソースコードに変更を加えたり、新たにファイルを追加した場合に下図のようなメッセージが出ます。「インポート」を押下し更新を反映しておきます。
5. 「Execute」を押下し、コードを実行無事実行できました!
次回
ここまでで一旦休憩です。
次回以降、ゲームプレイによって動作するコードに書き換え、状況を可視化できるように仕立てていきます。
それではまた、お会いしましょう。
国際社会と思わずの攻撃
「サンキュー!」
それを聞いた僕がドアを開けたままに一瞬フリーズしました。
良かったことに、セリフを言ってくれた方が一回も振り向かずに通って、僕がすごくムッとしている顔が誰にも見られなさそうでした。
しかし何で腹が立ったの?僕が客先で食堂のドア開けた時に後ろの所員さんを先に通した。【通っていた小学校は「先にドアに着いた者は最後に通る」のようなルールがあって、嫌でも一生についてしまったみたい(汗)】 それにお礼されただけでした。皮肉などもなかったから、お礼にムカつく権利がないはずです。それはわかってもムカつきました。それはわかったのでムカつきました。
今回のiPXブログ担当のベーカーです。今回のテーマが個人的でちょっと暗いかもしれないですが、よろしくお願いします。
続きを読むWindowsのVisual Studio Code上でC++環境セット
どうも、iPXのパルハットです。最近業務で機械学習関連の案件にかかわることが増えています。その場合プログラム言語として主にPythonを使っていましたが、TensorRT、ROS等を用いる場合にはC++も登場しますので、使う機会しばしばあります。最近、個人のWindowPCにC++を実行できる環境のセットアップしてみました。そこで今回のブログにその設定手順を乗せることにしました。エディタはVSCodeを使用しています。
MinGWのインストール
MinGW(Minimalist GNU for Windows)はGNUツールチェーンのWindows移植版です。
インストール手順
- MinGWをダウンロードしてから、インストーラを実行します。デフォルト設定を従ってインストールをします。
- 表示された画面からインストールするパッケージを選択して、メニューからinstallation->ApplyChangesをクリックします。以下が最小限の選択項目です。
- 表示された画面のApplyをクリックすると変更項目でシステム構成が更新されます。最後の画面のcloseをクリックしてインストールを終了します。
Visual Studio Codeのインストール
Visual Studio Codeはマイクロソフトによって開発されたプログラムソースコード用のエディタです。
インストール手順
- VSCodeをダウンロードしてから、インストーラを実行します。デフォルト設定を従ってインストールをします。
- VSCodeがエディタの設定
- c/c++Extensionの設定
- Code Runnerの設定
- テストコードを実装, エディタの上でマウスの右をクリックして、Run Codeをクリックして実装します。
- コードがちゃんとコンパイルできたことが確認できます。VSCodeターミナルからtest.exeのファイルが作成されたことが確認できます。これで環境のセットアップが終了になります。場合によって文字化けが発生したり、C++の環境パスが設定されなかったり等をありますので、注意してください。
まとめ
業務でLinuxPCを使っているので、C++コードが普通にコンパイルできていました。しかし、個人PCでもたまにテスト、調査などをやる時が発生しますので、今回がその手前として環境セットアップをしてみました。
趣味の話
ご挨拶
新緑まぶしい季節となりました。
皆様如何お過ごしでしょうか。
どうも、iPX川口です。
GWが間近に迫ってまいりました。
今年のGWは最大10連休とのことで、旅行に行かれる方も多いのではないでしょうか。
高速道路の渋滞も予想されるので、時間をずらしてピークを避ける工夫が必要ですよね。
かく言う私もGWは香川、愛媛旅行を予定しています。
人生初四国です。
香川県のうどんを楽しみにしています。
愛媛県では下灘駅などを観光する予定です。。
せっかくの休みなので事故の無いよう道中の運転に気をつけようと思います。
なにせ自家用車で栃木から香川へ向かうので。
本題
さて、趣味の話です。
6:4でインドア派の私ですが、しばしば旅行に行ったりします。
今年は伊豆、水戸(栃木から近いので日帰りもできますが)へ行きました。
水戸のあんこう、偕楽園(梅が有名)の写真がこちらです。