nggraph-intel的图形编译器和神经网络运行时

ngraph-core的Python项目详细描述


nggraph编译器堆栈

nGraph是一个用于 神经网络。nggraph编译器堆栈提供了一个固有的 高效的基于图形的编译基础设施,设计为兼容 有许多即将推出的处理器,如Intel Nervana™神经网络 处理器(英特尔®;神经网络™nnp),同时还释放了巨大的性能 对神经网络中任何现有硬件目标的提升:两个GPU 以及CPU。使用其灵活的基础设施,你会发现它变得 更容易创建能够遵循 “写一次,到处跑”的口号,让你的人工智能解决方案 从概念到生产再到规模。

使用nggraph执行工作负载的框架显示了up to 45X性能 与本机实现相比提升。

使用python api

nggraph可以直接与这里描述的Python API一起使用,或者 使用core documentation中描述的C++ API。或者, 它的性能优势可以通过前端实现,如 TensorFlowPaddlePaddleONNX。 您还可以创建自己的自定义框架,以便直接与 nGraph Ops用于高目标图形执行。

安装

ngraph是可用的二进制轮,您可以从pypi安装。二元图 轮子目前在ubuntu 16.04上测试。在其他设备上构建和测试 系统中,您可能需要从源代码中尝试building

从pypi安装ngraph python api很容易:

pip install ngraph-core

用法示例

使用ngraph的python api构造计算图并执行 计算很简单。下面的示例演示如何创建最小 (A + B) * C计算图并使用3个numpy数组计算结果 作为输入。

importnumpyasnpimportngraphasngA=ng.parameter(shape=[2,2],name='A',dtype=np.float32)B=ng.parameter(shape=[2,2],name='B',dtype=np.float32)C=ng.parameter(shape=[2,2],name='C',dtype=np.float32)# >>> print(A)# <Parameter: 'A' ([2, 2], float)>model=(A+B)*C# >>> print(model)# <Multiply: 'Multiply_14' ([2, 2])>runtime=ng.runtime(backend_name='CPU')# >>> print(runtime)# <Runtime: Backend='CPU'>computation=runtime.computation(model,A,B,C)# >>> print(computation)# <Computation: Multiply_14(A, B, C)>value_a=np.array([[1,2],[3,4]],dtype=np.float32)value_b=np.array([[5,6],[7,8]],dtype=np.float32)value_c=np.array([[9,10],[11,12]],dtype=np.float32)result=computation(value_a,value_b,value_c)# >>> print(result)# [[ 54.  80.]#  [110. 144.]]print('Result = ',result)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何隐藏actionbar和显示选项卡   java将触摸事件从回收器传递到其父LinearLayout   springboot应用程序中的java enable XFrameOptions标头(不含spring security)   java将十进制128序列化为JSON   java将给定时间转换为GMT   java如何解决SSL握手异常   java哪些平台的缓冲区大小有限?   java如何使用IDE在storm production集群中提交拓扑   Android Javaİmageview的进展   JAVA网使用Spring PathMatchingResourcePatternResolver时出现URI语法异常   java如果有人试图访问我的JSP页面,如何首先显示登录页面?   带水平滚动的java嵌套回收视图   java有可能将Hashmap get和put结合起来吗?   java为什么在计算两毫秒时间戳之间的差时使用模运算符?   从字符串Java中提取葡萄牙语日期   java为什么dispatchTouchEvent避免在屏幕上单击?