最後倒數第二篇了,真的是感嘆萬千,前面介紹完了MADDPG與環境,這一章最後來跑實做
這個也是OpenAI的一個專案,雖然用的是tensorflow有點怕,pytorch用的太爽了… 一時看到tensorflow有點像是看到前女友,不想看到但又有種懷念的感覺?反正跟tensorflow的愛恨情愁都過去了我們就一起來跑安裝跟實驗吧!
git clone git@github.com:openai/maddpg.git
cd maddpg
pip install -e
Tensorflow的話我的版本是1.14,protobuf後面可能會遇到問題,可以先降版本
pip install tensorflow-gpu==1.14.0
pip uninstall protobuf
pip install protobuf==3.19.0
套件都安裝好後,要另外在~/.bashrc 裡面加上一個環境變數,讓程式碼在跑得時候可以到 multiagent-particle-envs 撈出環境相關的api
export PYTHONPATH=$PYTHONPATH:[your path of multiagent-particle-envs]
這邊都可以的話就可以來訓練程式碼了
很簡單的,只要一行就可以跑訓練,scenario後面的參數,就看你要用哪些環境訓練模型
python train.py --scenario simple
另外在 experiments/train.py 的 -save-dir 參數,預設是會在 /tmp/policy/。Linux 沒問題,但跑Windows的朋友可能就要注意了,這邊可能會需要改一下,因為我不太確定Windows的這個路徑是否為可行的。
如果模型都訓練好了,可以後面家一段 —display 就可以視覺化看跑得結果囉!
python train.py --scenario simple --display
另外,在跑 train 的時候,訓練結尾可能會在rew_file_name = arglist.plots_dir + arglist.exp_name + '_rewards.pkl’ 跳出屬性問題,因為我沒深入這個原因,折衷方案我直接給兩個新變數
# 182 註解掉
#rew_file_name = arglist.plots_dir + arglist.exp_name + '_rewards.pkl'
# 185 註解掉
# agrew_file_name = arglist.plots_dir + arglist.exp_name + '_agrewards.pkl'
# 182 下面新增
rew_file_name = 'test_rewards.pkl'
# 185 下面新增
agrew_file_name = 'test_agrewards.pkl'
以上這是一個臨時的方法,但如果要做實驗結果的管理,可能還是要找一下原因,會用別的方法去替代原本的功能。
終於把第三個範例給介紹完成,雖然照順序來說,第三個粒子的分享應該放在第一個,但因為三個範例彼此關聯性與延續性不大,所以就先放比較好玩的AI社區介紹,但第三個應該會跟我未來的研究會比就有關係,如果對這方面有興趣,都歡迎跟我聯繫!