我在Blender中有一个模拟,我想使用TensorFlow库进行外部控制。完整的过程将是这样的:
while True:
state = observation_from_blender()
action = find_action_using_tensorflow_neural_net(state)
take_action_inside_blender(action)
我对线程或子进程模块没有多少经验,因此我不确定如何实际构建这样的东西。
答案 0 :(得分:2)
我建议您先看看Open AI Universe Starter Agent [1],而不是乱用Tensorflow连接和API。这里的优点是,只要您打开VNC会话,就可以连接基于TF的系统来对您的操作进行强化学习。
一旦你通过这个构建了一个模型,你就可以专注于实际构建一个较低级别的API系统,以便彼此交谈。
答案 1 :(得分:0)
感谢您的回复。不幸的是,尝试让Universe使用我当前的设置有点痛苦。我也处于一个相当紧迫的截止日期,所以我只需要一些能够立即发挥作用的东西。
我找到了一个有点DIY的解决方案,使用pickle模块很适合我的情况。我真的不知道如何将这种方法转换为适当的伪代码,所以这里是大致的概述:
Process 1 - TensorFlow:
load up TF graph
wait until pickled state arrives
while not terminated:
Process 2 - Blender:
run simulation until next action required
pickle state
wait until pickled action arrives
Process 1 - TensorFlow:
unpickle state
feedforward state through neural net, find action
pickle action
wait until next pickled state arrives
Process 2 - Blender:
unpickle action
take action
这种方法对我来说效果很好,但我想有更优雅的低级解决方案。我很想知道任何其他可能达到同一目标的方法。
答案 2 :(得分:0)
我这样做是为了安装与混合器捆绑在一起的python版本的tensorflow。
Python版本:3.5.2