大数跨境
0
0

精华教学 | GH_Cpython——将原生的 Python 与机器学习框架引入Grasshopper

精华教学 | GH_Cpython——将原生的 Python 与机器学习框架引入Grasshopper Rhino3D
2017-08-17
0
导读:作者:Jorin转载请注明出处。

我们都知道 Rhino 和 Grasshopper 中的 Python 并不是真正原生的 Python ,而是在 .net Framework 框架之上的 IronPython,所以大家都有一个共同的烦恼,就是 IronPython 架构上第三方的代码库太少了。很多在原生 Python 上最基础的库,在 IronPython 上都是不能用的,甚至连先前可以使用的 numpy for .net 都已经停止维护了,我上个月在重装操作系统以后,再想将 numpy 安装到 Rhino 中,发现网络上所有安装 numpy 的链接都已经失效了,为此我还后悔了好久,没有将 numpy 的安装包备份下来。


没想到惊喜还是来的很快,在刚刚过去的 8月12日,Food4Rhino 上出现了这款名为 GH_Cpython工具,作者署名为 MahmoudAbdelRahman,经过测试,该插件能够将安装在本机的原生 Python 嵌入到 Grasshopper 中,可以传入 Grasshopper 中的数据,然后在 GH_Cpython 中进行计算并输出计算结果,安装在本机 Python 中的各种代码库,也都能够引用 Grasshopper ,比如最近很热门的 Google 深度学习架构——TensorFlow,同样可以引入并执行运算。TensorFlow 就是大名鼎鼎的 AlphaGo 的深度神经网络后端。

由于 GH_Cpython 是原生的 Python ,所以其计算速度要比 .net Framework 上的 IronPython 快很多,从下面的截图就可以看到执行同样的内容计算速度的不同:

下面给大家大概演示一下如何配置 GH_Cpython

GH_Cpython 的下载地址:

http://www.food4rhino.com/app/ghcpython

GitHub源码:  

https://github.com/MahmoudAbdelRahman/GH_CPython

插件安装和 Grasshopper 中其他插件的安装方式没有任何不同,将解压得到的 gha 文件和 dll 文件复制到 Grasshopper >> File >> Componts 文件夹中即可。

安装好后 Maths 分类下的 Scripts 中就会出现一个黑色的 Python 图标:

首次运行会要求用户选择使用本机中的哪个 Python 环境:

建议大家和我一样,在本地电脑上安装 Anaconda ,这样就可以同时安装多个相互独立的 Python 运行环境,要使用不同版本依赖库的时候就特别方便了,下图就是我的 Anaconda 中多个运行环境:

至于如何配置 Python 的运行环境,大家可以根据需要自行百度。
如果需要更改 GH_Cpython 的运行环境,可以点击该组件下方的蓝色长条,就可以再次打开环境选择对话框:

我选择的是一个安装了 GPU 版本 TensorFlow 的 Python 3.5.3 版本运行环境,然后写几句测试语句进行运算,可以看到执行结果和原生 Python 中一模一样,同样支持 TensorFlow 的 GPU 运算:

Python 版本为 3.5.3 ,TensorFlow Session 的计算结果也是正确的。
同时在输出信息末尾也可以看到 Tensorflow 的 GPU 也没有问题,使用的是我电脑中编号为 0 的GPU ,即这台电脑上唯一显卡的 GPU:

以上就是 GH_Cpython 的安装和简单测试,有了这个强大的工具,是不是意味着我们就可以放弃 IronPython 了呢?答案是否定的,GH_Cpython 在 Grasshopper 中可以承担的角色只能是作为计算的工具,而不能完完全全把它当作 RhinoPython 来用,这是因为 RhinoCommon 代码库是基于 .net Framework 的,所以在 GH_Cpython 中无法调用 Rhino 中的函数,要调用 Rhino 的函数还是得用 IronPython。不过这两个工具配合使用,还是能解决很多问题的。这个工具的 UI 目前也还是不完善,自动填充等等功能目前也都还没有,不过毕竟才是第一版,相信后续的版本会有所改进。

  推荐学习 

更多新闻与教学

关注Rhino原厂微信公众帐号获取最新课程资讯

 

点击"阅读原文"参与讨论。

【声明】内容源于网络
0
0
Rhino3D
Rhino(犀牛)原厂中国技术支持与推广中心服务号
内容 493
粉丝 0
Rhino3D Rhino(犀牛)原厂中国技术支持与推广中心服务号
总阅读230
粉丝0
内容493