CN111340190A - 构建网络结构的方法与装置、及图像生成方法与装置 - Google Patents
构建网络结构的方法与装置、及图像生成方法与装置 Download PDFInfo
- Publication number
- CN111340190A CN111340190A CN202010109969.8A CN202010109969A CN111340190A CN 111340190 A CN111340190 A CN 111340190A CN 202010109969 A CN202010109969 A CN 202010109969A CN 111340190 A CN111340190 A CN 111340190A
- Authority
- CN
- China
- Prior art keywords
- network structure
- vector
- target
- dimension
- category
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及人工智能领域中的一种构建网络结构的方法与装置、及图像生成方法与装置。该构建网络结构的方法包括:获取任务的类别;基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于实现多个不同类别的任务;根据所述目标网络结构执行所述任务,得到执行结果;基于所述执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确。该方法能够构建用于多任务处理的高效的网络结构。
Description
技术领域
本申请涉及人工智能领域,并且更具体地,涉及一种构建网络结构的方法与装置、及图像处理方法与装置。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
随着人工智能技术的快速发展,生成对抗网络(generative adversarialnetwork,GAN)近年来在生成任务中取得了卓越的成就,常用于生成以假乱真的图片,此外,生成对抗网络还可以用于生成影片、三维物体模型、音乐等。
目前的生成对抗网络包含一个生成网络(生成器)和一个判别网络(判别器),并由该生成器来生成目标物。虽然该生成对抗网络能够生成目标物,但是生成的目标物的效果并不理想。
因此,如何提高生成器的生成的目标物的效果,成为一个亟需解决的技术问题。
发明内容
本申请提供一种构建网络结构的方法与装置、及图像生成方法与装置,能够构建用于多任务处理的高效的网络结构。
第一方面,提供了一种构建网络结构的方法,该方法包括:获取任务的类别;基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于实现多个不同类别的任务;根据所述目标网络结构执行所述任务,得到执行结果;基于所述执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确。
在本申请实施例中,使用网络结构构建模型生成与所述类别对应的目标网络结构,并根据执行所述任务得到的执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确,其中,所述目标网络结构的超参数是根据所述类别确定的,即所述目标网络结构是为执行(所述多个不同类别中的所述类别对应的)所述任务而训练的,因此,该方法能够构建用于多任务处理的高效的网络结构。
其中,所述目标网络结构的超参数(hyperparameter)可以是根据所述类别确定的。本领域技术人员可知,所述目标网络结构的超参数与(由所述目标网络结构构成的)模型的复杂性或学习能力相关,通常是根据经验预先设定好的。
例如,所述目标网络结构的超参数可以包括网络结构中的操作层的个数及网络结构中的每个操作层中执行的操作等。
可选地,所述任务可以包括:图像处理,语音处理和/或文本处理等
例如,所述任务可以包括图像处理中的图像生成,所述任务的类别可以指生成的图像所属的类别,例如,生成的图像所属的类别可以为猫、狗、飞机或火车等。
再例如,所述任务可以包括自动驾驶中的多任务处理,所述任务的类别可以指自动驾驶中的子任务,例如,所述子任务可以为语义分割、实例分割或深度预测等。
需要说明的是,所述任务也可以指其他多任务处理,所述任务的类别也可以其他多任务处理中的子任务,这里不再赘述。
结合第一方面,在第一方面的某些实现方式中,所述网络结构构建模型包括控制器、类别向量和操作向量,所述控制器用于根据所述类别生成网络结构参数,所述网络结构参数用于指示所述目标网络结构中每一层执行的操作,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作;其中,所述基于所述执行结果,调整所述网络结构构建模型的参数,包括:使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
在本申请实施例中,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作,通过调整所述类别向量和所述操作向量,可以使得模型对多个不同类别和全部候选操作的理解更准确,因此,可以进一步提高所述目标网络结构执行任务得到的执行结果的准确性。
其中,所述全部候选操作可以理解为所述多个网络结构可能包括的全部操作的集合。
可选地,所述类别向量及所述操作向量可以是可学习的参数。
例如,所述类别向量及所述操作向量可以是可学习的参数矩阵,所述类别向量可以为类别嵌入(class embedding)矩阵,该类别嵌入矩阵的行数可以为类别的数量,列数可以为特征维度;所述操作向量可以操作嵌入(operation embedding)矩阵,该操作嵌入矩阵的行数可以为类别或操作的数量,列数可以为特征维度。
结合第一方面,在第一方面的某些实现方式中,所述控制器由长短期记忆网络(long short term memory,LSTM)构成。
结合第一方面,在第一方面的某些实现方式中,其特征在于,所述根据所述目标网络结构执行所述任务,得到执行结果,包括:使用目标神经网络执行所述任务,得到所述执行结果,所述目标神经网络包括所述目标网络结构。
结合第一方面,在第一方面的某些实现方式中,所述网络结构构建模型还包括生成器,所述生成器包括多个操作层,所述多个操作层中的每一个操作层包括多个候选操作;其中,在所述根据所述目标网络结构执行所述任务之前,所述方法还包括:使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
在本申请实施例中,所述生成器可以根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,进而生成包括多个操作层的所述目标网络结构,因此,该方法可以方便地根据所述网络结构参数构建网络结构,从而能够提高构建网络结构的灵活性。
结合第一方面,在第一方面的某些实现方式中,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
在本申请实施例中,所述至少一个操作层通过参数共享(即所述至少一个操作层中至少存在两个候选操作包含相同的参数),可以降低所述网络结构构建模型的参数。
例如,所述多个操作层中的一个操作层可以包括三个候选操作,这三个候选操作可以分别为3x3卷积、5x5卷积及7x7卷积,其中,3x3卷积的参数可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的3x3矩阵的参数),或者说,3x3卷积的参数取自于7x7卷积。
类似地,5x5卷积的参数也可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的5x5矩阵的参数),或者说,5x5卷积的参数取自于7x7卷积。
结合第一方面,在第一方面的某些实现方式中,在获取b个任务的类别的情况下,所述根据所述目标网络结构执行所述任务,得到执行结果,包括:
通过以下多个步骤执行所述b个任务:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个任务对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述执行结果;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
在本申请实施例中,通过上述多个步骤,可以并行执行所述b个类别的任务,因此,可以使得所述目标网络结构更加高效地执行所述任务,同时,还可以提高所述目标网络结构执行所述任务的灵活性。
结合第一方面,在第一方面的某些实现方式中,所述任务包括:图像处理,语音处理和/或文本处理。
第二方面,提供了一种图像生成方法,其特征在于,包括:获取图像的类别;基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于生成多个不同类别的图像;根据所述目标网络结构进行图像生成,得到生成图像;基于所述生成图像,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构输出的生成图像更准确。
在本申请实施例中,使用网络结构构建模型生成与所述类别对应的目标网络结构,并根据所述生成图像,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构输出的生成图像更准确,其中,所述目标网络结构是为生成(所述多个不同类别中的)所述类别的图像而训练的,因此,该方法能够构建用于多类别图像生成的高效的网络结构。
其中,所述目标网络结构的超参数(hyperparameter)可以是根据所述类别确定的。本领域技术人员可知,所述目标网络结构的超参数与(由所述目标网络结构构成的)模型的复杂性或学习能力相关,通常是根据经验预先设定好的。
例如,所述目标网络结构的超参数可以包括网络结构中的操作层的个数及网络结构中的每个操作层中执行的操作等。
结合第二方面,在第二方面的某些实现方式中,所述网络结构构建模型包括控制器、类别向量和操作向量,所述控制器用于根据所述类别生成网络结构参数,所述网络结构参数用于指示所述目标网络结构中每一层执行的操作,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作;其中,所述基于所述生成图像,调整所述网络结构构建模型的参数,包括:使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
在本申请实施例中,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作,通过调整所述类别向量和所述操作向量,可以使得模型对多个不同类别和全部候选操作的理解更准确,因此,可以进一步提高所述目标网络结构输出的生成图像的准确性。
其中,所述全部候选操作可以理解为所述多个网络结构可能包括的全部操作的集合。
可选地,所述类别向量及所述操作向量可以是可学习的参数。
例如,所述类别向量及所述操作向量可以是可学习的参数矩阵,所述类别向量可以为类别嵌入(class embedding)矩阵,该类别嵌入矩阵的行数可以为类别的数量,列数可以为特征维度;所述操作向量可以操作嵌入(operation embedding)矩阵,该操作嵌入矩阵的行数可以为类别或操作的数量,列数可以为特征维度。
结合第二方面,在第二方面的某些实现方式中,所述控制器由长短期记忆网络LSTM构成。
结合第二方面,在第二方面的某些实现方式中,所述根据所述目标网络结构进行图像生成,得到生成图像,包括:使用目标神经网络进行图像生成,得到所述生成图像,所述目标神经网络包括所述目标网络结构。
结合第二方面,在第二方面的某些实现方式中,所述网络结构构建模型还包括生成器,所述生成器包括多个操作层,所述多个操作层中的每一个操作层包括多个候选操作;其中,在所述根据所述目标网络结构进行图像生成之前,所述方法还包括:使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
在本申请实施例中,所述生成器可以根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,进而生成包括多个操作层的所述目标网络结构,因此,该方法可以方便地根据所述网络结构参数构建网络结构,从而能够提高构建网络结构的灵活性。
结合第二方面,在第二方面的某些实现方式中,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
在本申请实施例中,所述至少一个操作层通过参数共享(即所述至少一个操作层中至少存在两个候选操作包含相同的参数),可以降低所述网络结构构建模型的参数。
例如,所述多个操作层中的一个操作层可以包括三个候选操作,这三个候选操作可以分别为3x3卷积、5x5卷积及7x7卷积,其中,3x3卷积的参数可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的3x3矩阵的参数),或者说,3x3卷积的参数取自于7x7卷积。
类似地,5x5卷积的参数也可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的5x5矩阵的参数),或者说,5x5卷积的参数取自于7x7卷积。
结合第二方面,在第二方面的某些实现方式中,在获取b个图像的类别的情况下,所述根据所述目标网络结构进行图像生成,得到生成图像,包括:
通过以下多个步骤生成b个类别的图像:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个类别对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述生成图像;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
在本申请实施例中,通过上述多个步骤,可以并行生成所述b个类别的图像,因此,可以使得所述目标网络结构更加高效地进行图像生成,同时,还可以提高所述目标网络结构进行图像生成的灵活性。
第三方面,提供了一种构建网络结构的装置,包括:获取模块,用于获取任务的类别;生成模块,用于基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于实现多个不同类别的任务;执行模块,用于根据所述目标网络结构执行所述任务,得到执行结果;参数调整模块,用于基于所述执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确。
在本申请实施例中,使用网络结构构建模型生成与所述类别对应的目标网络结构,并根据执行所述任务得到的执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确,其中,所述目标网络结构是为执行(所述多个不同类别中的所述类别对应的)所述任务而训练的,因此,该方法能够构建用于多任务处理的高效的网络结构。
其中,所述目标网络结构的超参数(hyperparameter)可以是根据所述类别确定的。本领域技术人员可知,所述目标网络结构的超参数与(由所述目标网络结构构成的)模型的复杂性或学习能力相关,通常是根据经验预先设定好的。
例如,所述目标网络结构的超参数可以包括网络结构中的操作层的个数及网络结构中的每个操作层中执行的操作等。
可选地,所述任务可以包括:图像处理,语音处理和/或文本处理等
例如,所述任务可以包括图像处理中的图像生成,所述任务的类别可以指生成的图像所属的类别,例如,生成的图像所属的类别可以为猫、狗、飞机或火车等。
再例如,所述任务可以包括自动驾驶中的多任务处理,所述任务的类别可以指自动驾驶中的子任务,例如,所述子任务可以为语义分割、实例分割或深度预测等。
需要说明的是,所述任务也可以指其他多任务处理,所述任务的类别也可以其他多任务处理中的子任务,这里不再赘述。
结合第三方面,在第三方面的某些实现方式中,所述网络结构构建模型包括控制器、类别向量和操作向量,所述控制器用于根据所述类别生成网络结构参数,所述网络结构参数用于指示所述目标网络结构中每一层执行的操作,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作;其中,所述参数调整模块具体用于:使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
在本申请实施例中,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作,通过调整所述类别向量和所述操作向量,可以使得模型对多个不同类别和全部候选操作的理解更准确,因此,可以进一步提高所述目标网络结构执行任务得到的执行结果的准确性。
其中,所述全部候选操作可以理解为所述多个网络结构可能包括的全部操作的集合。
可选地,所述类别向量及所述操作向量可以是可学习的参数。
例如,所述类别向量及所述操作向量可以是可学习的参数矩阵,所述类别向量可以为类别嵌入(class embedding)矩阵,该类别嵌入矩阵的行数可以为类别的数量,列数可以为特征维度;所述操作向量可以操作嵌入(operation embedding)矩阵,该操作嵌入矩阵的行数可以为类别或操作的数量,列数可以为特征维度。
结合第三方面,在第三方面的某些实现方式中,所述控制器由长短期记忆网络LSTM构成。
结合第三方面,在第三方面的某些实现方式中,所述执行模块具体用于:使用目标神经网络执行所述任务,得到所述执行结果,所述目标神经网络包括所述目标网络结构。
结合第三方面,在第三方面的某些实现方式中,所述网络结构构建模型还包括生成器,所述生成器包括多个操作层,所述多个操作层中的每一个操作层包括多个候选操作;其中,所述生成模块还用于:使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
在本申请实施例中,所述生成器可以根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,进而生成包括多个操作层的所述目标网络结构,因此,该方法可以方便地根据所述网络结构参数构建网络结构,从而能够提高构建网络结构的灵活性。
结合第三方面,在第三方面的某些实现方式中,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
在本申请实施例中,所述至少一个操作层通过参数共享(即所述至少一个操作层中至少存在两个候选操作包含相同的参数),可以降低所述网络结构构建模型的参数。
例如,所述多个操作层中的一个操作层可以包括三个候选操作,这三个候选操作可以分别为3x3卷积、5x5卷积及7x7卷积,其中,3x3卷积的参数可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的3x3矩阵的参数),或者说,3x3卷积的参数取自于7x7卷积。
类似地,5x5卷积的参数也可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的5x5矩阵的参数),或者说,5x5卷积的参数取自于7x7卷积。
结合第三方面,在第三方面的某些实现方式中,在获取b个任务的类别的情况下,所述执行模块具体用于通过以下多个步骤执行所述b个任务:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个任务对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述执行结果;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
在本申请实施例中,通过上述多个步骤,可以并行执行所述b个类别的任务,因此,可以使得所述目标网络结构更加高效地执行所述任务,同时,还可以提高所述目标网络结构执行所述任务的灵活性。
结合第三方面,在第三方面的某些实现方式中,所述任务包括:图像处理,语音处理和/或文本处理。
第四方面,提供了一种图像生成装置,包括:获取模块,用于获取图像的类别;生成模块,用于基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于生成多个不同类别的图像;执行模块,用于根据所述目标网络结构进行图像生成,得到生成图像;参数调整模块,用于基于所述生成图像,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构输出的生成图像更准确。
在本申请实施例中,使用网络结构构建模型生成与所述类别对应的目标网络结构,并根据所述生成图像,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构输出的生成图像更准确,其中,所述目标网络结构是为生成(所述多个不同类别中的)所述类别的图像而训练的,因此,该方法能够构建用于多类别图像生成的高效的网络结构。
其中,所述目标网络结构的超参数(hyperparameter)可以是根据所述类别确定的。本领域技术人员可知,所述目标网络结构的超参数与(由所述目标网络结构构成的)模型的复杂性或学习能力相关,通常是根据经验预先设定好的。
例如,所述目标网络结构的超参数可以包括网络结构中的操作层的个数及网络结构中的每个操作层中执行的操作等。
结合第四方面,在第四方面的某些实现方式中,所述网络结构构建模型包括控制器、类别向量和操作向量,所述控制器用于根据所述类别生成网络结构参数,所述网络结构参数用于指示所述目标网络结构中每一层执行的操作,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作;其中,所述参数调整模块具体用于:使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
在本申请实施例中,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作,通过调整所述类别向量和所述操作向量,可以使得模型对多个不同类别和全部候选操作的理解更准确,因此,可以进一步提高所述目标网络结构输出的生成图像的准确性。
其中,所述全部候选操作可以理解为所述多个网络结构可能包括的全部操作的集合。
可选地,所述类别向量及所述操作向量可以是可学习的参数。
例如,所述类别向量及所述操作向量可以是可学习的参数矩阵,所述类别向量可以为类别嵌入(class embedding)矩阵,该类别嵌入矩阵的行数可以为类别的数量,列数可以为特征维度;所述操作向量可以操作嵌入(operation embedding)矩阵,该操作嵌入矩阵的行数可以为类别或操作的数量,列数可以为特征维度。
结合第四方面,在第四方面的某些实现方式中,所述控制器由长短期记忆网络LSTM构成。
结合第四方面,在第四方面的某些实现方式中,所述执行模块具体用于:使用目标神经网络进行图像生成,得到所述生成图像,所述目标神经网络包括所述目标网络结构。
结合第四方面,在第四方面的某些实现方式中,所述网络结构构建模型还包括生成器,所述生成器包括多个操作层,所述多个操作层中的每一个操作层包括多个候选操作;其中,所述生成模块还用于:使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
在本申请实施例中,所述生成器可以根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,进而生成包括多个操作层的所述目标网络结构,因此,该方法可以方便地根据所述网络结构参数构建网络结构,从而能够提高构建网络结构的灵活性。
结合第四方面,在第四方面的某些实现方式中,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
在本申请实施例中,所述至少一个操作层通过参数共享(即所述至少一个操作层中至少存在两个候选操作包含相同的参数),可以降低所述网络结构构建模型的参数。
例如,所述多个操作层中的一个操作层可以包括三个候选操作,这三个候选操作可以分别为3x3卷积、5x5卷积及7x7卷积,其中,3x3卷积的参数可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的3x3矩阵的参数),或者说,3x3卷积的参数取自于7x7卷积。
类似地,5x5卷积的参数也可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的5x5矩阵的参数),或者说,5x5卷积的参数取自于7x7卷积。
结合第四方面,在第四方面的某些实现方式中,在获取b个图像的类别的情况下,所述执行模块具体用于通过以下多个步骤生成b个类别的图像:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个类别对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述生成图像;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。该方法包括:
在本申请实施例中,通过上述多个步骤,可以并行生成所述b个类别的图像,因此,可以使得所述目标网络结构更加高效地进行图像生成,同时,还可以提高所述目标网络结构进行图像生成的灵活性。
第五方面,提供了一种构建网络结构的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面中的任意一种实现方式中的方法。
上述第五方面中的处理器既可以是中央处理器(central processing unit,CPU),也可以是CPU与神经网络运算处理器的组合,这里的神经网络运算处理器可以包括图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-networkprocessing unit,NPU)和张量处理器(tensor processing unit,TPU)等等。其中,TPU是谷歌(google)为机器学习全定制的人工智能加速器专用集成电路。
第六方面,提供了一种图像生成装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第二方面中的任意一种实现方式中的方法。
上述第六方面中的处理器既可以是中央处理器(central processing unit,CPU),也可以是CPU与神经网络运算处理器的组合,这里的神经网络运算处理器可以包括图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-networkprocessing unit,NPU)和张量处理器(tensor processing unit,TPU)等等。其中,TPU是谷歌(google)为机器学习全定制的人工智能加速器专用集成电路。
第七方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面或第二方面中的任意一种实现方式中的方法。
第八方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第二方面中的任意一种实现方式中的方法。
第九方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面或第二方面中的任意一种实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第二方面中的任意一种实现方式中的方法。
上述芯片具体可以是现场可编程门阵列(field-programmable gate array,FPGA)或者专用集成电路(application-specific integrated circuit,ASIC)。
在本申请实施例中,使用网络结构构建模型生成与所述类别对应的目标网络结构,并根据执行所述任务得到的执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确,其中,所述目标网络结构是为执行(所述多个不同类别中的所述类别对应的)所述任务而训练的,因此,该方法能够构建用于多任务处理的高效的网络结构。
附图说明
图1是本申请实施例提供的一种人工智能主体框架示意图。
图2为本申请实施例提供的一种系统架构的结构示意图。
图3为本申请实施例提供的一种芯片的硬件结构示意图。
图4为本申请实施例提供的一种系统架构的示意图。
图5是本申请一个实施例的构建网络结构的方法的示意性流程图。
图6是本申请另一个实施例的构建网络结构的方法的示意性流程图。
图7为本申请实施例提供的构建生成对抗网络的装置的示意性框图。
图8为本申请一个实施例的路径控制器生成子路径的示意性框图。
图9为本申请一个实施例的多路径生成器的示意性框图。
图10为本申请一个实施例的混合操作层进行参数共享的示意性框图。
图11为本申请一个实施例的多路径并行处理的示意性框图。
图12是本申请一个实施例的图像生成方法的示意性流程图。
图13是本申请实施例的构建神经网络的装置的示意性框图。
图14是本申请实施例的图像处理装置的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“信息技术(information technology,IT)价值链”(垂直轴)两个维度对上述人工智能主题框架进行详细的阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。
基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。
这里的智能芯片可以是中央处理器(central processing unit,CPU)、神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processingunit,GPU)、专门应用的集成电路(application specific integrated circuit,ASIC)以及现场可编程门阵列(field programmable gate array,FPGA)等硬件加速芯片。
基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。
例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据:
基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理:
上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力:
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用:
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
本申请实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市等领域。
具体地,本申请实施例可以应用在视觉数据分析与理解系统中,例如,图像生成、多种风格的图像生成、人脸表情合成等需要使用(深度)神经网络的领域,本申请实施例还可以应用于多任务学习中,为每个任务构建合适的网络结构。
下面对多种风格的图像生成和多任务学习这两种应用场景进行简单的介绍。
多种风格的图像生成:
用户可以对终端设备(例如,手机)或者云盘上的图片进行多种风格的图像生成,得到多种不同风格类型的图片,提升用户的体验。
具体地,利用本申请实施例中的构建网络结构的方法,通过训练可以得到适用于多种风格的图像生成的多个网络结构,接下来就可以根据这多个网络结构对图片进行多种风格的图像生成,以得到满足用户需求的图片,提升用户体验。
多任务学习:
多任务学习(multitask learning)是基于共享表示把多个相关的任务放在一起学习的一种机器学习方法。简单来说:多任务学习就是把多个相关的任务放在一起学习,任务之间互相分享、互相补充学习到的领域相关的信息,互相促进学习,提升泛化的效果。例如,自动驾驶中需要理解图像中的语义、实例及深度等信息,多任务学习可以应用于自动驾驶中。
具体地,利用本申请实施例中的构建网络结构的方法,通过训练可以得到适用于自动驾驶的多个网络结构,接下来就可以在自动驾驶中根据这多个网络结构理解图像中的语义、实例及深度等信息,以提升各种信息的准确性,提升用户体验。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于DNN层数多,系数W和偏移向量的数量也比较多。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)分类器
很多神经网络结构最后都有一个分类器,用于对图像中的物体进行分类。分类器一般由全连接层(fully connected layer)和softmax函数(可以称为归一化指数函数,简称为归一化函数)组成,能够根据输入而输出不同类别的概率。
(4)卷积神经网络
卷积神经网络(convosutionas neuras network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(5)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
(6)循环神经网络
循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(7)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(8)策略
一个策略包括一个或多个子策略,一个子策略由一个或多个操作组成,一个操作为类似于平移、旋转或剪切的图像处理函数,且一个操作有两个超参数,一个超参数为应用该操作的概率,另一个超参数为应用该操作的幅度(magnitude)。
子策略中的操作可以包括以下任意一种:对x坐标剪切、对y坐标剪切、对x轴坐标翻转、对y坐标翻转、旋转、自动对比度、反转、均衡、曝光、分层、对比度、颜色、亮度、清晰度、切口、样本配对等。
可以理解的是,一个子策略中包括多个操作时,这多个操作的类型可以相同。
(9)神经网络模型
神经网络模型是一类模仿生物神经网络(动物的中枢神经系统)的结构和功能的数学计算模型。一个神经网络模型可以包括多种不同功能的神经网络层,每层包括参数和计算公式。根据计算公式的不同或功能的不同,神经网络模型中不同的层有不同的名称,例如:进行卷积计算的层称为卷积层,所述卷积层常用于对输入信号(例如:图像)进行特征提取。
一个神经网络模型也可以由多个已有的神经网络模型组合构成。不同结构的神经网络模型可用于不同的场景(例如:分类、识别或图像分割)或在用于同一场景时提供不同的效果。神经网络模型结构不同具体包括以下一项或多项:神经网络模型中网络层的层数不同、各个网络层的顺序不同、每个网络层中的权重、参数或计算公式不同。
业界已存在多种不同的用于识别或分类或图像分割等应用场景的具有较高准确率的神经网络模型。其中,一些神经网络模型可以被特定的训练集进行训练后单独完成一项任务或与其他神经网络模型(或其他功能模块)组合完成一项任务。一些神经网络模型也可以被直接用于单独完成一项任务或与其他神经网络模型(或其他功能模块)组合完成一项任务。
本申请的实施例中,可以将神经网络模型简称为神经网络。
(10)边缘设备
边缘设备是指在数据产生源头和云中心之间任一具有计算资源和网络资源的设备。比如,手机就是人与云中心之间的边缘设备,网关是智能家居和云中心之间的边缘设备。在理想环境中,边缘设备指是指在数据产生源附近分析或处理数据的设备。由于没有数据的流转,进而减少网络流量和响应时间。
本申请实施例中的边缘设备可以是具有计算能力的移动电话、平板个人电脑(tablet personal computer,TPC)、媒体播放器、智能家居、笔记本电脑(laptopcomputer,LC)、个人数字助理(personal digital assistant,PDA)、个人计算机(personalcomputer,PC)、照相机、摄像机、智能手表、可穿戴式设备(wearable device,WD)或者自动驾驶的车辆等。可以理解的是,本申请实施例对边缘设备的具体形式不作限定。
(11)推理
推理是相对训练而言的,指神经网络输入数据之后,神经网络输出损失函数的值、特征图等信息的同时,不更新神经网络的参数。
如图2所示,本申请实施例提供了一种系统架构100,该系统架构100可以用于实现本申请实施例中的构建网络结构的方法及图像处理方法。在图2中,数据采集设备160用于采集训练数据。
以本申请实施例的构建网络结构的方法为例来说,训练数据可以包括真实结果(例如,真实图像)以及真实结果对应的类别(例如,真实图像的类别标签),其中,真实结果对应的类别(例如,真实图像的类别标签)可以是人工预先标注的。
在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型/规则101。
下面对训练设备120基于训练数据得到目标模型/规则101进行描述,训练设备120基于所述真实结果的类别执行任务(例如,图像处理),将执行结果(例如,生成的图像)与真实结果进行对比,直到训练设备120输出的执行结果与真实结果的差值小于一定的阈值,从而完成目标模型/规则101的训练。
上述目标模型/规则101能够用于实现本申请实施例的构建网络结构的方法。本申请实施例中的目标模型/规则101具体可以为卷积神经网络。需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中,如应用于图2所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)AR/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。在图2中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:客户设备输入的待处理图像。
预处理模块113和预处理模块114用于根据I/O接口112接收到的输入数据(如待处理图像)进行预处理,在本申请实施例中,也可以没有预处理模块113和预处理模块114(也可以只有其中的一个预处理模块),而直接采用计算模块111对输入数据进行处理。
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果(例如,生成的图像)返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
如图2所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是本申请中的神经网络,具体的,本申请实施例构建的神经网络可以为CNN,深度卷积神经网络(deep convolutional neural networks,DCNN),循环神经网络(recurrent neural network,RNNS)等等。
图3为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图1所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。
神经网络处理器NPU 50作为协处理器挂载到主中央处理器(central processingunit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器505(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,简称DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
上文中介绍的图2中的执行设备110能够执行本申请实施例的图像处理方法的各个步骤,图3所示的芯片也可以用于执行本申请实施例的图像处理方法的各个步骤。下面结合附图对本申请实施例的构建网络结构的方法和本申请实施例的图像处理方法进行详细的介绍。
如图4所示,本申请实施例提供了一种系统架构300。该系统架构包括本地设备301、本地设备302以及执行设备210和数据存储系统250,其中,本地设备301和本地设备302通过通信网络与执行设备210连接。
执行设备210可以由一个或多个服务器实现。可选的,执行设备210可以与其它计算设备配合使用,例如:数据存储器、路由器、负载均衡器等设备。执行设备210可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备210可以使用数据存储系统250中的数据,或者调用数据存储系统250中的程序代码来实现本申请实施例的构建神经网络的方法。
具体地,执行设备210可以执行以下过程:
获取任务的类别;基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于实现多个不同类别的任务;根据所述目标网络结构执行所述任务,得到执行结果;基于所述执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确。
通过上述过程执行设备210能够构建出一个目标网络结构,该目标网络结构可以用于进行图像处理、多任务学习或者其他多任务处理等等。
用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备210进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备210进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
在一种实现方式中,本地设备301、本地设备302从执行设备210获取到目标神经网络的相关参数,将目标神经网络部署在本地设备301、本地设备302上,利用所述目标神经网络进行图像处理、多任务学习或者其他多任务处理等等,其中,所述目标神经网络由所述目标网络结构构成。
在另一种实现中,执行设备210上可以直接部署目标神经网络,执行设备210通过从本地设备301和本地设备302获取待处理图像,并根据所述目标神经网络对待处理图像进行图像处理、多任务学习或者其他多任务处理场景,其中,所述目标神经网络由所述目标网络结构构成。
上述执行设备210也可以为云端设备,此时,执行设备210可以部署在云端;或者,上述执行设备210也可以为终端设备,此时,执行设备210可以部署在用户终端侧,本申请实施例对此并不限定。
下面先结合图5对本申请实施例的构建网络结构的方法500进行详细的介绍。图5所示的方法可以图2中的执行设备110执行,或者,也可以由图3所示的芯片执行,或者,还可以由移动终端,电脑、服务器(云端)等运算能力足以用来构建网络结构的装置来执行。
图5所示的方法包括步骤510、520、530及540,下面分别对这些步骤进行详细的描述。
S510,获取任务的类别。
其中,所述任务可以包括:图像处理,语音处理和/或文本处理等
例如,所述任务可以包括图像处理中的图像生成,所述任务的类别可以指生成的图像所属的类别,例如,生成的图像所属的类别可以为猫、狗、飞机或火车等。具体可以参见下述图12中方法1200的描述。
再例如,所述任务可以包括自动驾驶中的多任务处理,所述任务的类别可以指自动驾驶中的子任务,例如,所述子任务可以为语义分割、实例分割或深度预测等。
需要说明的是,所述任务也可以指其他多任务处理,所述任务的类别也可以其他多任务处理中的子任务,这里不再赘述。
S520,基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构。
其中,所述目标网络结构的超参数(hyperparameter)可以是根据所述类别确定的,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构可以用于实现多个不同类别的任务。
本领域技术人员可知,所述目标网络结构的超参数与(由所述目标网络结构构成的)模型的复杂性或学习能力相关,通常是根据经验预先设定好的。
例如,所述目标网络结构的超参数可以包括网络结构中的操作层的个数及网络结构中的每个操作层中执行的操作等。
可选地,所述网络结构构建模型可以包括控制器、类别向量和操作向量。
其中,所述控制器可以用于根据所述类别生成网络结构参数,所述网络结构参数可以用于指示所述目标网络结构中每一层执行的操作,所述类别向量可以用于描述所述多个不同类别,所述操作向量可以用于描述所述多个网络结构包含的全部候选操作。
需要说明的是,这里的全部候选操作可以理解为所述多个网络结构可能包括的全部操作的集合。
在本申请实施例中,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作,通过调整所述类别向量和所述操作向量,可以使得模型对多个不同类别和全部候选操作的理解更准确,因此,可以进一步提高执行任务得到的执行结果的准确性。
进一步地,所述控制器也可以用于根据所述类别、所述类别向量及所述操作向量生成网络结构参数。
可选地,所述类别向量及所述操作向量可以是可学习的参数。
例如,所述类别向量及所述操作向量可以是可学习的参数矩阵,所述类别向量可以为类别嵌入(class embedding)矩阵,该类别嵌入矩阵的行数可以为类别的数量,列数可以为特征维度;所述操作向量可以操作嵌入(operation embedding)矩阵,该操作嵌入矩阵的行数可以为类别或操作的数量,列数可以为特征维度。
可选地,所述控制器可以由长短期记忆网络(long short term memory,LSTM)构成。
可选地,所述网络结构构建模型还可以包括生成器。
其中,所述生成器可以包括多个操作层,所述多个操作层中的每一个操作层可以包括多个候选操作,所述生成器可以用于根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
可选地,所述基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,可以包括:使用所述控制器根据所述类别生成网络结构参数;使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
在本申请实施例中,所述生成器可以根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,进而生成包括多个操作层的所述目标网络结构,因此,该方法可以方便地根据所述网络结构参数构建网络结构,从而能够提高构建网络结构的灵活性。
可选地,在所述多个操作层中的至少一个操作层中,可以至少存在两个候选操作包含相同的参数。
在本申请实施例中,所述至少一个操作层通过参数共享(即所述至少一个操作层中至少存在两个候选操作包含相同的参数),可以降低所述网络结构构建模型的参数。
例如,所述多个操作层中的一个操作层可以包括三个候选操作,这三个候选操作可以分别为3x3卷积、5x5卷积及7x7卷积,其中,3x3卷积的参数可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的3x3矩阵的参数),或者说,3x3卷积的参数取自于7x7卷积。
类似地,5x5卷积的参数也可以为7x7卷积中的部分参数(比如,7x7卷积中左上角的5x5矩阵的参数),或者说,5x5卷积的参数取自于7x7卷积。
S530,根据所述目标网络结构执行所述任务,得到执行结果。
可选地,在本申请实施例中,S520可以通过以下多种方式实现:
方式一:
可选地,可以由所述网络结构构建模型根据所述目标网络结构执行所述任务,得到所述执行结果。
具体地,可以由所述生成器生成所述目标网络结构(即所述生成器根据所述网络结构参数,选取所述目标网络结构中每一层执行的操作),并由所述生成器根据所述目标网络结构执行所述任务,得到所述执行结果。
例如,可以由所述生成根据所述网络结构参数选取所述目标网络结构中每一层执行的操作,并将输入特征输入所述生成器中,由所述生成器根据所述目标网络结构对所述输入特征进行处理,得到所述执行结果。
方式二:
可选地,可以根据所述目标网络结构生成目标神经网络,并使用所述目标神经网络执行所述任务,得到执行结果。
可以看出,方式二中的所述目标神经网络是由所述目标网络结构构成的,或者说,所述目标神经网络包括所述目标网络结构。
具体地,可以由所述网络结构构建模型中的生成器生成所述目标网络结构(即所述生成器根据所述网络结构参数,选取所述目标网络结构中每一层执行的操作),并根据所述目标网络结构生成所述目标神经网络,由所述目标神经网络执行所述任务,得到所述执行结果。
例如,可以将输入特征输入所述目标神经网络中,由所述目标神经网络对所述输入特征进行处理,得到所述执行结果。
可选地,所述目标神经网络可以为深度神经网络。例如,所述目标神经网络可以为卷积神经网络。
在本申请实施例中,在获取b个任务的类别的情况下,可以根据所述目标网络结构,通过以下多个步骤执行所述b个任务,得到执行结果。具体步骤如下:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个任务对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码(one-hot)矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述执行结果;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
在本申请实施例中,通过上述多个步骤,可以并行执行所述b个类别的任务,因此,可以使得所述目标网络结构更加高效地执行所述任务,同时,还可以提高所述目标网络结构执行所述任务的灵活性。
S540,基于所述执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确。
可选地,可以使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确。
其中,所述奖励可以是根据所述处理结果确定的。
在本申请实施例中,使用网络结构构建模型生成与所述类别对应的目标网络结构,并根据执行所述任务得到的执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确,其中,所述目标网络结构的超参数是根据所述类别确定的,即所述目标网络结构是为(所述多个不同类别中的所述类别对应的)所述任务而训练的,因此,该方法能够构建用于多任务处理的高效的网络结构。
例如,当将图5中的方法500用于构建生成对抗网络(generative adversarialnetwork,GAN)中的生成器时,所述奖励可以为初始得分(inception score)。
下面先结合图6至图11,将基于本申请实施例中的构建网络结构的方法,构建生成对抗网络(generative adversarial network,GAN)中的生成器的方法进行详细的介绍。
图6为本申请中的构建网络结构的方法600的示意性框图。该方法可以图2中的执行设备110执行,或者,也可以由图3所示的芯片执行,或者,还可以由移动终端,电脑、服务器(云端)等运算能力足以用来构建网络结构的装置来执行。
图7为根据图6中的方法600构建生成对抗网络的装置700的示意性框图。由图7中的装置700生成的生成对抗网络可以用于生成多种不同类型的图片。
如图7所示,该装置700主要包括网络结构构建模型710、判别器720及图片库(或者称为训练集)730。
其中,所述网络结构构建模型710包括路径控制器712及多路径生成器714,所述多路径生成器714包括(多个)混合操作层716、多路径并行模块717及参数共享模块718。
可选地,所述网络结构构建模型710可以为图6中的方法600中的所述网络结构构建模型,所述路径控制器712可以为方法600中的所述控制器,所述多路径生成器714可以为方法600中的所述生成器。
具体地,所述装置700中各个模块的功能描述如下:
路径控制器712:输入为图片的类别标签,输出为该类别在多路径生成器中的子路径。
其中,这里的子路径可以为图6中的方法600中的所述网络结构参数。
多路径生成器714:多路径生成器714可以包括多个混合操作层716,不同的类别(标签)在该多路径生成器714中拥有不同的子路径,多条子路径支持并行前向传播,可以简化训练和推理的流程。
混合操作层716:多个混合操作层中的每一个混合操作层可以包含多种不同类型的操作,例如,3x3卷积,5x5卷积,膨胀卷积等。
其中,所述多个混合操作层716可以为图6中的方法600中的所述多个操作层,每一个混合操作层包含的多种不同类型的卷积操作可以为图6中的方法600中的所述多个操作层中的每一个操作层包括的多个候选操作。
多路径并行模块717:使得多路径生成器可以同时前向传播多条子路径。
参数共享模块718:可以用于混合操作层中的多种不同类型的操作共享参数,以减少模型的参数量。
下面结合图6,将根据图7中的装置700构建生成对抗网络(generativeadversarial network,GAN)中的生成器的方法进行详细描述。图6所示的方法600包括步骤610至690,具体描述如下:
S610,获取训练集中的训练图片Ir1及所述训练图片的类别标签y1;
其中,所述训练图片可以为真实图片或者原始图片,训练图片的类别标签可以为真实图片所属的类别或者原始图片所属的类别。
可选地,所述训练图片Ir1也可以为一批图片(即多个图片)。
S620,网络结构构建模型中的路径控制器根据所述类别标签,生成子路径编号P1。
图8示出了路径控制器根据所述类别标签生成一个3层子网络(即子路径)的过程,所述路径控制器可以由LSTM构成。
其中,如图8所示,所述路径控制器的输入可以为所述类别标签c,输出可以为子路径编号(i,j,k)。
可选地,所述路径控制还可以包括类别嵌入(class embedding,CE)和操作嵌入(operation embedding,OE),其中,所述类别嵌入为M个长度为d的向量,所述M个长度分别用于描述M个类别,所述操作嵌入为N个长度为d的向量,所述N个长度分别用于描述N个操作,M、N与d均为正整数。
相应地,所述路径控制器的输入可以为所述类别标签c、所述类别嵌入及所述操作嵌入,为所述类别生成子路径。
可选地,所述类别嵌入及所述操作嵌入可以为可学习的参数矩阵,其中,所述类别嵌入的行数为类别的数量,列数为特征维度;所述类别嵌入的行数为操作的数量,列数为特征维度。
如图8所求,CE[c]可以表示类别c所对应的类别特征。在时间步t1时,将CE[c]输入LSTM中,可以得到操作的概率分布P1(op),依照该概率分布采样得到操作opi,在时间步t2时,输入除以2的目的是让输入特征向量的取值范围保持一致,得到操作的概率分布P2(op),依照该概率分布采样得到操作opj,重复此步骤,最终得到类别c对应的子路径(i,j,k)。
具体的方法可以参考现有技术中LSTM的处理过程,这里不再赘述。
S630,所述网络结构构建模型中的多路径生成器根据所述子路径编号P1及采样的噪声z1,生成图片Ig1。
其中,所述高斯分布的噪声z1可以为高斯分布的噪声。
图9所示为一个包括三个混合操作层的多路径生成器。以训练集(即图7所示的图片库730)包括3个类别(例如,A,B,C)的图片,每个混合操作层包括4个类型的操作(op)为例进行说明。
如图9所示,类别A在多路径生成器中的子路径(sub-path)可以为(1,3,4),类别B的子路径可以为(2,1,3),类别C的子路径可以为(3,4,1),子路径(的编号)表示该类别(的图片)在每一层混合操作层中所选择的操作类型。
所述子路径(的编号)可以由所述路径控制器自动生成,一个训练好的路径控制器会为每个类别生成最适合该类别的子路径网络。
例如,当所述训练图片的类别标签y1为类别A时,所述多路径生成器可以所述子路径(1,3,4)及采样的噪声z1,生成图片Ig1。
其中,每个混合操作层的多个不同类型的操作还可以通过参数共享模块进行参数共享。如图10所示为一个混合操作层以及该混合操作层所采用的参数共享策略。
混合操作层可以包括多种操作,如图10所示,可以包括3x3卷积,5x5卷积,7x7卷积。对于每个类别只会使用其中的一种操作,并输出该操作的输出,因此,混合操作层其实类似于一个开关,根据类别标签控制该开关并输出该类型对应的操作结果。
如图10所示混合操作层中的不同类型的卷积操作可以共享卷积核,例如,可以预先分配一个最大的7x7卷积核的参数,然后3x3、5x5卷积核的参数都可以取自于该预先分配的7x7卷积核。
S640,根据所述训练图片与所述图片Ig1更新判别器的参数。
可选地,所述判别器可以根据所述训练图片与所述图片Ig1得到判别结果,然后根据所述判别结果更新所述判别器的参数。具体方法可以参考现有技术,这里不再赘述。
S650,所述多路径生成器根据所述子路径编号P1及采样的噪声z2,生成图片Ig2。
可选地,所述650与上述S630类似,具体可以参考上述S630中的描述,这里不再赘述。
S660,所述判别器根据所述训练图片及所述图片Ig2得到判别结果,根据所述判别结果更新所述生成器的参数。
其中,更新所述生成器的参数的具体方法可以参考现有技术,本申请实施例中对此不再赘述。
进一步地,可以重复执行上述S610至S660,直到将训练集中的训练图片迭代训练完为止。
在上述步骤中,所述训练图片Ir1也可以为多个图片,此时,在上述S630及S650中,所述多路径生成器可以对所述多个图片进行多路径并行处理。
所述多路径生成器可以包括多个混合操作层,如图11所示,以多个混合操作层中的一个混合操作层为例进行说明。
例如,混合操作层的一个输入可以为X(例如,上述采样的噪声z1或采样的噪声z2),X的维度是bxdin,其中,b是特征(即训练图片)的个数,din是每个特征的维度,混合操作层的另一个输入可以为路径P,维度为b,P表示b个特征所选择的操作类型。
需要说明的是,X也可以是卷积层输出的4维的特征图(feature map),为了便于理解,本申请中以X为2维为例进行说明。
如图11所示,可以将X输入到所有的N个操作中,并将所有操作的输出拼接(concat)起来得到中间特征,中间特征的维度是bxNxdout。
同时,可以将路径P转化为一位有效编码(one-hot)矩阵,随后,可以先将所述一位有效编码矩阵与所述中间特征进行广播(broadcast)乘法,再通过加法将N对应的维度降维(即将维度N对应的多个元素相加),得到混合操作层的输出特征,该混合操作层的输出特征的维度为bxdout。
这样就实现了通过路径P来控制每个样本所选择的操作类型的目的,即对所述多个图片进行多路径并行处理。
S670,获取训练图片Ir2及该训练图片的类别标签y2。
S680,所述网络结构构建模型根据所述训练图片Ir2及所述训练图片的类别标签y2,生成图片Ig2。
可选地,所述680与上述S630类似,具体可以参考上述S630中的描述,这里不再赘述。
S690,计算所述图片Ig2的初始得分(inception score),并使用强化学习方法,将所述初始得分作为奖励,更新所述路径控制器的参数。
需要说明的是,所述路径控制器的参数可以包括LSTM的参数、所述类别嵌入及所述操作嵌入。
上述S690中计算所述图片Ig2的初始得分及使用强化学习方法更新参数的具体方法可以参考现有技术,这里不再赘述。
进一步地,可以重复执行上述S610至S690,直到所述多路径生成器能够生成满足用户需求的图片为止(即网络结构搜索/训练完成,已得到满足用户需求的网络结构)。此时,可以继续使用所述网络结构构建模型生成满足用户需求的图片。
下面先结合图12对本申请实施例的图像生成方法1200进行详细的介绍。图12所示的方法可以图2中的执行设备110执行,或者,也可以由图3所示的芯片执行,或者,还可以由移动终端,电脑、服务器(云端)等运算能力足以用来构建网络结构的装置来执行。
图12所示的方法包括步骤1210、1220、1230及1240,下面分别对这些步骤进行详细的描述。
S1210,获取图像的类别。
S1220,基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构。
其中,所述目标网络结构的超参数可以是根据所述类别确定的,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于生成多个不同类别的图像。
可选地,所述网络结构构建模型可以包括控制器、类别向量和操作向量,所述控制器可以用于根据所述类别生成网络结构参数,所述网络结构参数可以用于指示所述目标网络结构中每一层执行的操作,所述类别向量可以用于描述所述多个不同类别,所述操作向量可以用于描述所述多个网络结构的全部候选操作。
可选地,所述控制器可以由长短期记忆网络LSTM构成。
可选地,所述网络结构构建模型还可以包括生成器,所述生成器可以包括多个操作层,所述多个操作层中的每一个操作层可以包括多个候选操作,所述生成器可以用于根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
可选地,所述基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,可以包括:使用所述控制器根据所述类别生成网络结构参数;使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
可选地,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
S1230,根据所述目标网络结构进行图像生成,得到生成图像。
可选地,可以使用目标神经网络进行图像生成,得到所述生成图像,所述目标神经网络包括所述目标网络结构。
可选地,在获取b个图像的类别的情况下,可以通过以下多个步骤生成b个类别的图像:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个类别对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述生成图像;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
S1240,基于所述生成图像,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构输出的生成图像更准确。
可选地,可以使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
图13是本申请实施例提供的构建网络结构的装置的硬件结构示意图。图13所示的构建网络结构的装置3000(该装置3000具体可以是一种计算机设备)包括存储器3001、处理器3002、通信接口3003以及总线3004。其中,存储器3001、处理器3002、通信接口3003通过总线3004实现彼此之间的通信连接。
存储器3001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器3001可以存储程序,当存储器3001中存储的程序被处理器3002执行时,处理器3002用于执行本申请实施例的构建网络结构的方法的各个步骤。
处理器3002可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请方法实施例的构建网络结构的方法。
处理器3002还可以是一种集成电路芯片,具有信号的处理能力,例如,可以是图3所示的芯片。在实现过程中,本申请的构建网络结构的方法的各个步骤可以通过处理器3002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器3002还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器3001,处理器3002读取存储器3001中的信息,结合其硬件完成本构建网络结构的装置中包括的单元所需执行的功能,或者执行本申请方法实施例的构建网络结构的方法。
通信接口3003使用例如但不限于收发器一类的收发装置,来实现装置3000与其他设备或通信网络之间的通信。例如,可以通过通信接口3003获取待构建的神经网络的信息以及构建网络结构过程中需要的训练数据。
总线3004可包括在装置3000各个部件(例如,存储器3001、处理器3002、通信接口3003)之间传送信息的通路。
图14是本申请实施例的图像生成装置的硬件结构示意图。图14所示的图像生成装置4000包括存储器4001、处理器4002、通信接口4003以及总线4004。其中,存储器4001、处理器4002、通信接口4003通过总线4004实现彼此之间的通信连接。
存储器4001可以是ROM,静态存储设备和RAM。存储器4001可以存储程序,当存储器4001中存储的程序被处理器4002执行时,处理器4002和通信接口4003用于执行本申请实施例的图像生成方法的各个步骤。
处理器4002可以采用通用的,CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的图像生成装置中的单元所需执行的功能,或者执行本申请方法实施例的图像生成方法。
处理器4002还可以是一种集成电路芯片,具有信号的处理能力,例如,可以是图3所示的芯片。在实现过程中,本申请实施例的图像生成方法的各个步骤可以通过处理器4002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器4002还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器4001,处理器4002读取存储器4001中的信息,结合其硬件完成本申请实施例的图像生成装置中包括的单元所需执行的功能,或者执行本申请方法实施例的图像生成方法。
通信接口4003使用例如但不限于收发器一类的收发装置,来实现装置4000与其他设备或通信网络之间的通信。例如,可以通过通信接口4003获取待处理图像。
总线4004可包括在装置4000各个部件(例如,存储器4001、处理器4002、通信接口4003)之间传送信息的通路。
应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (34)
1.一种构建网络结构的方法,其特征在于,包括:
获取任务的类别;
基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于实现多个不同类别的任务;
根据所述目标网络结构执行所述任务,得到执行结果;
基于所述执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确。
2.根据权利要求1所述的方法,其特征在于,所述网络结构构建模型包括控制器、类别向量和操作向量,所述控制器用于根据所述类别生成网络结构参数,所述网络结构参数用于指示所述目标网络结构中每一层执行的操作,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作;
其中,所述基于所述执行结果,调整所述网络结构构建模型的参数,包括:
使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
3.根据权利要求2所述的方法,其特征在于,所述控制器由长短期记忆网络LSTM构成。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述目标网络结构执行所述任务,得到执行结果,包括:
使用目标神经网络执行所述任务,得到所述执行结果,所述目标神经网络包括所述目标网络结构。
5.根据权利要求2或3所述的方法,其特征在于,所述网络结构构建模型还包括生成器,所述生成器包括多个操作层,所述多个操作层中的每一个操作层包括多个候选操作;
其中,在所述根据所述目标网络结构执行所述任务之前,所述方法还包括:
使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
6.根据权利要求5所述的方法,其特征在于,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
7.根据权利要求5或6所述的方法,其特征在于,在获取b个任务的类别的情况下,所述根据所述目标网络结构执行所述任务,得到执行结果,包括:
通过以下多个步骤执行所述b个任务:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个任务对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述执行结果;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述任务包括:图像处理,语音处理和/或文本处理。
9.一种图像生成方法,其特征在于,包括:
获取图像的类别;
基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于生成多个不同类别的图像;
根据所述目标网络结构进行图像生成,得到生成图像;
基于所述生成图像,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构输出的生成图像更准确。
10.根据权利要求9所述的方法,其特征在于,所述网络结构构建模型包括控制器、类别向量和操作向量,所述控制器用于根据所述类别生成网络结构参数,所述网络结构参数用于指示所述目标网络结构中每一层执行的操作,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作;
其中,所述基于所述生成图像,调整所述网络结构构建模型的参数,包括:
使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
11.根据权利要求10所述的方法,其特征在于,所述控制器由长短期记忆网络LSTM构成。
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述根据所述目标网络结构进行图像生成,得到生成图像,包括:
使用目标神经网络进行图像生成,得到所述生成图像,所述目标神经网络包括所述目标网络结构。
13.根据权利要求10或11所述的方法,其特征在于,所述网络结构构建模型还包括生成器,所述生成器包括多个操作层,所述多个操作层中的每一个操作层包括多个候选操作;
其中,在所述根据所述目标网络结构进行图像生成之前,所述方法还包括:
使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
14.根据权利要求13所述的方法,其特征在于,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
15.根据权利要求13或14所述的方法,其特征在于,在获取b个图像的类别的情况下,所述根据所述目标网络结构进行图像生成,得到生成图像,包括:
通过以下多个步骤生成b个类别的图像:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个类别对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述生成图像;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
16.一种构建网络结构的装置,其特征在于,包括:
获取模块,用于获取任务的类别;
生成模块,用于基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于实现多个不同类别的任务;
执行模块,用于根据所述目标网络结构执行所述任务,得到执行结果;
参数调整模块,用于基于所述执行结果,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构执行任务得到的执行结果更准确。
17.根据权利要求16所述的装置,其特征在于,所述网络结构构建模型包括控制器、类别向量和操作向量,所述控制器用于根据所述类别生成网络结构参数,所述网络结构参数用于指示所述目标网络结构中每一层执行的操作,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作;
其中,所述参数调整模块具体用于:
使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
18.根据权利要求17所述的装置,其特征在于,所述控制器由长短期记忆网络LSTM构成。
19.根据权利要求16至18中任一项所述的装置,其特征在于,所述执行模块具体用于:
使用目标神经网络执行所述任务,得到所述执行结果,所述目标神经网络包括所述目标网络结构。
20.根据权利要求17或18所述的装置,其特征在于,所述网络结构构建模型还包括生成器,所述生成器包括多个操作层,所述多个操作层中的每一个操作层包括多个候选操作;
其中,所述生成模块还用于:
使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
21.根据权利要求20所述的装置,其特征在于,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
22.根据权利要求20或21所述的装置,其特征在于,在获取b个任务的类别的情况下,所述执行模块具体用于通过以下多个步骤执行所述b个任务:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个任务对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述执行结果;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
23.根据权利要求16至22中任一项所述的装置,其特征在于,所述任务包括:图像处理,语音处理和/或文本处理。
24.一种图像生成装置,其特征在于,包括:
获取模块,用于获取图像的类别;
生成模块,用于基于所述类别,使用网络结构构建模型生成与所述类别对应的目标网络结构,其中,所述网络结构构建模型能够生成多个网络结构,所述多个网络结构用于生成多个不同类别的图像;
执行模块,用于根据所述目标网络结构进行图像生成,得到生成图像;
参数调整模块,用于基于所述生成图像,调整所述网络结构构建模型的参数,以使得所述网络结构构建模型生成的网络结构输出的生成图像更准确。
25.根据权利要求24所述的装置,其特征在于,所述网络结构构建模型包括控制器、类别向量和操作向量,所述控制器用于根据所述类别生成网络结构参数,所述网络结构参数用于指示所述目标网络结构中每一层执行的操作,所述类别向量用于描述所述多个不同类别,所述操作向量用于描述所述多个网络结构的全部候选操作;
其中,所述参数调整模块具体用于:
使用强化学习方法,基于奖励更新所述控制器、所述类别向量和所述操作向量,所述奖励是根据所述处理结果确定的。
26.根据权利要求25所述的装置,其特征在于,所述控制器由长短期记忆网络LSTM构成。
27.根据权利要求24至26中任一项所述的装置,其特征在于,所述执行模块具体用于:
使用目标神经网络进行图像生成,得到所述生成图像,所述目标神经网络包括所述目标网络结构。
28.根据权利要求25或26所述的装置,其特征在于,所述网络结构构建模型还包括生成器,所述生成器包括多个操作层,所述多个操作层中的每一个操作层包括多个候选操作;
其中,所述生成模块还用于:
使用所述生成器根据所述网络结构参数在所述每一个操作层包括的多个候选操作中选择目标操作,以生成包括多个操作层的所述目标网络结构。
29.根据权利要求28所述的装置,其特征在于,在所述多个操作层中的至少一个操作层中,至少存在两个候选操作包含相同的参数。
30.根据权利要求28或29所述的装置,其特征在于,在获取b个图像的类别的情况下,所述执行模块具体用于通过以下多个步骤生成b个类别的图像:
(1)将b个维度为din的输入特征中每一个输入特征,分别执行所述生成器中第1个操作层包括的N个候选操作,得到b个维度为Nxdout的向量,将所述b个维度为Nxdout的向量连接后得到1个维度为bxNxdout的中间特征;
(2)根据所述第1个操作层包括的N个候选操作,将所述b个类别对应的b个网络参数转换为的一位有效编码矩阵,所述一位有效编码矩阵的维度为bxNx1;
(3)对维度为bxNxdout的所述中间特征与维度为bxNxdout的所述一位有效编码矩阵进行广播乘法,得到维度为bxNxdout的矩阵;
(4)将所述bxNxdout的矩阵中维度N对应的每一行中的多个元素相加,得到所述第1个操作层的输出特征,所述第1个操作层的输出特征的维度为bxdout;
(5)对于所述第1个操作层的输出特征,根据所述生成器中第2个操作层包括的N个候选操作,继续执行上面的步骤(1)至(4),直至生成所述生成器中第P个操作层的输出特征,所述第P个操作层的输出特征为所述生成图像;
其中,b、N和P均为正整数,P为所述生成器中操作层的个数。
31.一种构建网络结构的装置,其特征在于,包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行权利要求1至8中任一项所述的方法。
32.一种图像生成装置,其特征在于,包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行权利要求9至15中任一项所述的方法。
33.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如权利要求1至8或9至15中任一项所述的方法。
34.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1至8或9至15中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010109969.8A CN111340190A (zh) | 2020-02-23 | 2020-02-23 | 构建网络结构的方法与装置、及图像生成方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010109969.8A CN111340190A (zh) | 2020-02-23 | 2020-02-23 | 构建网络结构的方法与装置、及图像生成方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111340190A true CN111340190A (zh) | 2020-06-26 |
Family
ID=71180197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010109969.8A Withdrawn CN111340190A (zh) | 2020-02-23 | 2020-02-23 | 构建网络结构的方法与装置、及图像生成方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111340190A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111795700A (zh) * | 2020-06-30 | 2020-10-20 | 浙江大学 | 一种无人车强化学习训练环境构建方法及其训练系统 |
CN112113566A (zh) * | 2020-09-24 | 2020-12-22 | 电子科技大学 | 一种基于神经网络的惯性导航数据修正方法 |
CN112215845A (zh) * | 2020-12-03 | 2021-01-12 | 虎丘影像(苏州)有限公司 | 基于多神经网络的医学影像信息识别方法、装置、系统 |
CN112395272A (zh) * | 2021-01-20 | 2021-02-23 | 鹏城实验室 | 通信算法数据库构建方法、分布式机器装置和存储介质 |
WO2022007321A1 (zh) * | 2020-07-10 | 2022-01-13 | 深圳前海微众银行股份有限公司 | 纵向联邦建模优化方法、装置、设备及可读存储介质 |
CN117076090A (zh) * | 2023-10-10 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 任务模型的构建方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-02-23 CN CN202010109969.8A patent/CN111340190A/zh not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111795700A (zh) * | 2020-06-30 | 2020-10-20 | 浙江大学 | 一种无人车强化学习训练环境构建方法及其训练系统 |
WO2022007321A1 (zh) * | 2020-07-10 | 2022-01-13 | 深圳前海微众银行股份有限公司 | 纵向联邦建模优化方法、装置、设备及可读存储介质 |
CN112113566A (zh) * | 2020-09-24 | 2020-12-22 | 电子科技大学 | 一种基于神经网络的惯性导航数据修正方法 |
CN112215845A (zh) * | 2020-12-03 | 2021-01-12 | 虎丘影像(苏州)有限公司 | 基于多神经网络的医学影像信息识别方法、装置、系统 |
CN112395272A (zh) * | 2021-01-20 | 2021-02-23 | 鹏城实验室 | 通信算法数据库构建方法、分布式机器装置和存储介质 |
CN117076090A (zh) * | 2023-10-10 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 任务模型的构建方法、装置、设备及计算机可读存储介质 |
CN117076090B (zh) * | 2023-10-10 | 2024-03-19 | 腾讯科技(深圳)有限公司 | 任务模型的构建方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175671B (zh) | 神经网络的构建方法、图像处理方法及装置 | |
CN111507378A (zh) | 训练图像处理模型的方法和装置 | |
CN112183718B (zh) | 一种用于计算设备的深度学习训练方法和装置 | |
CN111340190A (zh) | 构建网络结构的方法与装置、及图像生成方法与装置 | |
CN111797895B (zh) | 一种分类器的训练方法、数据处理方法、系统以及设备 | |
CN112418392A (zh) | 一种神经网络构建方法以及装置 | |
CN113011575A (zh) | 神经网络模型更新方法、图像处理方法及装置 | |
CN113570029A (zh) | 获取神经网络模型的方法、图像处理方法及装置 | |
WO2022052601A1 (zh) | 神经网络模型的训练方法、图像处理方法及装置 | |
CN112215332B (zh) | 神经网络结构的搜索方法、图像处理方法和装置 | |
CN111368972B (zh) | 一种卷积层量化方法及其装置 | |
CN113705769A (zh) | 一种神经网络训练方法以及装置 | |
CN111882031A (zh) | 一种神经网络蒸馏方法及装置 | |
CN111612215A (zh) | 训练时间序列预测模型的方法、时间序列预测方法及装置 | |
CN112580369B (zh) | 语句复述方法、训练语句复述模型的方法及其装置 | |
CN111797881B (zh) | 图像分类方法及装置 | |
CN111368656A (zh) | 一种视频内容描述方法和视频内容描述装置 | |
CN111797970B (zh) | 训练神经网络的方法和装置 | |
CN113592060A (zh) | 一种神经网络优化方法以及装置 | |
US20240135174A1 (en) | Data processing method, and neural network model training method and apparatus | |
WO2022156475A1 (zh) | 神经网络模型的训练方法、数据处理方法及装置 | |
WO2021136058A1 (zh) | 一种处理视频的方法及装置 | |
CN111931904A (zh) | 神经网络的构建方法和装置 | |
CN114004383A (zh) | 时间序列预测模型的训练方法、时间序列预测方法及装置 | |
CN112464930A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200626 |
|
WW01 | Invention patent application withdrawn after publication |