版本 0.1.0[color=var(--MAIN-ANCHOR-color)][size=0.5em] Enumerations[color=var(--MAIN-ANCHOR-color)][size=0.5em]GlobalOption[color=var(--MAIN-ANCHOR-color)][size=0.5em]Status[color=var(--MAIN-ANCHOR-color)][size=0.5em]版本: 0.1.0 概述: Status类是一个枚举类,定义了API函数的状态返回值。如果API函数返回一个非零状态值,通常会抛出一个与之对应的异常。可能出现的状态值如下所示: 枚举: HS_OK 描述: 函数调用正常。 枚举: HS_BUSY 描述: 设备忙,稍后重试。 枚举: HS_ERROR 描述: 函数调用遇到意外错误。 枚举: HS_OUT_OF_MEMORY 描述: 主机内存用尽。 枚举: HS_DEVICE_NOT_FOUND 描述: 没有找到设备。 枚举: HS_INVALID_PARAMETERS 描述: 输入参数有错误。 枚举: HS_TIMEOUT 描述: 设备通讯超时。 枚举: HS_NO_DATA 描述: 没有返回数据。 枚举: HS_GONE 描述: graph或者设备,在操作期间已经被关闭. 枚举: HS_UNSUPPORTED_GRAPH_FILE 描述: graph文件有损坏,或者可能由之前不兼容版本的工具生成。请尝试使用与当前API函数版本相匹配的工具重新生成graph文件。
EnumerateDevices[color=var(--MAIN-ANCHOR-color)][size=0.5em] deviceNames = EnumerateDevices() import hs.hsapi as hs deviceNames = hs.EnumerateDevices() if len(deviceNames) == 0: print("Error - No devices detected.") quit() # 打开第一个找到的设备 device = hs.Device(deviceNames[0]) # 创建graph,或者根据需要使用device # 如果创建过graph,销毁graph device.CloseDevice()SetGlobalOption[color=var(--MAIN-ANCHOR-color)][size=0.5em] SetGlobalOption(option, value)参数: - option: GlobalOptions枚举成员,用于指定哪一个选项需要设置。
- value: 设置的新值。
实例
import hs.hsapi as hs # 将全局日志输出设置为verbose级别。 hs.SetGlobalOption(hs.GlobalOption.LOGLEVEL, 2)GetGlobalOption[color=var(--MAIN-ANCHOR-color)][size=0.5em]版本: 0.1.0 概述: 此函数用于获取全局选项。 语法:
value = GetGlobalOption(option) from hs import hsapi as hs # 获取当前日志选项。 logLevel = hs.GetGlobalOption(hs.GlobalOption.LOGLEVEL) print("The current global logging level is: ", logLevel)Device Class[color=var(--MAIN-ANCHOR-color)][size=0.5em]Device类表示角蜂鸟设备。典型的情况是,每个实例化的Device类都对应一个连接到系统的角蜂鸟设备。所以多个角蜂鸟设备对应多个Device实例。 使用方法[color=var(--MAIN-ANCHOR-color)][size=0.5em]创建Device类的实例,必须用设备名进行初始化。设备名可以通过EnumerateDevices()函数获取。成功创建Device类的实例后,典型的使用方法是调用OpenDevice()打开设备、调用AllocateGraph()分配graph、使用graph、调用CloseDevice()关闭设备。 Device类方法[color=var(--MAIN-ANCHOR-color)][size=0.5em]Device.__init__()[color=var(--MAIN-ANCHOR-color)][size=0.5em]版本: 0.1.0 概述: 此函数用于初始化Device类对象。 语法:
hs.Device("device name here")参数: - deviceName: 设备名称。通过调用EnumerateDevices()函数获得。
返回值: None. 实例
import hs.hsapi as hs # 枚举所有连接到系统的角蜂鸟设备。 deviceNames = hs.EnumerateDevices() # 创建并初始化一个Device类对象 hsDevice = hs.Device(deviceNames[0]) # 打开设备,使用设备,关闭设备。Device.OpenDevice()[color=var(--MAIN-ANCHOR-color)][size=0.5em]版本: 0.1.0 概述: 此函数用于打开设备。 语法:
OpenDevice() # 本例只打开第一个设备 import hs.hsapi as hs deviceNames = hs.EnumerateDevices() firstDevice = hs.Device(deviceNames[0]) firstDevice.OpenDevice() # 使用设备后关闭设备 firstDevice.CloseDevice() ############################################# ############################################# # 本例打开所有设备 import hs.hsapi as hs devices = hs.EnumerateDevices() devlist = list() for devnum in range(len(devices)): devlist.append(ncs.Device(devices[devnum])) devlist[devnum].OpenDevice() # # 关闭所有打开的设备 # for dev in devList: dev.CloseDevice() #############################################Device.CloseDevice()[color=var(--MAIN-ANCHOR-color)][size=0.5em]版本: 0.1.0 概述: 此函数用于关闭设备。 语法:
dev.CloseDevice() # 本例展示打开和关闭第一个设备 import hs.hsapi as hs deviceNames = hs.EnumerateDevices() firstDevice = hs.Device(deviceNames[0]) # 打开设备 firstDevice.OpenDevice() # 使用设备 # 关闭设备 firstDevice.CloseDevice()Device.AllocateGraph()[color=var(--MAIN-ANCHOR-color)][size=0.5em] dev.AllocateGraph(graphPath)参数: - graphPath: graph文件路径,字符串类型。
返回值: 返回Graph对象。 实例
from hs import hsapi as hs # 枚举全部设备 device_List = hs.Enumerate() # 初始化并打开第一个设备 device = hs.Device(device_List[0]) device.OpenDevice() # 通过graph文件路径,加载一个graph到设备上 graph = device.AllocateGraph("../networks/myNetwork/graph") # 使用graph # 卸载graph,释放资源 graph.DeallocateGraph() #关闭设备Graph类[color=var(--MAIN-ANCHOR-color)][size=0.5em]Graph类是一个容器,包含graph神经网络文件。 使用方法[color=var(--MAIN-ANCHOR-color)][size=0.5em]为了使用Graph类,用户必须通过调用Device类的AllocateGraph()函数创建一个graph句柄。graph文件路径会被传递给AllocateGraph()函数,该函数会返回一个Graph类的实例。建立Graph实例后的典型用法是获取和设置可选选项,然后调用LoadTensor()和GetResult()函数进行前向推断。最后调用DeallocateGraph()释放资源。 Graph类方法[color=var(--MAIN-ANCHOR-color)][size=0.5em]Graph.DeallocateGraph()[color=var(--MAIN-ANCHOR-color)][size=0.5em] graph.DeallocateGraph() import hs.hsapi as hs deviceNames = hs.EnumerateDevices() if len(deviceNames) == 0: print("Error - No devices detected.") quit() # 打开第一个找到的设备 device = hs.Device(devices[0]) # 分配graph device.AllocateGraph("my_graph") # 使用graph # 释放graph graph.DeallocateGraph() device.CloseDevice()Graph.LoadTensor()[color=var(--MAIN-ANCHOR-color)][size=0.5em] graph.LoadTensor(inputTensor, userObject) # 枚举设备 # 打开设备, # 分配Graph, # 设置Graph选项 # 读取一张图像,调整图像尺寸,转换图像格式 if (graph.LoadTensor(img.astype(numpy.float16), 'user object')): print("LoadTensor success") output, userobj = graph.GetResult() # 释放graph,并关闭设备Graph.GetResult()[color=var(--MAIN-ANCHOR-color)][size=0.5em]版本: 0.1.0 概述: 此函数用于获取前向推断网络的结果。 语法:
inferenceResult, userObj = graph.GetResult() # 打开角蜂鸟设备,并分配一个graph graph.LoadTensor(img.astype(numpy.float16), "user object for this inference") inferenceResult, userObj = graph.GetResult() # 释放graph # 关闭设备
|