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如何在没有代码气味的情况下编写遵循Liskov替代和其他可靠原则的不可变映射?   java最新jre上的压缩字符串对旧编译代码有好处吗?   java是否可以在javascript中取消PrimeFaces menuitem onclick函数   mysql从SQL数据库中访问java中xml名称空间标记的值   从java程序打开excel文件   java在方法中使用“var”是否会使执行(并发)线程不安全?   java使搜索视图以一种关于AndroidManifest的通用方式可用。xml   java对如何准确使用正则表达式感到困惑?   mule如何访问java文件中的记录变量   java在从2D数组引发异常后继续   枚举当前设置为的java值   java当listview只有几个项目时,如何使alert对话框显示listview的所有项目?   java getTableRow()返回大于项大小的索引   c用java传输二进制文件(数据)   java更改多选列表项复选框颜色