簡體   English   中英

Blender和Tensorflow之間的通信

[英]Communications between Blender and Tensorflow

我在Blender中有一個模擬,我想使​​用TensorFlow庫從外部進行控制。 完整的過程將如下所示:

while True:
    state = observation_from_blender()
    action = find_action_using_tensorflow_neural_net(state)
    take_action_inside_blender(action)

我對線程或子流程模塊沒有太多經驗,因此不確定我應該如何實際構建這樣的東西。

建議您不要來研究Tensorflow連接和API,而是來看看Open AI Universe Starter Agent [1]。 這樣做的好處是,只要打開了VNC會話,就可以連接基於TF的系統來對操作進行強化學習。

通過此方法構建模型后,您就可以專注於實際構建一個較低級別的API系統,以使兩件事可以相互交流。

[1] https://github.com/openai/universe-starter-agent

感謝您的答復。 不幸的是,嘗試讓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

這種方法對我來說效果很好,但是我認為還有更多優雅的低級解決方案。 我很想聽到其他實現相同目標的可能方法。

我這樣做是為了使用與Blender捆綁在一起的python版本安裝tensorflow。

  • 攪拌器版本:2.78
  • Python版本:3.5.2

    1. 首先,您需要為Blender的python安裝pip。 為此,我遵循了此鏈接中提到的說明: https : //blender.stackexchange.com/questions/56011/how-to-use-pip-with-blenders-bundled-python (我所做的是將python3.5m圖標拖到終端中,然后進一步鍵入命令'〜/ get-pip.py')。
    2. 一旦安裝了pip,就可以安裝第3方模塊並將其與Blender一起使用。
    3. 導航到bin文件夾內部文件“ / home / path到blender / 2.78 /”目錄。 要安裝tensorflow,請將python3.5m圖標拖至終端,然后將pip3圖標拖至終端,並提供命令install tensorflow。
    4. 我遇到一個錯誤,提到找不到模塊lib2to3。 甚至安裝該模塊也無濟於事,因為我得到消息說不存在這樣的模塊。 幸運的是,我的機器上安裝了python 3.5.2。 因此,導航到/usr/lib/python3.5並將lib2to3文件夾從那里復制到/home/user/blender/2.78/python/lib/python3.5,然后再次運行tensorflow的安裝命令。 安裝應該完成,沒有任何錯誤。 確保通過導入tensorflow測試安裝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM