Upload dnmetis testtool for NPU inference
@@ -0,0 +1,26 @@
|
||||
"""
|
||||
abstract backend class
|
||||
"""
|
||||
|
||||
|
||||
# pylint: disable=unused-argument,missing-docstring
|
||||
|
||||
class Backend():
|
||||
def __init__(self):
|
||||
self.inputs = []
|
||||
self.outputs = []
|
||||
|
||||
def version(self):
|
||||
raise NotImplementedError("Backend:version")
|
||||
|
||||
def name(self):
|
||||
raise NotImplementedError("Backend:name")
|
||||
|
||||
def load(self, args):
|
||||
raise NotImplementedError("Backend:load")
|
||||
|
||||
def predict(self, feed):
|
||||
raise NotImplementedError("Backend:predict")
|
||||
|
||||
def get_predict_time(self):
|
||||
return 0
|
||||
@@ -0,0 +1,64 @@
|
||||
"""
|
||||
acl backend
|
||||
"""
|
||||
|
||||
|
||||
import dnmetis_backend as dnmetis_backend
|
||||
import backend.backend as backend
|
||||
import numpy as np
|
||||
import os
|
||||
import pdb
|
||||
|
||||
class AclBackend(backend.Backend):
|
||||
def __init__(self):
|
||||
super(AclBackend, self).__init__()
|
||||
self.ACL=5
|
||||
self.outputs = ""
|
||||
self.inputs = ""
|
||||
self.model_path = ""
|
||||
self.cfg_path = ""
|
||||
|
||||
def version(self):
|
||||
return "1.0"
|
||||
|
||||
def name(self):
|
||||
return "AclBackend"
|
||||
|
||||
def image_format(self):
|
||||
# By default tensorflow uses NHWC (and the cpu implementation only does NHWC)
|
||||
return "NHWC"
|
||||
|
||||
def load(self, args):
|
||||
# there is no input/output meta data i the graph so it need to come from config.
|
||||
if not args.inputs:
|
||||
raise ValueError("AclBackend needs inputs")
|
||||
if not args.outputs:
|
||||
raise ValueError("AclBackend needs outputs")
|
||||
self.outputs = args.outputs
|
||||
self.inputs = args.inputs
|
||||
self.model_path = args.model
|
||||
self.cfg_path = args.cfg_path
|
||||
#s.path.join(args.pwd, 'backend_cfg/built-in_config.txt')
|
||||
dnmetis_backend.backend_setconfig(self.cfg_path)
|
||||
dnmetis_backend.backend_load(self.ACL,self.model_path,"")
|
||||
return self
|
||||
|
||||
def predict(self, feed):
|
||||
#fed=feed[self.inputs[0]]
|
||||
result_list=[]
|
||||
result = dnmetis_backend.backend_predict(self.ACL,self.model_path,feed)
|
||||
|
||||
for _ in range(len(self.outputs)):
|
||||
#resnet50 tf & caffe
|
||||
if 'softmax_tensor' in self.outputs[_] or 'prob' in self.outputs[_]:
|
||||
result_list.append(np.argmax(result[_],1))
|
||||
# resnet50 tf
|
||||
if 'ArgMax' in self.outputs[_]:
|
||||
result_list.append(result[_])
|
||||
if result_list == []:
|
||||
# ssd-resnet34 tf
|
||||
result_list = result
|
||||
return result_list
|
||||
|
||||
def unload(self):
|
||||
return dnmetis_backend.backend_unload(self.ACL,self.model_path,"")
|
||||
@@ -0,0 +1,2 @@
|
||||
aclrtMemMallocPolicy=2
|
||||
backend_loglevel=3
|
||||
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 127 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 162 KiB |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 139 KiB |
@@ -0,0 +1,10 @@
|
||||
ILSVRC2012_val_00000001.JPEG 65
|
||||
ILSVRC2012_val_00000002.JPEG 970
|
||||
ILSVRC2012_val_00000003.JPEG 230
|
||||
ILSVRC2012_val_00000004.JPEG 809
|
||||
ILSVRC2012_val_00000005.JPEG 516
|
||||
ILSVRC2012_val_00000006.JPEG 57
|
||||
ILSVRC2012_val_00000007.JPEG 334
|
||||
ILSVRC2012_val_00000008.JPEG 415
|
||||
ILSVRC2012_val_00000009.JPEG 674
|
||||
ILSVRC2012_val_00000010.JPEG 332
|
||||