我将RL代理与在matlab中实现的环境相耦合。所以我让python脚本(使用tensorflow V2(运行,编写一个包含操作的txt文件,并通过系统命令调用matlab环境。在matlab中读取txt文件,然后在matlab中进行计算,并编写结果txt文件。然后,python读取这个txt文件,并进一步运行py脚本。
这是可行的,然而计算时间相对较长,一步需要9到13秒,尽管matlab计算只需要1.5到2秒。因此,训练时间非常长,这非常令人讨厌。不幸的是,您不能将环境重写为Python,这将是太多的工作,并且编译为c++也相当困难。
还有更好的办法吗?有人知道如何改进吗?python和matlab之间有什么接口可以帮助这里吗?
提前感谢!
最佳Chris
我会尝试使用subprocess
从python调用matlab,并设置一个stdin/out
管道。你可以在这里或这里阅读所有关于这方面的内容。写入和读取文件(当然,这取决于您的操作系统,但通常情况下(比在进程之间传输数据要花费多得多的时间。请随意阅读IPC(进程间通信(,在我看来,stdio是您的最佳选择。