CN110704197B - 处理内存访问开销的方法、装置及介质 - Google Patents

处理内存访问开销的方法、装置及介质 Download PDF

Info

Publication number
CN110704197B
CN110704197B CN201910989917.1A CN201910989917A CN110704197B CN 110704197 B CN110704197 B CN 110704197B CN 201910989917 A CN201910989917 A CN 201910989917A CN 110704197 B CN110704197 B CN 110704197B
Authority
CN
China
Prior art keywords
convolution
input data
convolution operation
size
memory
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
CN201910989917.1A
Other languages
English (en)
Other versions
CN110704197A (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 Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201910989917.1A priority Critical patent/CN110704197B/zh
Priority to EP20151645.7A priority patent/EP3809336A1/en
Priority to US16/742,102 priority patent/US11586469B2/en
Publication of CN110704197A publication Critical patent/CN110704197A/zh
Application granted granted Critical
Publication of CN110704197B publication Critical patent/CN110704197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating 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/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本文公开了一种处理内存访问开销的方法、装置及介质,此方法包括:申请用于进行填补处理的内存;针对输入数据执行深度学习算法;在执行深度学习算法完成后,释放所述用于填补处理的内存。本文中提前预设用于进行填补处理的内存,在执行深度学习算法完成后统一进行释放,减少内存申请和释放的处理过程,节省处理能力。

Description

处理内存访问开销的方法、装置及介质
技术领域
本文涉及多媒体数据处理技术领域,尤其涉及处理内存访问开销的方法、装置及介质。
背景技术
深度学习模型是图像领域人工智能的重要技术,随着智能手机和IoT设备的普及,越来越多的深度学习算法应用于终端侧设备。虽然终端侧设备的计算和存储能力在不断提升,但是受到体积和功耗的限制,资源仍然十分受限。
深度学习算法中的一种操作模式中,对输入数据进行填补(Padding),再进行卷积,以防止边缘部分的数据丢失。
发明内容
为克服相关技术中存在的问题,本文提供处理内存访问开销的方法、装置及介质。
根据本文实施例的第一方面,提供一种处理内存访问开销的方法,应用于深度学习过程,所述方法包括:
申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存;
确定所述深度学习模型的输入数据;
使用所述深度学习模型对所述输入数据进行深度学习处理;
释放所述内存。
上述方法还具有以下特点:
所述深度学习模型包括按顺序设置的N个卷积操作,N为大于1的整数;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
确定所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸中的最大尺寸;
申请N个内存,所述N个内存与所述N个卷积操作一一对应,所述N个内存的容量相同并且均对应于所述最大尺寸;
所述使用所述深度学习模型对所述输入数据进行深度学习处理包括:
执行每次卷积操作前,使用所述卷积操作对应的内存对所述卷积操作的输入数据进行数值填补。
上述方法还具有以下特点:
所述深度学习模型包括按顺序设置的N个卷积操作,N为大于1的整数;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
根据所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合包含的连续的卷积操作的输出数据的尺寸满足不增大规律;
申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于所述K个卷积操作集合中第一个卷积操作的输入数据执行数值填补操作后的数据尺寸,所述K是小于N的整数;
所述使用所述深度学习模型对所述输入数据进行深度学习处理,包括:
在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
上述方法还具有以下特点:
所述深度学习模型包括按顺序设置的N个卷积操作,N为大于1的整数;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
根据所述K个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合中包含的卷积操作的输入数据执行数值填补操作后的数据尺寸相同;
申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于K个卷积操作集合中任一卷积操作的输入数据执行数值填补操作后的数据尺寸,K是小于或等于N的整数;
所述使用所述深度学习模型对所述输入数据进行深度学习处理,包括:
在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
上述方法还具有以下特点:
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存包括:
申请共享内存;
所述深度学习模型对所述输入数据进行深度学习处理包括:
对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量,使调整后的所述共享内存的容量对应于所述需要进行数值填补操作的卷积操作的输入数据执行数值填补操作后的尺寸,使用所述共享内存对所述卷积操作的输入数据进行数值填补。
上述方法还具有以下特点:
所述对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量包括:
对于需要进行数值填补操作的卷积操作,确定所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸;
若所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量大于所述共享内存的容量,则将所述共享内存的容量重配置为所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量。
根据本文实施例的第二方面,提供一种处理内存访问开销的装置,包括:
内存申请模块,用于申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存;
输入数据确定模块,用于确定所述深度学习模型的输入数据;
学习模块,用于使用所述深度学习模型对所述输入数据进行深度学习处理;
内存释放模块,用于释放所述内存。
上述装置还具有以下特点:
所述深度学习算法包括具有预设执行顺序的N个卷积操作,N为大于1的整数;
所述内存申请模块包括:
第一确定模块,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第二确定模块,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第三确定模块,用于确定所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸中的最大尺寸;
第一申请模块,用于申请N个内存,所述N个内存与所述N个卷积操作一一对应,所述N个内存的容量相同并且均对应于所述最大尺寸;
所述学习模块,用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:执行每次卷积操作前,使用所述卷积操作对应的内存对所述卷积操作的输入数据进行数值填补。
上述装置还具有以下特点:
所述深度学习算法包括具有预设执行顺序的N个卷积操作,N为大于1的整数;
所述内存申请模块包括:
第四确定模块,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第五确定模块,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第六确定模块,用于根据所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合包含的连续的卷积操作的输出数据的尺寸满足不增大规律;
第二申请模块,用于申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于所述K个卷积操作集合中第一个卷积操作的输入数据执行数值填补操作后的数据尺寸,所述K是小于N的整数;
所述学习模块,用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
上述装置还具有以下特点:
所述深度学习算法包括具有预设执行顺序的N个卷积操作,N为大于1的整数;
所述内存申请模块包括:
第七确定模块,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第八确定模块,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第九确定模块,用于根据所述K个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合中包含的卷积操作的输入数据执行数值填补操作后的数据尺寸相同;
第三申请模块,用于申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于K个卷积操作集合中任一卷积操作的输入数据执行数值填补操作后的数据尺寸,K是小于或等于N的整数;
所述学习模块,用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
上述装置还具有以下特点:
所述内存申请模块包括:
第四申请模块,用于申请共享内存;
所述学习模块包括:
调整模块,用于对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量,使调整后的所述共享内存的容量对应于所述需要进行数值填补操作的卷积操作的输入数据执行数值填补操作后的尺寸;
填补模块,使用所述共享内存对所述卷积操作的输入数据进行数值填补。
上述装置还具有以下特点:
所述调整模块包括:
尺寸确定模块,用于对于需要进行数值填补操作的卷积操作,确定所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸;
判断模块,用于判断所述需要进行填补操作的卷积操作的输入数据的尺寸是否大于所述共享内存的容量;
配置模块,用于在所述需要进行填补操作的卷积操作的输入数据的尺寸是否大于所述共享内存的容量时,将所述共享内存的容量重配置为所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量。
根据本文实施例的第三方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行处理内存访问开销的方法,所述方法包括:
申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存;
确定所述深度学习模型的输入数据;
使用所述深度学习模型对所述输入数据进行深度学习处理;
释放所述内存。
本文的实施例提供的技术方案可以包括以下有益效果:本文中提前预设用于进行填补处理的内存,在执行深度学习算法完成后统一进行释放,减少内存申请和释放的处理过程,节省处理能力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本文的实施例,并与说明书一起用于解释本文的原理。
图1是根据一示例性实施例示出的一种处理内存访问开销的方法的流程图;
图2是根据一示例性实施例示出的图1中步骤S11的流程图;
图3是根据一示例性实施例示出的图1中步骤S11的流程图;
图4是根据一示例性实施例示出的图1中步骤S11的流程图;
图5根据一示例性实施例示出的一种处理内存访问开销的装置的结构图;
图6是根据一示例性实施例示出的一种处理内存访问开销的装置中内存申请模块的结构图;
图7是根据一示例性实施例示出的一种处理内存访问开销的装置中内存申请模块的结构图;
图8是根据一示例性实施例示出的一种处理内存访问开销的装置中内存申请模块的结构图。
图9是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图;
图10是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图;
图11是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本文相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本文的一些方面相一致的装置和方法的例子。
一种相关技术中,在进行深度学习的过程中,计算每一个卷积操作时临时开辟一块内存,将原输入数据拷贝到该内存并预留填补空间,进行卷积操作,输出结果,在卷积操作结束后,释放此临时内存。此方式中,每一个操作创建和释放内存带来很大性能开销,如果不释放内存,则又带来内存占用高的问题。
本文中的深度学习过程用于处理多种类型的数据,例如图像数据,或者二维的其它类型的多媒体数据,例如二维的语音数据等。
本公开实施例提供一种处理内存访问开销的方法。参照图1,图1是根据一示例性实施例示出的一种处理内存访问开销的方法的流程图。如图1所示,包括如下步骤:
步骤S11,申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存;
步骤S12,确定所述深度学习模型的输入数据;
步骤S13,使用所述深度学习模型对所述输入数据进行深度学习处理;
步骤S14,释放所述内存。
在一实施例中,执行深度学习算法包括按顺序设置的N个卷积操作,N为大于1的整数。深度学习算法对应于一深度学习模型,此深度学习模型在逻辑结构上包括相应的N个卷积层。对于相邻的两个卷积层,第一个卷积层的输出数据是第二个卷积层的输入数据,此相邻的两个卷积层构成依赖关系。
本方法中提前预设用于进行填补处理的内存,在执行深度学习算法完成后统一进行释放,减少内存申请和释放的处理过程,节省处理能力。
在本实施例中预先设置固定的内存。参照图2,图2是根据一示例性实施例示出的一种处理内存访问开销的方法的流程图,如图2所示,图1示出的步骤S11包括如下步骤:
步骤S21,确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
步骤S22,根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
步骤S23,确定所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸中的最大尺寸;
步骤S24,申请N个内存,所述N个内存与所述N个卷积操作一一对应,所述N个内存的容量相同并且均对应于所述最大尺寸。
步骤S24中申请的N个内存中,每个内存的每个存储单元中存储的数据均为默认值,例如此默认值为0。通过此方式,在每一层卷积操作中相当于自动进行了填补。
图1示出的步骤S13中使用所述深度学习模型对所述输入数据进行深度学习处理的过程中还包括:执行每次卷积操作前,使用所述卷积操作对应的内存对所述卷积操作的输入数据进行数值填补。
在此实施例中,确定N个卷积操作的填补后数据的尺寸中的最大尺寸,为每层卷积操作均设置一尺寸与此最大尺寸相同的内存,在深度学习算法结束时,统一释放所有内存。相比于在每次卷积操作时均申请临时内存并在卷积操作完成后释放的方式,可以节省处理能力。
下面通过具体举例进行说明。
例一:
深度学习算法中包括8个卷积操作。第一个卷积操作的输入数据为一帧图像的数据,此输入数据的尺寸为1920X1080,即此帧图像的横向像素个数为1920,纵向像素个数为1080。每个卷积操作的输入数据的尺寸均为1920X1080,相应的每个卷积操作的填补后数据的尺寸均为1922X1082,设置8个内存,内存中每个存储单元的初始值均为0,每个内存对应于一卷积操作,每个内存的容量均为1922X1082个存储单位,在处理数据是整数时,此存储单位可以是字节,在处理数据是浮点数时,此存储单位可以是4字节。
例二:
深度学习算法中包括8个卷积操作。第一个卷积操作的输入数据为一帧图像的数据,此输入数据的尺寸为1920X1080。8个卷积操作的输入数据的尺寸依次为:1920X1080、1680X960、1470X840、……、240X135;8个卷积操作的填补后数据的尺寸依次为:1922X1082、1682X962、1472X842、……、242X132。确定其中最大的尺寸为1922X1082,设置8个内存,内存中每个存储单元的初始值均为0,每个内存的容量均为1922X1082个存储单位。
本公开实施例公开另一种处理内存访问开销的方法。在本实施例中预先设置固定的内存。参照图3,图3是根据一示例性实施例示出的一种处理内存访问开销的方法的流程图,如图3所示,图1示出的步骤S11包括如下步骤:
步骤S31,确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
步骤S32,根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
步骤S33,根据所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合包含的连续的卷积操作的输出数据的尺寸满足不增大规律;
步骤S34,申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于所述K个卷积操作集合中第一个卷积操作的输入数据执行数值填补操作后的数据尺寸,所述K是小于N的整数。
图1示出的步骤S13中使用所述深度学习模型对所述输入数据进行深度学习处理的过程中还包括:在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
在此实施例中,可以使多个构成一定规律的卷积操作共享一个内存,从而节省内存开销。
下面通过具体举例进行说明。
举例如下:
深度学习算法中包括8个卷积操作。第一个卷积操作的输入数据为一帧图像的数据,此输入数据的尺寸为1920X1080。
8个卷积操作的输入数据的尺寸依次为:1920X1080、960X540、480X270、960X540、480X270、240X135、1920X1080、960X540。
8个卷积操作的填补后数据的尺寸依次为:1922X1082、962X542、482X272、962X542、482X272、242X137、1922X1082、962X542。
根据8个卷积操作的填补后数据的尺寸确定出3个卷积集合,第一个卷积操作集合包括第一卷积操作、第二卷积操作、第三卷积操作;第二个卷积操作集合包括第四卷积操作、第五卷积操作、第六卷积操作;第三个卷积操作集合包括第七卷积操作、第八卷积操作。每个卷积操作集合中包含的顺序排列的多个卷积操作的输出数据的尺寸构成不增大规律。
申请3个内存,包括第一内存,第二内存和第三内存,此3个内存的容量对应于3个卷积操作集合中第一个卷积操作的填补后数据的尺寸,第一内存的容量为1922X1082存储单位,第二内存的容量为962X542存储单位,第三内存的容量为1922X1082存储单位。
在执行深度学习算法时,进行第一个卷积操作、第二个卷积操作和第三个卷积操作时,使用第一内存,进行第四个卷积操作、第五个卷积操作和第六个卷积操作时,使用第二内存,进行第七个卷积操作、第八个卷积操作时,使用第三内存。
本公开实施例公开另一种处理内存访问开销的方法。在本实施例中预先设置固定的内存。参照图4,图4是根据一示例性实施例示出的一种处理内存访问开销的方法的流程图,如图4所示,图1示出的步骤S11包括如下步骤:
步骤S41,确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
步骤S42,根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
步骤S43,根据所述K个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合中包含的卷积操作的输入数据执行数值填补操作后的数据尺寸相同;
步骤S44,申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于K个卷积操作集合中任一卷积操作的输入数据执行数值填补操作后的数据尺寸,K是小于或等于N的整数。
图1示出的步骤S13中使用所述深度学习模型对所述输入数据进行深度学习处理的过程中包括:在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
在此实施例中,可以使填补后数据的尺寸相同的多个卷积操作共享一个内存,从而节省内存开销。
下面通过具体举例进行说明。
举例如下:
深度学习算法中包括8个卷积操作。第一个卷积操作的输入数据为一帧图像的数据,此输入数据的尺寸为1920X1080。
8个卷积操作的输入数据的尺寸依次为:1920X1080、960X540、1920X1080、960X540、1920X1080、960X540、1920X1080、960X540。
8个卷积操作的填补后数据的尺寸依次为:1922X1082、962X542、1922X1082、962X542、1922X1082、962X542、1922X1082、962X542。
根据8个卷积操作的填补后数据的尺寸确定出2个卷积集合,第一个卷积操作集合包括第一卷积操作、第三卷积操作、第五卷积操作、第七卷积操作。第二个卷积操作集合包括第二卷积操作、第四卷积操作、第六卷积操作、第八卷积操作。
申请2个内存,包括第一内存和第二内存,此2个内存的容量对应于2个卷积操作集合中卷积操作的填补后数据的尺寸,第一内存的容量为1922X1082存储单位,第二内存的容量为962X542存储单位。
在执行深度学习算法时,进行第一卷积操作、第三卷积操作、第五卷积操作、第七卷积操作时,使用第一内存,进行第二卷积操作、第四卷积操作、第六卷积操作、第八卷积操作时,使用第二内存。
本公开实施例公开另一种处理内存访问开销的方法。在本实施例中设置可以在卷积操作时进行动态调整的内存。图1示出的步骤S11中申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存是共享内存;
图1示出的步骤S13中深度学习模型对所述输入数据进行深度学习处理的过程中还包括:对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量,使调整后的所述共享内存的容量对应于所述需要进行数值填补操作的卷积操作的输入数据执行数值填补操作后的尺寸,使用所述共享内存对所述卷积操作的输入数据进行数值填补。
在此实施例中,在卷积操作时可以动态调整共享内存,包括将共享内存的容量调大和将共享内存的容量调小,从而根据使用需要合理使用内存,不会造成内存的浪费。
本公开实施例公开另一种处理内存访问开销的方法。本实施例中,在上一实施例的基础上设置在卷积操作满足一定条件时进行动态调整的内存。
图1示出的步骤S11中申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存是一共享内存。
步骤S13中对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量包括:对于需要进行数值填补操作的卷积操作,确定所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸;若所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量大于所述共享内存的容量,则将所述共享内存的容量重配置为所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量。
在此实施例中,在卷积操作时可以动态调整共享内存,但只在卷积操作的输出数据的尺寸大于所述共享内存的容量时将共享内存的容量调大,相比实施例四,此方法可以减少共享内存调整的次数,节省处理能力。
本公开实施例提供一种处理内存访问开销的装置。参照图5,图5是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图,如图5所示,包括:
内存申请模块501,用于申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存;
输入数据确定模块502,用于确定所述深度学习模型的输入数据;
学习模块503,用于使用所述深度学习模型对所述输入数据进行深度学习处理;
内存释放模块504,用于释放所述内存。
其中,深度学习算法包括具有预设执行顺序的N个卷积操作,N为大于1的整数。
本装置在应用过程中,提前预设用于进行填补处理的内存,在执行深度学习算法完成后统一进行释放,减少内存申请和释放的处理过程,节省处理能力
本公开实施例公开另一种处理内存访问开销的装置。参照图6,图6是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图,如图6所示,图5示出的内存申请模块501包括:
第一确定模块601,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第二确定模块602,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第三确定模块603,用于确定所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸中的最大尺寸;
第一申请模块604,用于申请N个内存,所述N个内存与所述N个卷积操作一一对应,所述N个内存的容量相同并且均对应于所述最大尺寸。
学习模块503还用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:执行每次卷积操作前,使用所述卷积操作对应的内存对所述卷积操作的输入数据进行数值填补。
本装置的应用过程中,确定N个卷积操作的填补后数据的尺寸中的最大尺寸,为每层卷积操作均设置一尺寸与此最大尺寸相同的内存,在深度学习算法结束时,统一释放所有内存。相比于在每次卷积操作时均申请临时内存并在卷积操作完成后释放的方式,可以节省处理能力。
本公开实施例公开另一种处理内存访问开销的装置。参照图7,图7是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图,如图7所示,图6示出的内存申请模块501包括:
第四确定模块701,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第五确定模块702,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第六确定模块703,用于根据所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合包含的连续的卷积操作的输出数据的尺寸满足不增大规律;
第二申请模块704,用于申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于所述K个卷积操作集合中第一个卷积操作的输入数据执行数值填补操作后的数据尺寸,所述K是小于N的整数。
学习模块503还用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
本装置的应用过程中,可以使多个构成一定规律的卷积操作共享一个内存,从而节省内存开销。
本公开实施例公开另一种处理内存访问开销的装置。参照图8,图8是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图,如图8所示,图5示出的内存申请模块501包括:
第七确定模块801,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第八确定模块802,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第九确定模块803,用于根据所述K个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合中包含的卷积操作的输入数据执行数值填补操作后的数据尺寸相同;
第三申请模块804,用于申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于K个卷积操作集合中任一卷积操作的输入数据执行数值填补操作后的数据尺寸,K是小于或等于N的整数;
学习模块503还用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
本装置的应用过程中,可以使填补后数据的尺寸相同的多个卷积操作共享一个内存,从而节省内存开销。
本公开实施例公开另一种处理内存访问开销的装置。参照图9,图9是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图,如图9所示,图5示出的内存申请模块501包括:
第四申请模块901,用于申请共享内存;
所述学习模块包括:
调整模块902,用于对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量,使调整后的所述共享内存的容量对应于所述需要进行数值填补操作的卷积操作的输入数据执行数值填补操作后的尺寸;
填补模块903,使用所述共享内存对所述卷积操作的输入数据进行数值填补。
在本装置的应用过程中,在卷积操作时可以动态调整共享内存,包括将共享内存的容量调大和将共享内存的容量调小,从而根据使用需要合理使用内存,不会造成内存的浪费。
图10是根据一示例性实施例示出的一种处理内存访问开销的装置的结构图,在图9所示装置的基础上,图9所示的调整模块902包括:
尺寸确定模块1001,用于对于需要进行数值填补操作的卷积操作,确定所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸;
判断模块1002,用于判断所述需要进行填补操作的卷积操作的输入数据的尺寸是否大于所述共享内存的容量;
配置模块1003,用于在所述需要进行填补操作的卷积操作的输入数据的尺寸是否大于所述共享内存的容量时,将所述共享内存的容量重配置为所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量。
在本装置的应用过程中,在卷积操作时可以动态调整共享内存,但只在卷积操作的输出数据的尺寸大于所述共享内存的容量时将共享内存的容量调大,相比实施例四,此方法可以减少共享内存调整的次数,节省处理能力。
图11是根据一示例性实施例示出的一种用于处理内存访问开销的装置1100的框图。例如,装置1100可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图11,装置1100可以包括以下一个或多个组件:处理组件1102,存储器1104,电力组件1106,多媒体组件1108,音频组件1110,输入/输出(I/O)的接口1112,传感器组件1114,以及通信组件1116。
处理组件1102通常控制装置1100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1102可以包括一个或多个处理器1120来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1102可以包括一个或多个模块,便于处理组件1102和其他组件之间的交互。例如,处理组件1102可以包括多媒体模块,以方便多媒体组件1108和处理组件1102之间的交互。
存储器1104被配置为存储各种类型的数据以支持在设备1100的操作。这些数据的示例包括用于在装置1100上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件1106为装置1100的各种组件提供电力。电力组件1106可以包括电源管理系统,一个或多个电源,及其他与为装置1100生成、管理和分配电力相关联的组件。
多媒体组件1108包括在所述装置1100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1108包括一个前置摄像头和/或后置摄像头。当设备1100处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1110被配置为输出和/或输入音频信号。例如,音频组件1110包括一个麦克风(MIC),当装置1100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1104或经由通信组件1116发送。在一些实施例中,音频组件1110还包括一个扬声器,用于输出音频信号。
I/O接口1112为处理组件1102和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1114包括一个或多个传感器,用于为装置1100提供各个方面的状态评估。例如,传感器组件1114可以检测到设备1100的打开/关闭状态,组件的相对定位,例如所述组件为装置1100的显示器和小键盘,传感器组件1114还可以检测装置1100或装置1100一个组件的位置改变,用户与装置1100接触的存在或不存在,装置1100方位或加速/减速和装置1100的温度变化。传感器组件1114可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1114还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1114还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1116被配置为便于装置1100和其他设备之间有线或无线方式的通信。装置1100可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1116经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1116还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置1100可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1104,上述指令可由装置1100的处理器1120执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本文的其它实施方案。本申请旨在涵盖本文的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本文的一般性原理并包括本文未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本文的真正范围和精神由下面的权利要求指出。
应当理解的是,本文并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本文的范围仅由所附的权利要求来限制。

Claims (13)

1.处理内存访问开销的方法,其特征在于,应用于深度学习过程,所述方法包括:
申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存;
确定所述深度学习模型的输入数据;
使用所述深度学习模型对所述输入数据进行深度学习处理;
释放所述内存;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定N个卷积操作的填补后数据的尺寸中的最大尺寸,N为大于1的整数,为每层卷积操作均设置一尺寸与此最大尺寸相同的内存;或者,
使多个满足尺寸不增大规律的卷积操作共享一个内存。
2.如权利要求1所述的方法,其特征在于,
所述深度学习模型包括按顺序设置的N个卷积操作,N为大于1的整数;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
确定所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸中的最大尺寸;
申请N个内存,所述N个内存与所述N个卷积操作一一对应,所述N个内存的容量相同并且均对应于所述最大尺寸;
所述使用所述深度学习模型对所述输入数据进行深度学习处理包括:
执行每次卷积操作前,使用所述卷积操作对应的内存对所述卷积操作的输入数据进行数值填补。
3.如权利要求1所述的方法,其特征在于,
所述深度学习模型包括按顺序设置的N个卷积操作,N为大于1的整数;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
根据所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合包含的连续的卷积操作的输出数据的尺寸满足不增大规律;
申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于所述K个卷积操作集合中第一个卷积操作的输入数据执行数值填补操作后的数据尺寸,所述K是小于N的整数;
所述使用所述深度学习模型对所述输入数据进行深度学习处理,包括:
在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
4.如权利要求1所述的方法,其特征在于,
所述深度学习模型包括按顺序设置的N个卷积操作,N为大于1的整数;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
根据K个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合中包含的卷积操作的输入数据执行数值填补操作后的数据尺寸相同;
申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于K个卷积操作集合中任一卷积操作的输入数据执行数值填补操作后的数据尺寸,K是小于或等于N的整数;
所述使用所述深度学习模型对所述输入数据进行深度学习处理,包括:
在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
5.如权利要求1所述的方法,其特征在于,
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存包括:
申请共享内存;
所述深度学习模型对所述输入数据进行深度学习处理包括:
对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量,使调整后的所述共享内存的容量对应于所述需要进行数值填补操作的卷积操作的输入数据执行数值填补操作后的尺寸,使用所述共享内存对所述卷积操作的输入数据进行数值填补。
6.如权利要求5所述的方法,其特征在于,
所述对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量包括:
对于需要进行数值填补操作的卷积操作,确定所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸;
若所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量大于所述共享内存的容量,则将所述共享内存的容量重配置为所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量。
7.处理内存访问开销的装置,其特征在于,包括:
内存申请模块,用于申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存;
输入数据确定模块,用于确定所述深度学习模型的输入数据;
学习模块,用于使用所述深度学习模型对所述输入数据进行深度学习处理;
内存释放模块,用于释放所述内存;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定N个卷积操作的填补后数据的尺寸中的最大尺寸,N为大于1的整数,为每层卷积操作均设置一尺寸与此最大尺寸相同的内存;或者,
使多个满足尺寸不增大规律的卷积操作共享一个内存。
8.如权利要求7所述的装置,其特征在于,
所述深度学习模型包括具有预设执行顺序的N个卷积操作,N为大于1的整数;
所述内存申请模块包括:
第一确定模块,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第二确定模块,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第三确定模块,用于确定所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸中的最大尺寸;
第一申请模块,用于申请N个内存,所述N个内存与所述N个卷积操作一一对应,所述N个内存的容量相同并且均对应于所述最大尺寸;
所述学习模块,用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:执行每次卷积操作前,使用所述卷积操作对应的内存对所述卷积操作的输入数据进行数值填补。
9.如权利要求7所述的装置,其特征在于,
所述深度学习模型包括具有预设执行顺序的N个卷积操作,N为大于1的整数;
所述内存申请模块包括:
第四确定模块,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第五确定模块,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第六确定模块,用于根据所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合包含的连续的卷积操作的输出数据的尺寸满足不增大规律;
第二申请模块,用于申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于所述K个卷积操作集合中第一个卷积操作的输入数据执行数值填补操作后的数据尺寸,所述K是小于N的整数;
所述学习模块,用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
10.如权利要求7所述的装置,其特征在于,
所述深度学习模型包括具有预设执行顺序的N个卷积操作,N为大于1的整数;
所述内存申请模块包括:
第七确定模块,用于确定所述深度学习模型中第一个卷积操作的输入数据的尺寸;
第八确定模块,用于根据所述第一个卷积操作的输入数据的尺寸确定所述N个卷积操作的输出数据的尺寸和所述N个卷积操作的输入数据执行数值填补操作后的数据尺寸;
第九确定模块,用于根据K个卷积操作的输入数据执行数值填补操作后的数据尺寸确定K个卷积操作集合,所述N个卷积操作由所述K个卷积操作集合组成,每个卷积操作集合中包含的卷积操作的输入数据执行数值填补操作后的数据尺寸相同;
第三申请模块,用于申请K个内存,所述K个内存与所述K个卷积操作集合一一对应,所述K个内存的容量分别对应于K个卷积操作集合中任一卷积操作的输入数据执行数值填补操作后的数据尺寸,K是小于或等于N的整数;
所述学习模块,用于使用以下方法使用所述深度学习模型对所述输入数据进行深度学习处理:在执行每次卷积操作前,使用所述卷积操作所属的卷积操作集合所对应的内存对所述卷积操作的输入数据进行数值填补。
11.如权利要求7所述的装置,其特征在于,
所述内存申请模块包括:
第四申请模块,用于申请共享内存;
所述学习模块包括:
调整模块,用于对于需要进行数值填补操作的卷积操作,调整所述共享内存的容量,使调整后的所述共享内存的容量对应于所述需要进行数值填补操作的卷积操作的输入数据执行数值填补操作后的尺寸;
填补模块,使用所述共享内存对所述卷积操作的输入数据进行数值填补。
12.如权利要求11所述的装置,其特征在于,
所述调整模块包括:
尺寸确定模块,用于对于需要进行数值填补操作的卷积操作,确定所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸;
判断模块,用于判断所述需要进行填补操作的卷积操作的输入数据的尺寸是否大于所述共享内存的容量;
配置模块,用于在所述需要进行填补操作的卷积操作的输入数据的尺寸是否大于所述共享内存的容量时,将所述共享内存的容量重配置为所述需要进行数值填补操作的卷积操作的输入数据进行数值填补后的尺寸对应的容量。
13.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行处理内存访问开销的方法,所述方法包括:
申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存;
确定所述深度学习模型的输入数据;
使用所述深度学习模型对所述输入数据进行深度学习处理;
释放所述内存;
所述申请用于针对深度学习模型中至少一卷积操作进行数值填补操作的内存,包括:
确定N个卷积操作的填补后数据的尺寸中的最大尺寸,N为大于1的整数,为每层卷积操作均设置一尺寸与此最大尺寸相同的内存;或者,
使多个满足尺寸不增大规律的卷积操作共享一个内存。
CN201910989917.1A 2019-10-17 2019-10-17 处理内存访问开销的方法、装置及介质 Active CN110704197B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910989917.1A CN110704197B (zh) 2019-10-17 2019-10-17 处理内存访问开销的方法、装置及介质
EP20151645.7A EP3809336A1 (en) 2019-10-17 2020-01-14 Method, device and storage medium for processing overhead of memory access
US16/742,102 US11586469B2 (en) 2019-10-17 2020-01-14 Method, device and storage medium for processing overhead of memory access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910989917.1A CN110704197B (zh) 2019-10-17 2019-10-17 处理内存访问开销的方法、装置及介质

Publications (2)

Publication Number Publication Date
CN110704197A CN110704197A (zh) 2020-01-17
CN110704197B true CN110704197B (zh) 2022-12-09

Family

ID=69172602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910989917.1A Active CN110704197B (zh) 2019-10-17 2019-10-17 处理内存访问开销的方法、装置及介质

Country Status (3)

Country Link
US (1) US11586469B2 (zh)
EP (1) EP3809336A1 (zh)
CN (1) CN110704197B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112669852B (zh) * 2020-12-15 2023-01-31 北京百度网讯科技有限公司 内存分配方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304788A (zh) * 2018-01-18 2018-07-20 陕西炬云信息科技有限公司 基于深度神经网络的人脸识别方法
CN110088777A (zh) * 2018-07-18 2019-08-02 深圳鲲云信息科技有限公司 反卷积实现方法及相关产品

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156807B (zh) * 2015-04-02 2020-06-02 华中科技大学 卷积神经网络模型的训练方法及装置
US10319374B2 (en) * 2015-11-25 2019-06-11 Baidu USA, LLC Deployed end-to-end speech recognition
CN106339983A (zh) * 2016-08-17 2017-01-18 乐视控股(北京)有限公司 一种利用高斯模糊实现模糊动画的方法及装置
US11907760B2 (en) * 2016-09-23 2024-02-20 Apple Inc. Systems and methods of memory allocation for neural networks
KR102631381B1 (ko) * 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
US10157045B2 (en) * 2016-11-17 2018-12-18 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems
CN106709441B (zh) * 2016-12-16 2019-01-29 北京工业大学 一种基于卷积定理的人脸验证加速方法
US11080611B2 (en) * 2017-12-22 2021-08-03 Intel Corporation Compression for deep learning in case of sparse values mapped to non-zero value
US10782897B2 (en) * 2018-04-02 2020-09-22 International Business Machines Corporation Memory reduction for neural networks with fixed structures
CN109583576B (zh) * 2018-12-17 2020-11-06 上海联影智能医疗科技有限公司 一种医学图像处理装置及方法
US11487998B2 (en) * 2019-06-17 2022-11-01 Qualcomm Incorporated Depth-first convolution in deep neural networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304788A (zh) * 2018-01-18 2018-07-20 陕西炬云信息科技有限公司 基于深度神经网络的人脸识别方法
CN110088777A (zh) * 2018-07-18 2019-08-02 深圳鲲云信息科技有限公司 反卷积实现方法及相关产品

Also Published As

Publication number Publication date
US11586469B2 (en) 2023-02-21
CN110704197A (zh) 2020-01-17
EP3809336A1 (en) 2021-04-21
US20210117199A1 (en) 2021-04-22

Similar Documents

Publication Publication Date Title
CN107517482B (zh) 数据传输方法及装置
US11082877B2 (en) Method and device for configuring operating bandwidth
US11832279B2 (en) Signal transmission method, signal transmission apparatus, electronic device and computer-readable storage medium
US20170055221A1 (en) Method and apparatus for starting energy saving mode
US11457479B2 (en) Method and apparatus for configuring random access occasion, method and apparatus for random access
CN107040591B (zh) 一种对客户端进行控制的方法及装置
CN107967459B (zh) 卷积处理方法、装置及存储介质
US11284398B2 (en) Communication link configuration method and device
US20220342706A1 (en) Method for data processing and apparatus, and electronic device
CN108200279B (zh) 背光调节方法、装置和设备
US20210314996A1 (en) Method and apparatus for configuring and determining transmission block scheduling interval, and base station
CN107730443B (zh) 图像处理方法、装置及用户设备
CN111601377B (zh) 温度的控制方法、装置及存储介质
CN110704197B (zh) 处理内存访问开销的方法、装置及介质
CN110637502B (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
CN107885464B (zh) 数据存储方法、装置及计算机可读存储介质
US11812386B2 (en) Configuration adjustment methods, apparatuses, electronic device and computer readable storage medium
CN109196798B (zh) 检测物理下行控制信道的辅助方法和装置
CN109922203B (zh) 终端、熄屏方法和装置
CN111261081B (zh) 屏幕显示方法及装置
CN108874482B (zh) 图像处理方法及装置
CN112187326A (zh) 天线控制方法、装置、设备及存储介质
CN111314232A (zh) 应用加速方法、装置及存储介质
CN111722919A (zh) 运行后台应用程序的方法、装置、存储介质及电子设备
CN111261035B (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