CN112669852B - 内存分配方法、装置及电子设备 - Google Patents

内存分配方法、装置及电子设备 Download PDF

Info

Publication number
CN112669852B
CN112669852B CN202011480605.7A CN202011480605A CN112669852B CN 112669852 B CN112669852 B CN 112669852B CN 202011480605 A CN202011480605 A CN 202011480605A CN 112669852 B CN112669852 B CN 112669852B
Authority
CN
China
Prior art keywords
memory
data
tensors
voice data
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011480605.7A
Other languages
English (en)
Other versions
CN112669852A (zh
Inventor
田超
贾磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011480605.7A priority Critical patent/CN112669852B/zh
Publication of CN112669852A publication Critical patent/CN112669852A/zh
Priority to US17/454,900 priority patent/US20220147441A1/en
Priority to JP2021186753A priority patent/JP7394818B2/ja
Priority to KR1020210165434A priority patent/KR20210151730A/ko
Application granted granted Critical
Publication of CN112669852B publication Critical patent/CN112669852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/285Memory allocation or algorithm optimisation to reduce hardware requirements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Signal Processing (AREA)
  • Machine Translation (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了内存分配方法、装置及电子设备,涉及计算机技术领域,具体涉及语音技术和深度学习等人工智能技术领域。具体实现方案为:接收多帧语音数据;将多帧语音数据输入至神经网络模型,其中,神经网络模型在处理多帧语音数据时申请多个数据张量,其中,多个数据张量共用共享内存。本申请实施例的内存分配方法,可以有效地减小内存开销,同时可以保证内存和计算的平衡。

Description

内存分配方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,具体涉及语音技术和深度学习等人工智能技术领域,尤其涉及一种内存分配方法、装置及电子设备。
背景技术
人工智能这几年来迅猛发展,而深度学习和神经网络正是人工智能发展的基础。由于神经网络往往层数较多且张量大小较大,会消耗芯片较多内存。并且,近年来把神经网络部署到嵌入式设备上的需求越来越强烈。因此对内存分配的优化至关重要。
发明内容
本申请提供一种内存分配方法、装置及电子设备。
根据本申请的一方面,提供了一种内存分配方法,包括:
接收多帧语音数据;
将所述多帧语音数据输入至所述神经网络模型,其中,所述神经网络模型在处理所述多帧语音数据时申请多个数据张量,其中,所述多个数据张量共用共享内存。
根据本申请的另一方面,提供了一种内存分配装置,包括:
接收模块,用于接收多帧语音数据;
输入模块,用于将所述多帧语音数据输入至所述神经网络模型,其中,所述神经网络模型在处理所述多帧语音数据时申请多个数据张量,其中,所述多个数据张量共用共享内存。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一方面实施例所述的内存分配方法。
根据本申请另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机程序,所述计算机指令用于使所述计算机执行上述一方面实施例所述的内存分配方法。
根据本申请的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述一方面实施例所述的内存分配方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例提供的一种内存分配方法的流程示意图;
图2为本申请实施例提供的另一种内存分配方法的流程示意图;
图3为本申请实施例提供的另一种内存分配方法的流程示意图;
图4为本申请实施例提供的一种内存分配装置的结构示意图;以及
图5为根据本申请实施例的内存分配方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面参考附图描述本申请实施例的内存分配方法、装置及电子设备。
人工智能是研究使用计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术领域也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术包括计算机视觉技术、语音识别技术、自然语言处理技术以及深度学习、大数据处理技术、知识图谱技术等几大方向。
语音技术是指在计算机领域中的关键技术有自动语音识别技术和语音合成技术。
深度学习是机器学习领域中一个新的研究方向。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。
本申请实施例提供的内存分配方法,可以由电子设备来执行,该电子设备可为PC(Personal Computer,个人计算机)电脑、平板电脑、掌上电脑和智能音响等,此处不做任何限定。
在本申请实施例中,电子设备中可以设置有处理组件、存储组件和驱动组件。可选的,该驱动组件和处理组件可以集成设置,该存储组件可以存储操作系统、应用程序或其他程序模块,该处理组件通过执行存储组件中存储的应用程序来实现本申请实施例提供的内存分配方法。
图1为本申请实施例提供的一种内存分配方法的流程示意图。
本申请实施例的内存分配方法,还可由本申请实施例提供的内存分配装置执行,该装置可配置于电子设备中,通过接收多帧语音数据,并将多帧语音数据输入至神经网络模型,其中,神经网络模型在处理多帧语音数据时申请多个数据张量,且多个数据张量共用共享内存,实现减小内存开销。
作为一种可能的情况,本申请实施例的内存分配方法还可以在服务器端执行,服务器可以为云服务器,可以在云端执行该内存分配方法。
如图1所示,该内存分配方法可包括:
步骤101,接收多帧语音数据。
在本申请实施例中,电子设备可以接收多帧语音数据。应说明的是,该实施例中所描述的多帧语音数据可以临时存储在声音文件(例如,WAV格式的文件)中,以便电子设备接收(获取),或者电子设备通过麦克风直接接收用户输入的语音信息,并将该语音信息转化为多帧语音数据,此处不做任何限定。
步骤102,将多帧语音数据输入至神经网络模型,其中,神经网络模型在处理多帧语音数据时申请多个数据张量,其中,多个数据张量共用共享内存。
需要说明的是,该实施例中所描述的神经网络模型可以是提前训练好的,并将其预存在电子设备的存储空间中,以方便调取应用,该存储空间不仅限于基于实体的存储空间,例如,硬盘,上述存储空间还可以是连接电子设备的网络硬盘的存储空间(云存储空间)。其中,该神经网络模型可以是一种打分神经网络模型,用于对多帧语音数据进行打分,且该神经网络模型可包括多个层。
具体地,电子设备在接收到多帧语音数据之后,可先从自身的存储空间中调出神经网络模型,然后将该多帧语音数据输入至该神经网络模型,从而通过该神经网络模型对多帧语音数据进行打分,以得到该神经网络模型输出的打分结果。应说明的是,电子设备在接收到多帧语音数据之后,还可先根据预设算法将多帧语音数拆分成多份,并依次输入至该神经网络模型,其中,预设算法可根据实际情况进行标定。
为了提高打分的精确度,在本申请实施例中,电子设备在接收到多帧语音数据之后,可先对该多帧语音数据进行预处理,例如,消除因为人类发声器官本身和由于采集语音数据的设备所带来的混叠、高次谐波失真、高频等等因素对语音数据质量的影响。
进一步地,在本申请实施例中,神经网络模型在处理多帧语音数据时申请的多个数据张量可以是临时的,可用来临时存储层与层之间的交换数据,且该多个数据张量可共用共享内存。
需要说明的是,该实施例中所描述的多个数据张量在满足一定的条件后可以被释放,例如,当一些数据张量作为输入被某层A(例如,神经网络模型的某层)调用后,不再被其他层调用,那么在计算完A层之后,该数据张量是可以被释放的,这样就减少了内存的占用。
另外,在一些神经网络结构中,大多数数据张量只会连接一个输入层A,并且作为另一层B的唯一输出。这样的数据张量的内存是可以复用的,从而内存的开销。
在本申请实施例中,首先接收多帧语音数据,并将多帧语音数据输入至神经网络模型,以通过神经网络模型对多帧语音数据进行打分,从而可以有效地减小内存开销,同时可以保证内存和计算的平衡。
进一步地,在本申请的一个实施例中,上述内存分配方法还可包括根据当前语音数据的帧数,为共享内存分配内存量。
具体地,电子设备将上述的多帧语音数据输入至神经网络模型之后,可通过该神经网络模型根据当前语音数据的帧数,为共享内存分配内存量,以使该神经网络模型对多帧语音数据进行打分的过程中,能够充分使用共享内存,从而进一步地减小内存开销。
或者,电子设备将上述的多帧语音数据输入至神经网络模型之后,直接根据当前语音数据的帧数,为共享内存分配内存量,以使该神经网络模型对多帧语音数据进行打分的过程中,能够充分使用共享内存。
为了清楚说明上一实施例,在本申请的一个实施例中,根据当前语音数据的帧数,为共享内存分配内存量,可包括如果当前语音数据为首帧语音数据,则以第一分配模式为共享内存分配内存量;如果当前语音数据不为首帧语音数据,则以第二分配模式为共享内存分配内存量。
在本申请实施例中,首帧语音数据可为预设时间内的帧语音数据,其中,该预设时间可根据实际情况进行标定,例如,20ms或者30ms内的帧语音数据,也就是说,首帧语音数据并非指的第一帧的语音数据,首帧语音数据可能是具有多帧的语音数据,例如,20帧语音数据。
具体地,电子设备将上述的多帧语音数据输入至神经网络模型之后,可通过该神经网络模型先判断当前语音数据是否为首帧语音数据,如果是,则可以第一分配模式为共享内存分配内存量,如果否,则可以第二分配模式为共享内存分配内存量。由此,融合了单帧分配模式和多帧分配模式的内存分配方法,能够保证效率的同时,保证内存和计算的平衡。
需要说明的是,该实施例中所描述的第一分配模式可为单帧分配模式或多帧分配模式,该实施例中所描述的第二分配模式可为多帧分配模式,其中,在某些情况下第一分配模式和第二分配模式可相同,即都为多帧分配模式,例如,当语音数据仅用首帧模式的时候,第一分配模式可为单帧分配模式,而当语音数据不仅用首帧模式,还用多帧模式的时候,第一分配模式可为多帧分配模式,此处不做任何限定。其中,首帧模式和多帧模式可根据实际情况进行标定。
为了清楚说明上一实施例,在本申请的一个实施例中,如图2所示,以第一分配模式为共享内存分配内存量,可包括:
步骤201,获取神经网络模型处理单帧语音数据时,所申请的多个数据张量之中每个所占用的内存量。
需要说明的是,该实施例中所描述的数据张量通常有n,c,h,w四个维度,实际使用中,单帧表示h==1,n一般也是1,所以单帧内存的大小可由c*w计算。
步骤202,根据每个数据张量所占用的内存量从多个数据张量之中选择两个第一目标数据张量。
在本申请实施例中,两个第一目标数据张量可为多个数据张量之中单帧内存开销最大的两个。
步骤203,获取两个第一目标数据张量所占用的内存。
步骤204,根据两个第一目标数据张量所占用的内存为共享内存分配内存量。
具体地,电子设备将上述的多帧语音数据输入至神经网络模型之后,可通过该神经网络模型先判断当前语音数据是否为首帧语音数据,如果是,则可先获取神经网络模型处理单帧语音数据时,所申请的多个数据张量之中每个所占用的内存量,并根据每个数据张量所占用的内存量计算出单帧内存开销最大的两个数据张量(即,两个第一目标数据张量)的内存大小。然后,电子设备可将共享内存的设定为上面两个数据张量所需的内存和(即,内存1+内存2)。其中,针对该实施例中两个数据张量(即,两个第一目标数据张量),可将其内存赋值为共享内存的首地址和首地址+内存1偏移。由此,可以使神经网络模型(例如,打分神经网络模型)每次接收单帧语音数据中一帧的输入,依次流式计算神经网络模型中的每一层,从而可以灵活的使用共享内存减少了内存的占用。
在本申请实施例中,当上述数据张量中的h==1时,虽然内存是最小化的,可是当神经网络模型中某一层的神经网络参数过大时,会引起存储器多次加载的问题。
为了解决该问题,本申请在当前语音数据不为首帧语音数据时,以多帧分配模式为共享内存分配内存量,在本申请的一个实施例中,如图3所示,以第二分配模式为共享内存分配内存量,可包括:
步骤301,获取神经网络模型每一次处理的h帧语音数据,其中,h帧语音数据从多帧语音数据中获取。
在本申请的一个实施例中,h可为6或12,应说明的是,当该实施例中所描述的h为6时,h帧语音数据可为60ms内的帧语音数据;当该实施例中所描述的h为12时,h帧语音数据可为120ms内的帧语音数据。
在本申请实施例中,可根据实际的需求把h设定为减少存储器问题的临界值,或者设定为根据语音算法特点而采取的值。一般的,语音识别中可以每一次处理60ms或者120ms的数据,不会带来语音识别上的延迟感受。这样可以将h设定为6或者12。
需要说明的是,由于上述以第一分配模式为共享内存分配内存量的方法,已经将临时内存的开销极大的减少,即便将h设定为6或者12,内存增加的也有限,但这时存储器问题带来的效率损失会被弥补,计算开销会和常规方法相当,或者更优(因为常规方法分配的数据张量内存也有可能无法有效存储器,造成存储器未察觉,影响计算效率)。
在本申请的其它实施例中,当该实施例中所描述的h为6时,h帧语音数据可为6帧语音数据;当该实施例中所描述的h为12时,h帧语音数据可为12帧语音数据。
步骤302,获取神经网络模型每一次处理的h帧语音数据时,所申请的多个数据张量之中每个所占用的内存量。
需要说明的是,该实施例中所描述的数据张量通常有n,c,h,w四个维度,实际使用中,当h==6或者12时,h帧内存的大小可由h*c*w计算。
步骤303,根据每个数据张量所占用的内存量从多个数据张量之中选择两个第二目标数据张量。
步骤304,获取两个第二目标数据张量所占用的内存。
步骤305,根据两个第二目标数据张量所占用的内存为共享内存分配内存量。
具体地,电子设备将上述的多帧语音数据输入至神经网络模型之后,可通过该神经网络模型先判断当前语音数据是否为首帧语音数据,如果否,则可先获取神经网络模型每一次处理的多帧语音数据中的h帧语音数据,并获取神经网络模型每一次处理的h帧语音数据时,所申请的多个数据张量之中每个所占用的内存量。然后,根据每个数据张量所占用的内存量计算出h帧内存开销最大的两个数据张量(即,两个第二目标数据张量)的内存大小。然后,电子设备可将共享内存的设定为上面两个数据张量所需的内存和。由此,存储器问题带来的效率损失会被弥补,计算开销会和常规方法相当,或者更优,从而保证内存和计算的平衡。
在本申请实施例中,在神经网络模型的神经网络中,常存在卷积层实现,也就是首次输入的帧数是根据卷积层配置的多少进行设计的。例如3x3的卷积核,不加填充情况下,可能会有两帧的延迟。每增加一个这样的卷积层,输入的h就会增加2,对于深度卷积网络来说,首帧输入可以是20ms或者30ms,对于整句打分,h可以是300-1000(3S~10S)。
这个值不能被6或者12整除,会带来打分结构的混乱。这时本申请实施例的内存分配方法可以有效的解决此问题,在内存分配时,还是分配h==6或12的内存大小,计算首帧时,采用h==1的模式进行计算,首帧之后,每次输入6帧或12帧进行计算。而神经网络模型中,自动设置该模式。神经网络模型初始化后,可进入首帧模式,当首帧的帧数计算完毕后,自动切换到多帧模式。
由此,可以有效地减小内存开销,同时可以保证内存和计算的平衡。
图4为本申请实施例提供的一种内存分配装置的结构示意图。
本申请实施例的内存分配装置,可配置于电子设备中,通过接收多帧语音数据,并将多帧语音数据输入至神经网络模型,其中,神经网络模型在处理多帧语音数据时申请多个数据张量,且多个数据张量共用共享内存,实现减小内存开销。
如图4所示,该内存分配装置400可包括:接收模块410和输入模块420。
其中,接收模块410用于接收多帧语音数据。
在本申请实施例中,电子设备可以通过接收模块410接收多帧语音数据。应说明的是,该实施例中所描述的多帧语音数据可以临时存储在声音文件(例如,WAV格式的文件)中,以便接收模块410接收(获取),或者接收模块410通过麦克风直接接收用户输入的语音信息,并将该语音信息转化为多帧语音数据,此处不做任何限定。
输入模块420用于将多帧语音数据输入至神经网络模型,其中,神经网络模型在处理多帧语音数据时申请多个数据张量,其中,多个数据张量共用共享内存。
需要说明的是,该实施例中所描述的神经网络模型可以是提前训练好的,并将其预存在电子设备的存储空间中,以方便调取应用,该存储空间不仅限于基于实体的存储空间,例如,硬盘,上述存储空间还可以是连接电子设备的网络硬盘的存储空间(云存储空间)。其中,该神经网络模型可以是一种打分神经网络模型,用于对多帧语音数据进行打分,且该神经网络模型可包括多个层。
具体地,在接收模块410接收到多帧语音数据之后,输入模块420可先从自身的存储空间中调出神经网络模型,然后将该多帧语音数据输入至该神经网络模型,从而通过该神经网络模型对多帧语音数据进行打分,以得到该神经网络模型输出的打分结果。应说明的是,接收模块410在接收到多帧语音数据之后,还可先根据预设算法将多帧语音数拆分成多份,并依次输入至该神经网络模型,其中,预设算法可根据实际情况进行标定。
为了提高打分的精确度,在本申请实施例中,接收模块410在接收到多帧语音数据之后,可先对该多帧语音数据进行预处理,例如,消除因为人类发声器官本身和由于采集语音数据的设备所带来的混叠、高次谐波失真、高频等等因素对语音数据质量的影响。
进一步地,在本申请实施例中,神经网络模型在处理多帧语音数据时申请的多个数据张量可以是临时的,可用来临时存储层与层之间的交换数据,且该多个数据张量可共用共享内存。
需要说明的是,该实施例中所描述的多个数据张量在满足一定的条件后可以被释放,例如,当一些数据张量作为输入被某层A(例如,神经网络模型的某层)调用后,不再被其他层调用,那么在计算完A层之后,该数据张量是可以被释放的,这样就减少了内存的占用。
另外,在一些神经网络结构中,大多数数据张量只会连接一个输入层A,并且作为另一层B的唯一输出。这样的数据张量的内存是可以复用的,从而内存的开销。
在本申请实施例中,通过接收模块接收多帧语音数据,并通过输入模块将多帧语音数据输入至神经网络模型,其中,神经网络模型在处理多帧语音数据时申请多个数据张量,且多个数据张量共用共享内存。由此,可以有效地减小内存开销,同时可以保证内存和计算的平衡。
在本申请的一个实施例中,如图4所示,该内存分配装置400还可包括分配模块420,其中,分配模块430用于根据当前语音数据的帧数,为共享内存分配内存量。
在本申请的一个实施例中,如图4所示,分配模块430可包括:第一分配单元431和第二分配单元432。
其中,第一分配单元431用于如果当前语音数据为首帧语音数据,则以第一分配模式为共享内存分配内存量。
第二分配单元432用于如果当前语音数据不为首帧语音数据,则以第二分配模式为共享内存分配内存量。
在本申请的一个实施例中,如图4所示,第一分配单元431具体用于获取神经网络模型处理单帧语音数据时,所申请的多个数据张量之中每个所占用的内存量;根据每个数据张量所占用的内存量从多个数据张量之中选择两个第一目标数据张量;获取两个第一目标数据张量所占用的内存;根据两个第一目标数据张量所占用的内存为共享内存分配内存量。
在本申请的一个实施例中,如图4所示,第二分配单元432具体用于获取神经网络模型每一次处理的h帧语音数据,其中,h帧语音数据从多帧语音数据中获取;获取神经网络模型每一次处理的h帧语音数据时,所申请的多个数据张量之中每个所占用的内存量;根据每个数据张量所占用的内存量从多个数据张量之中选择两个第二目标数据张量;获取两个第二目标数据张量所占用的内存;根据两个第二目标数据张量所占用的内存为共享内存分配内存量。
在本申请的一个实施例中,h可为6或12。
需要说明的是,前述对内存分配方法实施例的解释说明也适用于该实施例的内存分配装置,此处不再赘述。
本申请实施例的内存分配装置,通过接收模块接收多帧语音数据,并通过输入模块将多帧语音数据输入至神经网络模型,其中,神经网络模型在处理多帧语音数据时申请多个数据张量,且多个数据张量共用共享内存。由此,可以有效地减小内存开销,同时可以保证内存和计算的平衡。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本申请的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元505加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元505,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如内存分配方法。例如,在一些实施例中,内存分配方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元505。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的内存分配方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行内存分配方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (10)

1.一种内存分配方法,包括:
接收多帧语音数据;
将所述多帧语音数据输入至神经网络模型,其中,所述神经网络模型在处理所述多帧语音数据时申请多个数据张量,其中,所述多个数据张量共用共享内存;
如果当前语音数据为首帧语音数据,则以第一分配模式为所述共享内存分配内存量;
如果当前语音数据不为首帧语音数据,则以第二分配模式为所述共享内存分配内存量。
2.如权利要求1所述的内存分配方法,其中,所述以第一分配模式为所述共享内存分配内存量,包括:
获取所述神经网络模型处理单帧语音数据时,所申请的多个数据张量之中每个所占用的内存量;
根据每个所述数据张量所占用的内存量从所述多个数据张量之中选择两个第一目标数据张量;
获取所述两个第一目标数据张量所占用的内存;
根据所述两个第一目标数据张量所占用的内存为所述共享内存分配内存量。
3.如权利要求1所述的内存分配方法,其中,所述以第二分配模式为所述共享内存分配内存量,包括:
获取所述神经网络模型每一次处理的h帧语音数据,其中,所述h帧语音数据从所述多帧语音数据中获取;
获取所述神经网络模型每一次处理的所述h帧语音数据时,所申请的多个数据张量之中每个所占用的内存量;
根据每个所述数据张量所占用的内存量从所述多个数据张量之中选择两个第二目标数据张量;
获取所述两个第二目标数据张量所占用的内存;
根据所述两个第二目标数据张量所占用的内存为所述共享内存分配内存量。
4.如权利要求3所述的内存分配方法,其中,所述h为6或12。
5.一种内存分配装置,包括:
接收模块,用于接收多帧语音数据;
输入模块,用于将所述多帧语音数据输入至神经网络模型,其中,所述神经网络模型在处理所述多帧语音数据时申请多个数据张量,其中,所述多个数据张量共用共享内存;
分配模块,用于根据当前语音数据的帧数,为所述共享内存分配内存量;所述分配模块,包括:
第一分配单元,用于如果所述当前语音数据为首帧语音数据,则以第一分配模式为所述共享内存分配内存量;
第二分配单元,用于如果所述当前语音数据不为首帧语音数据,则以第二分配模式为所述共享内存分配内存量。
6.如权利要求5所述的内存分配装置,其中,所述第一分配单元,具体用于:
获取所述神经网络模型处理单帧语音数据时,所申请的多个数据张量之中每个所占用的内存量;
根据每个所述数据张量所占用的内存量从所述多个数据张量之中选择两个第一目标数据张量;
获取所述两个第一目标数据张量所占用的内存;
根据所述两个第一目标数据张量所占用的内存为所述共享内存分配内存量。
7.如权利要求5所述的内存分配装置,其中,所述第二分配单元,具体用于:
获取所述神经网络模型每一次处理的h帧语音数据,其中,所述h帧语音数据从所述多帧语音数据中获取;
获取所述神经网络模型每一次处理的所述h帧语音数据时,所申请的多个数据张量之中每个所占用的内存量;
根据每个所述数据张量所占用的内存量从所述多个数据张量之中选择两个第二目标数据张量;
获取所述两个第二目标数据张量所占用的内存;
根据所述两个第二目标数据张量所占用的内存为所述共享内存分配内存量。
8.如权利要求7所述的内存分配装置,其中,所述h为6或12。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的内存分配方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的内存分配方法。
CN202011480605.7A 2020-12-15 2020-12-15 内存分配方法、装置及电子设备 Active CN112669852B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011480605.7A CN112669852B (zh) 2020-12-15 2020-12-15 内存分配方法、装置及电子设备
US17/454,900 US20220147441A1 (en) 2020-12-15 2021-11-15 Method and apparatus for allocating memory and electronic device
JP2021186753A JP7394818B2 (ja) 2020-12-15 2021-11-17 メモリ割り当て方法、装置、及び電子機器
KR1020210165434A KR20210151730A (ko) 2020-12-15 2021-11-26 메모리 할당 방법, 장치 및 전자 기기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011480605.7A CN112669852B (zh) 2020-12-15 2020-12-15 内存分配方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112669852A CN112669852A (zh) 2021-04-16
CN112669852B true CN112669852B (zh) 2023-01-31

Family

ID=75406121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011480605.7A Active CN112669852B (zh) 2020-12-15 2020-12-15 内存分配方法、装置及电子设备

Country Status (4)

Country Link
US (1) US20220147441A1 (zh)
JP (1) JP7394818B2 (zh)
KR (1) KR20210151730A (zh)
CN (1) CN112669852B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080240B (zh) * 2022-06-29 2023-10-10 美的集团(上海)有限公司 语音处理模型的部署方法、电子设备及存储介质
CN116700996B (zh) * 2023-08-04 2023-11-07 北京燧原智能科技有限公司 一种神经网络的内存分配方法、装置、设备及介质
CN117892769B (zh) * 2024-03-15 2024-06-11 之江实验室 神经网络训练方法、显存调度方法、系统、设备和产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704197A (zh) * 2019-10-17 2020-01-17 北京小米移动软件有限公司 处理内存访问开销的方法、装置及介质
CN110858162A (zh) * 2018-08-24 2020-03-03 华为技术有限公司 内存管理方法及装置、服务器
CN111179913A (zh) * 2019-12-31 2020-05-19 深圳市瑞讯云技术有限公司 一种语音处理方法及装置
CN111401538A (zh) * 2019-09-24 2020-07-10 上海寒武纪信息科技有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN111798875A (zh) * 2020-07-21 2020-10-20 杭州芯声智能科技有限公司 一种基于三值量化压缩的vad实现方法
CN111814971A (zh) * 2020-06-30 2020-10-23 杭州国芯科技股份有限公司 一种神经网络的内存分配方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009229921A (ja) * 2008-03-24 2009-10-08 Victor Co Of Japan Ltd 音響信号分析装置
US10319374B2 (en) * 2015-11-25 2019-06-11 Baidu USA, LLC Deployed end-to-end speech recognition
US10546575B2 (en) * 2016-12-14 2020-01-28 International Business Machines Corporation Using recurrent neural network for partitioning of audio data into segments that each correspond to a speech feature cluster identifier
US11562213B2 (en) * 2018-04-17 2023-01-24 Intel Corporation Methods and arrangements to manage memory in cascaded neural networks
US20210256427A1 (en) * 2018-06-21 2021-08-19 Google Llc Automated Computer Operating System Optimization
KR102483774B1 (ko) * 2018-07-13 2023-01-02 구글 엘엘씨 종단 간 스트리밍 키워드 탐지
US10380997B1 (en) * 2018-07-27 2019-08-13 Deepgram, Inc. Deep learning internal state index-based search and classification
WO2021000282A1 (en) * 2019-07-03 2021-01-07 Huaxia General Processor Technologies Inc. System and architecture of pure functional neural network accelerator
CN114341888A (zh) * 2019-07-03 2022-04-12 华夏芯(北京)通用处理器技术有限公司 用于操作加速器电路的指令
US11537436B2 (en) * 2019-10-02 2022-12-27 Qualcomm Incorporated Method of configuring a memory block allocation of a machine learning network
US12026604B2 (en) * 2019-11-11 2024-07-02 NextVPU (Shanghai) Co., Ltd. Memory pre-allocation for forward calculation in a neural network
CN111341306B (zh) * 2020-02-14 2022-06-17 东南大学 基于语音特征复用的关键词唤醒cnn的存储和计算压缩方法
US20210358490A1 (en) * 2020-05-18 2021-11-18 Nvidia Corporation End of speech detection using one or more neural networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858162A (zh) * 2018-08-24 2020-03-03 华为技术有限公司 内存管理方法及装置、服务器
CN111401538A (zh) * 2019-09-24 2020-07-10 上海寒武纪信息科技有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN110704197A (zh) * 2019-10-17 2020-01-17 北京小米移动软件有限公司 处理内存访问开销的方法、装置及介质
CN111179913A (zh) * 2019-12-31 2020-05-19 深圳市瑞讯云技术有限公司 一种语音处理方法及装置
CN111814971A (zh) * 2020-06-30 2020-10-23 杭州国芯科技股份有限公司 一种神经网络的内存分配方法
CN111798875A (zh) * 2020-07-21 2020-10-20 杭州芯声智能科技有限公司 一种基于三值量化压缩的vad实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种面向声音变换的参数化模型;黄德智等;《声学学报(中文版)》;20061110(第06期);全文 *
基于多源共享因子的多张量填充;张骁等;《中国科学:信息科学》;20160720(第07期);全文 *

Also Published As

Publication number Publication date
US20220147441A1 (en) 2022-05-12
JP2022028810A (ja) 2022-02-16
JP7394818B2 (ja) 2023-12-08
CN112669852A (zh) 2021-04-16
KR20210151730A (ko) 2021-12-14

Similar Documents

Publication Publication Date Title
CN112669852B (zh) 内存分配方法、装置及电子设备
CN113361572B (zh) 图像处理模型的训练方法、装置、电子设备以及存储介质
CN112561079A (zh) 分布式的模型训练装置、方法及计算机程序产品
CN112988727B (zh) 数据标注方法、装置、设备、存储介质及计算机程序产品
EP4191478B1 (en) Method and apparatus for compressing neural network model
CN113220367A (zh) 小程序的运行方法、装置、电子设备及存储介质
CN112528995A (zh) 用于训练目标检测模型的方法、目标检测方法及装置
CN114911598A (zh) 任务调度方法、装置、设备以及存储介质
CN114968567A (zh) 用于分配计算节点的计算资源的方法、装置和介质
CN113885960B (zh) 小程序页面的处理方法、装置、电子设备和存储介质
EP3910528A2 (en) Method, apparatus, device, and storage medium for generating response
CN113220452A (zh) 资源分配方法、模型训练方法、装置和电子设备
CN113361575B (zh) 模型训练方法、装置和电子设备
CN114882313A (zh) 生成图像标注信息的方法、装置、电子设备及存储介质
CN114386577A (zh) 用于执行深度学习模型的方法、设备和存储介质
CN114416357A (zh) 容器组的创建方法、装置、电子设备和介质
CN114429211A (zh) 用于生成信息的方法、装置、设备、介质和产品
CN113033219A (zh) 模型训练方法、装置、电子设备及计算机可读存储介质
US20220188163A1 (en) Method for processing data, electronic device and storage medium
CN112329834B (zh) 循环网络模型训练时显存空间的分配方法和装置
CN114218069B (zh) 回归测试方法、装置、电子设备及存储介质
CN115344646A (zh) 一种分布式事务补偿方法、装置、设备及介质
CN116243984A (zh) 数据处理装置、方法、电子设备和存储介质
CN116245109A (zh) 文本处理方法、装置及电子设备
CN115934246A (zh) 一种虚拟机创建方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant