Python神经网络集成技术Guide指南
Python神经网络集成技术Guide指南
本指南将介绍如何加载一个神经网络集成系统并从Python运行推断。
提示
所有框架的神经网络集成系统运行时接口都是相同的,因此本指南适用于所有受支持框架(包括TensorFlow、PyTorch、Keras和TorchScript)中的模型。
打包神经网络集成系统
有关如何在所有支持的框架中创建Neuropod模型的示例,请参见基本介绍指南。
打包一个神经网络集成系统
from neuropod.loader import load_neuropod
neuropod = load_neuropod(PATH_TO_MY_MODEL)
还可以使用load_ernood作为上下文管理器:
from neuropod.loader import load_neuropod
with load_neuropod(PATH_TO_MY_MODEL) as neuropod:
# Do something here
Pass
选项
还可以在加载模型时提供运行时选项。
要选择在哪个设备上运行模型,可以提供一个visible_gpu参数。
这是这个神经网络集成系统应该运行的GPU的索引(如果有的话)。可以是无整数,也可以是非负整数。将此设置为“无”将尝试在CPU上运行此模型。
# Run on CPU
neuropod = load_neuropod(PATH_TO_MY_MODEL, visible_gpu=None)
# Run on the
second GPU
neuropod = load_neuropod(PATH_TO_MY_MODEL, visible_gpu=1)
获取模型的输入和输出
模型的输入和输出通过输入和输出属性可用。
with load_neuropod(PATH_TO_MY_MODEL) as neuropod:
# This is a list of dicts containing the "name",
"dtype", and "shape"
# of the input
print(neuropod.inputs, neuropod.outputs)
推论
模型的推理方法用于运行推理。此方法的输入是将输入名称映射到值的dict。这必须与加载模型的neuropod配置中的输入规范匹配。
提示
这个dict中的所有键必须是字符串,所有值必须是numpy数组。
infer的输出是将输出名称映射到值的dict。对其进行检查,以确保其与已加载模型的neuropod配置中的规范匹配。这个dict中的所有键都是字符串,所有值都是numpy数组。
x = np.array([1, 2, 3, 4])
y = np.array([5, 6, 7, 8])
with load_neuropod(ADDITION_MODEL_PATH) as neuropod:
results = neuropod.infer({"x": x, "y": y})
# array([6, 8, 10, 12])
print results["out"]
序列化
import numpy as np
from neuropod import neuropod_native
# An array to
serialize
tensor = np.arange(5)
# Convert a
numpy array to a NeuropodTensor and serialize it
serialized_bytes = neuropod_native.serialize(tensor)
# Deserialize a
string of bytes to a NeuropodTensor
# (and return it
as a numpy array)
deserialized = neuropod_native.deserialize(serialized_bytes)
# array([0, 1,
2, 3, 4])
print(deserialized)
序列化代码在NUMPY数组和C++ NoopPotoStor对象之间转换(以零拷贝方式)。然后,使用C++序列化功能来序列化/反序列化。
提示
序列化和反序列化工作在Python和C++之间。这意味着可以在C++中序列化张量,在Python中反序列化,反之亦然。
Warning
这个API的目标是支持临时序列化。不能保证向后兼容,因此此API不应用于数据的长期存储。
Python神经网络集成技术Guide指南的更多相关文章
- PyTorch神经网络集成技术
PyTorch神经网络集成技术 create_python_neuropod 将任意python代码打包为一个neurood包. create_python_neuropod( neuropod_pa ...
- TorchScript神经网络集成技术
TorchScript神经网络集成技术 create_torchscript_neuropod 将TorchScript模型打包为neuropod包. create_torchscript_neuro ...
- Keras神经网络集成技术
Keras神经网络集成技术 create_keras_neuropod 将Keras模型打包为神经网络集成包.目前,上文已经支持TensorFlow后端. create_keras_neuropod( ...
- 深度学习框架集成平台C++ Guide指南
深度学习框架集成平台C++ Guide指南 这个指南详细地介绍了神经网络C++的API,并介绍了许多不同的方法来处理模型. 提示 所有框架运行时接口都是相同的,因此本指南适用于所有受支持框架(包括Te ...
- python的PEP8 代码风格指南
PEP8 代码风格指南 这篇文章原文实际上来自于这里:https://www.python.org/dev/peps/pep-0008/ 知识点 代码排版 字符串引号 表达式和语句中的空格 注释 版本 ...
- 转:Google技术开发指南:给大学生自学的建议
原文来自于:http://blog.jobbole.com/80621/ 技术开发指南 想要成为成功的软件工程师,必须拥有坚实的计算机科学的基础.本指南针对大学生,给出一条自学途径,让学生以科班和非科 ...
- neurosolutions 人工神经网络集成开发环境 keras
人工神经网络集成开发环境 : http://www.neurosolutions.com/ keras: https://github.com/fchollet/keras 文档 http ...
- 【Python基础学习一】在OSX系统下搭建Python语言集成开发环境 附激活码
Python是一门简单易学,功能强大的编程语言.它具有高效的高级数据结构和简单而有效的面向对象编程方法.Python优雅的语法和动态类型以及其解释性的性质,使它在许多领域和大多数平台成为编写脚本和快速 ...
- 3.Python编程语言基础技术框架
3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中 ...
随机推荐
- UVA10970大块巧克力
题意: 题意,给你一块n*m的巧克力,最终是要把他切成n*m快小蛋糕,问最小切多少刀?每一刀只能把一个整体切成两个整体,不可以把两个整体分成四个整体,就是说只能切一个地方. 思路: ...
- Python中的可迭代Iterable和迭代器Iterator
目录 Iterable可迭代对象 如何判断对象是否是可迭代对象Iterable Iterator迭代器 如何判断对象是否迭代器Iterator 将Iterable转换成Iterator Iterabl ...
- Docker搭建开发环境(Nginx+MySQL+PHP)
注意事项 1.像MySQL配置文件.Nginx配置文件.网站根目录这种比较经常操作的需要先使用 docker cp 将文件从容器里复制到主机目录,docker run的时候直接挂载目录就可以了 2.d ...
- 数据人必读!玩转数据可视化用这个就够了——高德LOCA API 2.0升级来袭!
引言 "一图胜千言",大数据时代来临,数据与人们生活密切相关.复杂难懂且体量庞大的数据给人的感觉总是冷冰冰的,让人难以获取到重点信息,也找不出规律和特征,数据价值发挥不出来.空间数 ...
- Hive解析Json数组超全讲解
在Hive中会有很多数据是用Json格式来存储的,如开发人员对APP上的页面进行埋点时,会将多个字段存放在一个json数组中,因此数据平台调用数据时,要对埋点数据进行解析.接下来就聊聊Hive中是如何 ...
- 拦截器(Interceptor)与过滤器(Filter)
目录 用户的普通Http请求执行顺序 过滤器.拦截器添加后的执行顺序 拦截器(Interceptor)的基本定义 拦截器(Interceptor)必须实现的三个方法 单个拦截器(Interceptor ...
- RabbitMQ一些实用方法
https://blog.csdn.net/vbirdbest/article/details/78670550
- IP包头部格式解析
IPv4首部一般是20字节长.在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016. IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到 ...
- mysql unique key
create table b1(id int,name char unique)这样name字段就唯一了 或者create table b1(id int,name char,unique(id),u ...
- [转载]备忘:oh my zsh 的安装、更新、删除
备忘:oh my zsh 的安装.更新.删除 傅易君 关注 0.8 2016.09.25 00:56* 字数 68 阅读 14920评论 0喜欢 4 查看系统当前 shell $ cat /etc/ ...