如何在ssystem仿真模式下在gem5上移植maddpg强化学习算法se

问题描述

我正在尝试将 maddpg 移植到 gem5 之上
这是我的过程:
首先我从 open ai 下载了 maddpg:https://github.com/openai/maddpg(我还在多粒子环境中安装了 maddpg 的所有依赖项)
在下一步中,我使用以下命令来训练 gem5 的 maddpg o top 以获取一个简单的策略。
Command: sudo ./build/X86/gem5.opt configs/example/se.py --cpu-type=DerivO3cpu --caches --mem-type=DDR4_2400_8x8 --mem-size=8GB --cmd=./train -options="--scenario simple"
当我尝试执行此命令时,遇到以下输出

sudo ./build/X86/gem5.opt configs/example/se.py --cpu-type=DerivO3cpu --caches --mem-type=DDR4_2400_8x8 --mem-size=8GB --cmd=./train -options="--scenario simple"
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.
gem5 version 21.0.0.0
gem5 compiled Jun 15 2021 10:46:56
gem5 started Jul 23 2021 00:43:08
gem5 executing on osBoxes,pid 7057
command line: ./build/X86/gem5.opt configs/example/se.py --cpu-type=DerivO3cpu --caches --mem-type=DDR4_2400_8x8 --mem-size=8GB --cmd=./train '-options=--scenario simple'
warn: membus.slave is deprecated. `slave` is Now called `cpu_side_ports`
warn: membus.slave is deprecated. `slave` is Now called `cpu_side_ports`
warn: membus.slave is deprecated. `slave` is Now called `cpu_side_ports`
warn: membus.slave is deprecated. `slave` is Now called `cpu_side_ports`
warn: membus.slave is deprecated. `slave` is Now called `cpu_side_ports`
warn: membus.master is deprecated. `master` is Now called `mem_side_ports`
warn: membus.master is deprecated. `master` is Now called `mem_side_ports`
warn: membus.slave is deprecated. `slave` is Now called `cpu_side_ports`
Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (16384 Mbytes) does not match the address range assigned (8192 Mbytes)
0: system.remote_gdb: listening for remote gdb on port 7000
** REAL SIMULATION **
info: Entering event queue @ 0.  Starting simulation...
warn: ignoring syscall access(...)
warn: ignoring syscall access(...)
warn: ignoring syscall access(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall access(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall access(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall access(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall mprotect(...)
warn: ignoring syscall set_robust_list(...)
warn: ignoring syscall rt_sigaction(...)
      (further warnings will be suppressed)
warn: ignoring syscall rt_sigprocmask(...)
      (further warnings will be suppressed)
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
info: Increasing stack size by one page.
warn: MOVNTDQ: Ignoring non-temporal hint,modeling as cacheable!
warn: ignoring syscall prctl(...)
Exiting @ tick 346243000 because exiting with last active thread context
Simulated exit code not 0! Exit code is 1

我使用 pyinstaller 将 train.py 文件转换为二进制可执行文件。 有人可以向我解释原因,为什么没有进行培训?或者有什么建议可以得到结果?

参考文献:

  1. gem5:https://www.gem5.org/documentation/general_docs/building
  2. maddpg 算法:https://github.com/openai/maddpg

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)