GH_Cpython——将原生的 Python 与机器学习框架引入Grasshopper
VIEW CONTENTS
Rhino3D(犀牛)中文网 首页 图文教学 查看内容

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

2017-8-15 21:29| 发布者: Jorin| 查看: 594| 评论: 3|原作者: Jorin
摘要: 我们都知道 Rhino 和 Grasshopper 中的 Python 并不是真正原生的 Python ,而是在 .net Framework 框架之上的 IronPython,所以大家都有一个共同的烦恼,就是 IronPython 架构上第三方的代码库太少了。很多在原生 Py ...

pythonlogo-512.jpg

我们都知道 Rhino 和 Grasshopper 中的 Python 并不是真正原生的 Python ,而是在 .net Framework 框架之上的 IronPython,所以大家都有一个共同的烦恼,就是 IronPython 架构|ԌE|Ԍߪ少了。很多在原生 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 快很多,从下面的截图就可以看到执行同样的内容计算速度的不同:



CpyVSIrPy.JPG


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


GH_Cpython 的下载地址:http://www.food4rhino.com/app/ghcpython
GitHub 源码:  https://github.com/MahmoudAbdelRahman/GH_CPython


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


install.jpg


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


icon.jpg


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


path.jpg


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


Anaconda.jpg


至于如何配置 Python 的运行环境,大家可以根据需要自行百度。


如果需要更改 GH_Cpython 的运行环境,可以点击该组件下方的蓝色长条,就可以再次打开环境选择对话框:


again.jpg


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


version.jpg


Python 版本为 3.5.3 ,TensorFlow Session 的计算结果也是正确的。


同时在输出信息末尾也可以看到 Tensorflow 的 GPU 也没有问题,使用的是我电脑中编号为 0 的GPU ,即这台电脑上唯一显卡的 GPU:


gpu.jpg


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

鲜花

握手

雷人

路过

鸡蛋
ckl11

感觉要无敌了

2017-8-15 23:45 引用
筑梦NARUTO

这简直是福利呀

2017-8-16 10:20 引用
无间

这是大众福利呀     支持支持

2017-8-26 00:04 引用

Rhino3D(犀牛)中文网

  • 深圳:0755-29642189
  • 上海:021-56496412
  • 成都:028-61592400
  • support@shaper3d.com

关注我们

Copyright   ©2007-2017  Rhino3D(犀牛)中文网  Powered by©Discuz!     ( 粤ICP备07503445号