//==============================================================================
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								//  Copyright (c) 2015-2021 Qualcomm Technologies, Inc.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  All Rights Reserved.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  Confidential and Proprietary - Qualcomm Technologies, Inc.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//==============================================================================
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifndef _SNPE_SNPE_HPP_ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define _SNPE_SNPE_HPP_ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/DlOptional.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/DlVersion.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/IBufferAttributes.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/ITensor.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/TensorShape.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/TensorMap.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/String.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/StringList.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/IUserBuffer.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/UserBufferMap.hpp" 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "DlSystem/UserMemoryMap.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DlSystem/ZdlExportDefine.hpp" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								namespace  zdl  { 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   namespace  SNPE 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      class  SnpeRuntime ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								namespace  zdl  { 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   namespace  DiagLog 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      class  IDiagLog ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								namespace  zdl  {  namespace  SNPE  { 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** @addtogroup c_plus_plus_apis C++
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@ {  */ 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ brief  . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  The  SNPE  interface  class  definition 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  ZDL_EXPORT  SNPE  final 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								public : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   // keep this undocumented to be hidden in doxygen using HIDE_UNDOC_MEMBERS
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   explicit  SNPE ( std : : unique_ptr < zdl : : SNPE : : SnpeRuntime > & &  runtime )  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ~ SNPE ( ) ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Gets  the  names  of  input  tensors  to  the  network 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  To  support  multiple  input  scenarios ,  where  multiple  tensors  are 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  passed  through  execute ( )  in  a  TensorMap ,  each  tensor  needs  to 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  be  uniquely  named .  The  names  of  tensors  can  be  retrieved 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  through  this  function . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  In  the  case  of  a  single  input ,  one  name  will  be  returned . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ note  Note  that  because  the  returned  value  is  an  Optional  list , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  the  list  must  be  verified  as  boolean  true  value  before  being 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  dereferenced . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ return  An  Optional  List  of  input  tensor  names . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ see  zdl : : DlSystem : : Optional 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : Optional < zdl : : DlSystem : : StringList > 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      getInputTensorNames ( )  const  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ brief  Gets  the  names  of  output  tensors  to  the  network 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ return  List  of  output  tensor  names . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : Optional < zdl : : DlSystem : : StringList > 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      getOutputTensorNames ( )  const  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Gets  the  name  of  output  tensor  from  the  input  layer  name 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ return  Output  tensor  name . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : StringList 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      getOutputTensorNamesByLayerName ( const  char  * name )  const  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Processes  the  input  data  and  returns  the  output 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in ]  A  map  of  tensors  that  contains  the  input  data  for 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *             each  input .  The  names  of  tensors  needs  to  be 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *             matched  with  names  retrieved  through 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *             getInputTensorNames ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in , out ]  An  empty  map  of  tensors  that  will  contain  the  output 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *                 data  of  potentially  multiple  layers  ( the  key 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *                 in  the  map  is  the  layer  name )  upon  return 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ note  output  tensormap  has  to  be  empty .   To  forward  propagate 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        and  get  results  in  user - supplied  tensors ,  use 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        executeWithSuppliedOutputTensors . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bool  execute ( const  zdl : : DlSystem : : TensorMap  & input , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                zdl : : DlSystem : : TensorMap  & output )  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Processes  the  input  data  and  returns  the  output 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in ]  A  single  tensor  contains  the  input  data . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in , out ]  An  empty  map  of  tensors  that  will  contain  the  output 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *                 data  of  potentially  multiple  layers  ( the  key 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *                 in  the  map  is  the  layer  name )  upon  return 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ note  output  tensormap  has  to  be  empty . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bool  execute ( const  zdl : : DlSystem : : ITensor  * input , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                zdl : : DlSystem : : TensorMap  & output )  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Processes  the  input  data  and  returns  the  output ,  using 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *         user - supplied  buffers 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in ]  A  map  of  UserBuffers  that  contains  the  input  data  for 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *             each  input .  The  names  of  UserBuffers  needs  to  be 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *             matched  with  names  retrieved  through 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *             getInputTensorNames ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in , out ]  A  map  of  UserBuffers  that  will  hold  the  output 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *                 data  of  potentially  multiple  layers  ( the  key 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *                 in  the  map  is  the  UserBuffer  name ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ note  input  and  output  UserBuffer  maps  must  be  fully  pre - populated .  with 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        dimensions  matching  what  the  network  expects . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        For  example ,  if  there  are  5  output  UserBuffers  they  all  have  to  be 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        present  in  map . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        Caller  must  guarantee  that  for  the  duration  of  execute ( ) ,  the  buffer 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        stored  in  UserBuffer  would  remain  valid .   For  more  detail  on  buffer 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        ownership  and  lifetime  requirements ,  please  refer  to  zdl : : DlSystem : : UserBuffer 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        documentation . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bool  execute ( const  zdl : : DlSystem : : UserBufferMap  & input , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                const  zdl : : DlSystem : : UserBufferMap  & output )  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Regiter  Client  ION  Buffers 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in ]  A  UserMemoryMap  of  virtual  addresses 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bool  registerIonBuffers ( const  zdl : : DlSystem : : UserMemoryMap &  ionBufferMap )  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Regiter  Client  ION  Buffers 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in ]  A  StringList  of  ION  Buffer  names 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bool  deregisterIonBuffers ( const  zdl : : DlSystem : : StringList &  ionBufferNames )  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Returns  the  version  string  embedded  at  model  conversion 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  time . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ return  Model  version  string ,  which  is  a  free - form  string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *          supplied  at  the  time  of  the  conversion 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : String  getModelVersion ( )  const  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Returns  the  dimensions  of  the  input  data  to  the  model  in  the 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  form  of  TensorShape .  The  dimensions  in  TensorShape  corresponds  to 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  what  the  tensor  dimensions  would  need  to  be  for  an  input  tensor  to 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  the  model . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ param [ in ]  layer  input  name . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ note  Note  that  this  function  only  makes  sense  for  networks  
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        that  have  a  fixed  input  size .  For  networks  in  which  the 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        input  size  varies  with  each  call  of  Execute ( ) ,  this 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        function  should  not  be  used . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ note  Because  the  returned  type  is  an  Optional  instance ,  it  must 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *        be  verified  as  a  boolean  true  value  before  being  dereferenced . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ return  An  Optional  instance  of  TensorShape  that  maintains  dimensions , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *          matching  the  tensor  dimensions  for  input  to  the  model , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *          where  the  last  entry  is  the  fastest  varying  dimension ,  etc . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *   
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ see  zdl : : DlSystem : : ITensor 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ see  zdl : : DlSystem : : TensorShape 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ see  zdl : : DlSystem : : Optional 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : Optional < zdl : : DlSystem : : TensorShape > 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      getInputDimensions ( )  const  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : Optional < zdl : : DlSystem : : TensorShape > 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      getInputDimensions ( const  char  * name )  const  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  Gets  the  output  layer ( s )  for  the  network .  
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *   
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  Note  that  the  output  layers  returned  by  this  function  may  be  
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  different  than  those  specified  when  the  network  was  created  
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  via  the  zdl : : SNPE : : SNPEBuilder .  For  example ,  if  the 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  network  was  created  in  debug  mode  with  no  explicit  output  
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  layers  specified ,  this  will  contain  all  layers . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ note  Note  that  because  the  returned  value  is  an  Optional  StringList , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  the  list  must  be  verified  as  a  boolean  true  value  before  being 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  dereferenced . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ return  A  List  of  output  layer  names . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ see  zdl : : DlSystem : : Optional 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : Optional < zdl : : DlSystem : : StringList > 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      getOutputLayerNames ( )  const  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ brief  Returns  attributes  of  buffers  used  to  feed  input  tensors  and  receive  result  from  output  tensors . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param [ in ]  Tensor  name . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ return  BufferAttributes  of  input / output  tensor  named 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : Optional < zdl : : DlSystem : : IBufferAttributes * >  getInputOutputBufferAttributes ( const  char  * name )  const  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   /**
   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ brief  . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  Get  the  diagnostic  logging  interface 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ note  Note  that  because  the  returned  type  is  an  Optional  instance , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  it  must  be  verified  as  a  boolean  true  value  before  being 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  dereferenced . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    * 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  @ see  zdl : : DlSystem : : Optional 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   zdl : : DlSystem : : Optional < zdl : : DiagLog : : IDiagLog * > 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      getDiagLogInterface ( )  noexcept ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								private : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   SNPE ( const  SNPE & )  =  delete ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   SNPE &  operator = ( const  SNPE & )  =  delete ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   std : : unique_ptr < SnpeRuntime >  m_Runtime ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ; 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** @} */  /* end_addtogroup c_plus_plus_apis C++ */ 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} } 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif