KR20210106217A - 인공 신경망의 재구성을 수행하는 프로세서, 이를 포함하는 전자 장치 및 프로세서의 동작 방법 - Google Patents
인공 신경망의 재구성을 수행하는 프로세서, 이를 포함하는 전자 장치 및 프로세서의 동작 방법 Download PDFInfo
- Publication number
- KR20210106217A KR20210106217A KR1020200021113A KR20200021113A KR20210106217A KR 20210106217 A KR20210106217 A KR 20210106217A KR 1020200021113 A KR1020200021113 A KR 1020200021113A KR 20200021113 A KR20200021113 A KR 20200021113A KR 20210106217 A KR20210106217 A KR 20210106217A
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- group
- layer
- layer group
- layers
- Prior art date
Links
Images
Classifications
-
- G06N3/0454—
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
본 개시의 기술적 사상에 따른 제1 신경망 및 제2 신경망을 포함하는 인공 신경망을 기반으로 연산을 수행하는 프로세서의 동작 방법은, 제1 신경망의 구조 및 제2 신경망의 구조의 유사도를 분석하는 단계, 분석 결과를 기초로, 제1 신경망 또는 제2 신경망으로부터 공동으로 사용할 수 있는 공유 레이어들을 선택하는 단계 및 공유 레이어들을 기초로, 제1 신경망의 구조 또는 제2 신경망의 구조를 재구성(reconstruct)하는 단계를 포함할 수 있다.
Description
본 개시의 기술적 사상은 인공 신경망의 재구성을 수행하는 프로세서에 관한 것으로서, 구체적으로 복수의 신경망들이 공유 레이어 그룹을 포함하도록 적어도 하나의 신경망을 재구성하는 프로세서, 이를 포함하는 전자 장치 및 프로세서의 동작 방법에 관한 것이다.
인공 신경망(artificial neural network)은, 인공 뉴런(neuron)(또는 뉴런 모델)들의 상호연결된 집합들을 구현하기 위하여 컴퓨팅 기기 또는 컴퓨팅 기기에 의해서 수행되는 방법을 지칭할 수 있다. 인공 뉴런은 입력 데이터에 대한 단순 연산들을 수행함으로써 출력 데이터를 생성할 수 있고, 출력 데이터는 다른 인공 뉴런에 전달될 수 있다. 인공 신경망의 예시로서 심층 신경망(deep neural network) 또는 딥 러닝(deep learning)은 멀티 레이어 구조를 가질 수 있다.
본 개시의 기술적 사상은 복수의 신경망들이 공동으로 사용할 수 있는 공유 레이어 그룹을 결정하고, 복수의 신경망들이 공유 레이어 그룹을 포함하도록 적어도 하나의 신경망을 재구성하는 프로세서, 이를 포함하는 전자 장치 및 프로세서의 동작 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 제1 신경망 및 제2 신경망을 포함하는 인공 신경망을 기반으로 연산을 수행하는 프로세서의 동작 방법은, 제1 신경망의 구조 및 제2 신경망의 구조의 유사도를 분석하는 단계, 분석 결과를 기초로, 제1 신경망 또는 제2 신경망으로부터 공동으로 사용할 수 있는 공유 레이어들을 선택하는 단계 및 공유 레이어들을 기초로, 제1 신경망의 구조 또는 제2 신경망의 구조를 재구성(reconstruct)하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 전자 장치는, 메모리, 제1 신경망 및 제2 신경망 각각을 구성하는 복수의 레이어 그룹들을 분석하고, 분석 결과를 기초로 제1 신경망의 제1 레이어 그룹과 유사한 구조를 갖는 제2 신경망의 제2 레이어 그룹을 결정하고, 제1 레이어 그룹을 포함하도록 제2 레이어 그룹을 재구성하여 재구성된 제2 신경망을 생성하고, 제1 신경망 및 재구성된 제2 신경망을 메모리에 저장하는 프로세서를 포함할 수 있다.
본 개시의 실시예에 따른 인공 신경망의 재구성을 수행하는 프로세서 및 이의 동작 방법에 의하면, 복수의 신경망들이 공유 레이어 그룹을 포함하도록 적어도 하나의 신경망을 재구성하고, 중복되는 레이어 그룹의 저장을 생략함으로써, 복수의 신경망들을 저장하는 저장 공간을 줄일 수 있다.
또한, 본 개시의 실시예에 따른 인공 신경망의 재구성을 수행하는 프로세서 및 이의 동작 방법에 의하면, 공유 레이어 그룹을 빠른 독출이 가능한 RAM(DRAM 또는 SRAM)에 저장함으로써, 복수의 신경망들 중 어떤 것을 이용하더라도 연산을 빠르게 시작할 수 있다.
또한, 본 개시의 실시예에 따른 인공 신경망의 재구성을 수행하는 프로세서 및 이의 동작 방법에 의하면, 재구성 전의 신경망의 연산 결과와 동일한 연산 결과를 생성하도록 재구성된 신경망의 재학습을 수행함으로써, 신경망의 재구성에 따른 정확도 하락을 방지할 수 있다.
도 1은 본 개시의 일 실시예에 따른 인공 신경망을 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 전자 장치의 구성을 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 신경망 재구성 모듈의 구체적인 구성을 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 공유 레이어 그룹의 결정 방법을 나타내는 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 신경망 분석 동작을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 신경망 재구성 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시예에 따른 재학습 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 재학습 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 신경망 재구성 전후의 저장 공간을 나타내는 도면이다.
도 10은 본 개시의 일 실시예에 따른 신경망 저장 방법을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시예에 따른 우선순위 테이블을 나타내는 도면이다.
도 12는 본 개시의 일 실시예에 따른 신경망을 이용한 연산 방법을 설명하기 위한 도면이다.
도 13은 본 개시의 일 실시예에 따른 인공 신경망의 재구성 방법을 나타내는 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 신경망 재구성 모듈이 소프트웨어적으로 구현되는 예를 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 전자 장치의 구성을 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 신경망 재구성 모듈의 구체적인 구성을 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 공유 레이어 그룹의 결정 방법을 나타내는 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 신경망 분석 동작을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 신경망 재구성 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시예에 따른 재학습 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 재학습 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 신경망 재구성 전후의 저장 공간을 나타내는 도면이다.
도 10은 본 개시의 일 실시예에 따른 신경망 저장 방법을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시예에 따른 우선순위 테이블을 나타내는 도면이다.
도 12는 본 개시의 일 실시예에 따른 신경망을 이용한 연산 방법을 설명하기 위한 도면이다.
도 13은 본 개시의 일 실시예에 따른 인공 신경망의 재구성 방법을 나타내는 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 신경망 재구성 모듈이 소프트웨어적으로 구현되는 예를 나타내는 블록도이다.
도 1은 본 개시의 일 실시예에 따른 인공 신경망을 나타내는 도면이다. 구체적으로, 도 1은 본 개시의 일 실시예에 따른 인공 신경망의 예시로서 심층 신경망(10)의 구조를 개략적으로 나타내는 도면이다.
인공 신경망(artificial neural network; ANN)은, 동물의 두뇌를 구성하는 생물학적 신경망에 착안된 컴퓨팅 시스템을 지칭할 수 있다. 인공 신경망(ANN)은, 규칙-기반(rule-based) 프로그래밍과 같이 미리 정의된 조건에 따라 작업을 수행하는 고전적인 알고리즘과 달리, 다수의 샘플들(또는 예시들)을 고려함으로써 작업을 수행하는 것을 학습할 수 있다. 인공 신경망(ANN)은 인공 뉴런(neuron)(또는 뉴런)들이 연결된 구조를 가질 수 있고, 뉴런들 간 연결은 시냅스(synapse)로 지칭될 수 있다. 뉴런은 수신된 신호를 처리할 수 있고, 처리된 신호를 시냅스를 통해서 다른 뉴런에 전송할 수 있다. 뉴런의 출력은 "액티베이션(activation)"으로 지칭될 수 있다. 뉴런 및/또는 시냅스는 변동할 수 있는 가중치(weight)를 가질 수 있고, 가중치에 따라 뉴런에 의해서 처리된 신호의 영향력이 증가하거나 감소할 수 있다. 특히 개개의 뉴런에 관련된 가중치는 바이어스(bias)로서 지칭될 수 있다.
심층 신경망(deep neural network; DNN) 또는 딥 러닝 구조(deep learning architecture)는 레이어 구조를 가질 수 있고, 특정 레이어의 출력은 후속하는 레이어의 입력이 될 수 있다. 이와 같은 멀티-레이어드(multi-layered) 구조에서, 레이어들 각각은 다수의 샘플들에 따라 훈련될 수 있다. 심층 신경망과 같은 인공 신경망은 인공 뉴런들에 각각 대응하는 다수의 프로세싱 노드들에 의해서 구현될 수 있는데, 양호한 결과들, 예컨대 높은 정확도의 결과들을 획득하기 위해서 높은 계산 복잡도(computational complexity)가 요구될 수 있고, 이에 따라 많은 컴퓨팅 리소스들이 요구될 수 있다.
도 1을 참조하면, 심층 신경망(10)은 복수의 레이어들(L1, L2, L3, …, LN)을 포함할 수 있고, 레이어의 출력은 적어도 하나의 채널을 통해서 후속하는 레이어에 입력될 수 있다. 예를 들면, 제1 레이어(L1)는 샘플(SAM)을 처리함으로써 복수의 채널들(CH11...CH1x)을 통해서 제2 레이어(L2)에 출력을 제공할 수 있고, 제2 레이어(L2) 역시 복수의 채널들(CH21...CH2y)을 통해서 제3 레이어(L3)에 출력을 제공할 수 있다. 최종적으로, 제N 레이어(LN)는 결과(RES)를 출력할 수 있고, 결과(RES)는 샘플(SAM)과 관계된 적어도 하나의 값을 포함할 수 있다. 복수의 레이어들(L1, L2, L3, ..., LN) 각각의 출력들이 전달되는 채널들의 개수는 동일하거나 상이할 수 있다. 예를 들면, 제2 레이어(L2)의 채널들(CH21...CH2y)의 개수 및 제3 레이터(L3)의 채널들(CH31...CH3z)의 개수는 동일할 수도 있고 상이할 수도 있다.
샘플(SAM)은 심층 신경망(10)에 의해서 처리되는 입력 데이터일 수 있다. 예를 들면, 샘플(SAM)은 사람이 펜으로 쓴 글자를 포함하는 이미지일 수 있고, 심층 신경망(10)은 이미지로부터 글자를 인식함으로써 글자를 나타내는 값을 포함하는 결과(RES)를 출력할 수 있다. 결과(RES)는 상이한 글자들에 대응하는 복수의 확률들을 포함할 수 있고, 상이한 글자들 중 가장 유력한 글자는 가장 높은 확률에 대응할 수 있다. 심층 신경망(10)의 복수의 레이어들(L1, L2, L3, ..., LN) 각각은 글자를 포함하는 다수의 이미지들을 학습함으로써 생성된 값들, 예컨대 가중치, 바이어스 등에 기초하여 샘플(SAM) 및 이전 레이어의 출력을 처리함으로써 자신의 출력들을 생성할 수 있다.
전자 장치는 메모리에 인공 신경망을 로드하여 사용할 수 있다. 한편, 최근에는 인공 신경망의 사용이 증가함에 따라, 전자 장치가 사용하는 평균적인 인공 신경망들의 개수도 증가하였다. 이에 따라, 전자 장치는 복수의 인공 신경망들의 사용에 따른 메모리의 저장 공간의 한계 및 성능 저하의 문제점이 있었다.
이하의 도면들을 참조하여 후술되는 바와 같이, 본 개시의 일 실시예에 따른 전자 장치는 복수의 신경망들이 공동으로 사용할 수 있는 레이어 그룹을 결정하고, 복수의 신경망들이 결정한 레이어 그룹을 포함하도록 적어도 하나의 신경망을 재구성할 수 있다. 그리고 전자 장치는 재구성된 신경망을 포함한 복수의 신경망들을 저장할 때, 공동으로 사용할 수 있는 레이어 그룹은 한 회만 저장함으로써, 복수의 신경망들에 할당된 저장 공간을 줄일 수 있다.
도 2는 본 개시의 일 실시예에 따른 전자 장치의 구성을 나타내는 도면이다.
도 2를 참조하면, 전자 장치(100)는 프로세서(110), RAM(Random Access memory)(120), 신경망 장치(130), 신경망 재구성 모듈(140) 및 메모리(150)를 포함할 수 있다. 일 실시예에서, 전자 장치(100)의 구성들 중 적어도 하나는 하나의 반도체 칩에 탑재될 수 있다.
전자 장치(100)는 인공 신경망을 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나 또는 전자 장치(100)에 탑재되는 구성들을 제어할 수 있다. 전자 장치(100)는 모바일 장치에 채용되는 어플리케이션 프로세서(Application Processor, AP)일 수 있다. 또는, 전자 장치(100)는 컴퓨팅 시스템에 해당하거나, 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트 폰, 의료 장치, 모바일 장치, 영상 표시 장치, 계측 장치, IoT(Internet of Things) 장치 등에 해당될 수 있으며, 이 외에도 다양한 장치들에 적용될 수 있다.
전자 장치(100)가 인공 신경망의 연산 기능을 수행하는 점에서, 전자 장치(100)는 신경망 시스템(NNS; Neural Network System)을 포함하는 것으로 정의될 수 있다. 신경망 시스템(NNS)은 신경망 동작과 관련하여, 전자 장치(100)에 구비되는 구성들 중 적어도 일부를 포함할 수 있다. 한편, 도 2에서는 신경망 시스템(NNS)이 프로세서(110), 신경망 장치(130) 및 신경망 재구성 모듈(140)을 포함하는 것으로 도시되고 설명되었으나, 본 개시는 이에 한정되지 않는다. 예를 들어, 신경망 동작에 관여되는 다른 다양한 종류의 구성들이 신경망 시스템(NNS)에 구비되는 것으로 구현될 수 있다.
프로세서(110)는 전자 장치(100)의 전반적인 동작을 제어한다. 프로세서(110)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 프로세서(110)는 메모리(150)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 일 실시예에서, 프로세서(110)는 메모리(150)에 저장된 프로그램들을 실행함으로써, 신경망 장치(130)의 기능을 제어할 수 있다.
RAM(120)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예를 들어, 메모리(150)에 저장된 프로그램들 및/또는 데이터는 프로세서(110)의 제어 또는 부팅 코드에 따라 RAM(120)에 일시적으로 저장될 수 있다. RAM(120)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다. 메모리(150)는 플래시 메모리(flash memory) 등과 같은 비휘발성 메모리로 구현될 수 있다.
신경망 장치(130)는 수신되는 입력 데이터를 기초로 인공 신경망의 연산을 수행하고, 수행 결과를 기초로 출력 데이터를 생성할 수 있다. 인공 신경망의 모델들은 Convolutional Neural Networks(CNN), Recurrent Neural Networks(RNN), Deep Belief Networks, Restricted Boltzman Machines 등 다양한 종류의 모델들을 포함할 수 있으나 이에 제한되지 않는다. 신경망 장치(130)는 인공 신경망들에 따른 연산을 수행하기 위한 하나 이상의 프로세서(예컨대, 전용 프로세서)를 포함할 수 있다. 또한, 신경망 장치(130)는 인공 신경망들에 대응하는 프로그램들을 저장하기 위한 별도의 메모리(미도시)를 포함할 수도 있다.
본 개시의 일 실시예에 따른 신경망 재구성 모듈(140)은 입력된 신경망을 이용하여 재구성된(Reconstructed) 신경망을 생성할 수 있다. 일 실시예에서, 신경망 재구성 모듈(140)은 복수의 신경망들을 수신하고, 복수의 신경망들을 분석하여 복수의 신경망들이 공동으로 사용할 수 있는 레이어 그룹(이하에서, 공유 레이어 그룹으로 지칭한다.)을 결정할 수 있다. 그리고 신경망 재구성 모듈(140)은 결정한 레이어 그룹이 복수의 신경망들에 포함되도록 적어도 하나의 신경망을 재구성할 수 있다.
예를 들어, 제1 신경망 및 제2 신경망이 입력되면, 신경망 재구성 모듈(140)은 제1 신경망 및 제2 신경망을 분석하여 제1 신경망에 포함된 제1 레이어 그룹을 공유 레이어 그룹으로 결정할 수 있다. 그리고 신경망 재구성 모듈(140)은 제2 신경망이 제1 레이어 그룹을 포함하도록 제2 신경망을 재구성할 수 있다.
한편, 신경망 재구성 모듈(140)은 입력된 신경망 및 재구성된 신경망이 하나의 입력 샘플에 대해 동일한 출력 샘플을 생성할 수 있도록 입력된 신경망을 재구성할 수 있다. 즉, 신경망 재구성 모듈(140)은 입력된 신경망의 레이어 구조를 변경하되, 재구성 전과 동일한 연산 결과를 생성하도록 입력된 신경망의 적어도 하나의 레이어의 가중치를 변경할 수 있다. 신경망 재구성 모듈(140)이 신경망을 재구성하는 구체적인 동작은 도 3 내지 도 6에서 후술한다.
그리고 신경망 재구성 모듈(140)은 신경망을 RAM(120) 또는 메모리(150)에 저장할 수 있다. 일 실시예에서, 신경망 재구성 모듈(140)은 재구성된 신경망을 포함하는 복수의 신경망들 각각을 구성하는 레이어 그룹들을 RAM(120) 또는 메모리(150)에 저장할 수 있다. 신경망 재구성 모듈(140)의 재구성 동작에 의해, 신경망 재구성 모듈(140)에서 출력된 복수의 신경망들은 모두 공유 레이어 그룹을 포함하므로, 공유 레이어 그룹은 한 회에 한해 RAM(120) 또는 메모리(150)에 저장될 수 있다. 예를 들어, 공유 레이어 그룹은 신경망을 이용한 빠른 연산을 위해 RAM(120)에 저장되고, 나머지 레이어 그룹은 메모리(150)에 저장될 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 전자 장치는, 복수의 신경망들이 공유 레이어 그룹을 포함하도록 적어도 하나의 신경망을 재구성시키고, 중복되는 레이어 그룹의 저장을 생략함으로써, 복수의 신경망들을 저장하는 저장 공간을 줄일 수 있다. 또한, 본 개시의 일 실시예에 따른 전자 장치는 공유 레이어 그룹을 빠른 독출이 가능한 RAM(120)에 저장함으로써, 복수의 신경망들 중 어떤 것을 이용하더라도 연산을 빠르게 시작할 수 있다. 또한, 본 개시의 일 실시예에 따른 전자 장치는, 재구성 전의 신경망의 연산 결과와 동일한 연산 결과를 생성하도록 재구성된 신경망의 재학습을 수행함으로써, 신경망의 재구성에 따른 정확도 하락을 방지할 수 있다.
도 3은 본 개시의 일 실시예에 따른 신경망 재구성 모듈의 구체적인 구성을 나타내는 도면이다. 구체적으로, 도 3은 도 2의 신경망 재구성 모듈(140)의 구체적인 구성을 나타내는 도면이다. 신경망 재구성 모듈(140)은 커널 변경 모듈(141) 및 신경망 분석 모듈(143) 및 재학습 모듈(145)을 포함할 수 있다.
도 2 및 도 3을 참조하면, 신경망 재구성 모듈(140)은 신경망 장치(130)로부터 복수의 신경망들(NN1, NN2, …, NNn)을 수신할 수 있다. 신경망 재구성 모듈(140)은 수신한 복수의 신경망들(NN1, NN2, …, NNn)의 구조를 분석하고, 복수의 신경망들(NN1, NN2, …, NNn) 중 적어도 하나의 신경망을 재구성할 수 있다.
신경망 재구성 모듈(140)은 재구성 동작을 수행하기 위해 메모리(150)로부터 스태틱 정보 및 참조 신경망 정보를 수신할 수 있다. 스태틱 정보는 전자 장치(100) 내의 각종 구성 요소들의 기본 정보들을 포함할 수 있으며, 예를 들어, 인공 신경망을 실행하는 하드웨어의 성능 및 특성 등의 컴퓨팅 리소스(Computing resource) 정보를 포함할 수 있다. 참조 신경망 정보는, 신경망의 구조의 분석 시 참조할 수 있는 정보로, 예를 들어, 인공 신경망에서 자주 쓰이거나 대표적인 신경망들의 구조에 대한 정보를 포함할 수 있다.
신경망 재구성 모듈(140)의 커널 변경 모듈(141)은 수신한 신경망의 커널 사이즈를 변경할 수 있다. 일 실시예로서, 커널 변경 모듈(141)은 전자 장치(100)의 스태틱 정보를 기초로 전자 장치(100)의 성능이 수신한 신경망의 수행에 적합한지 판단하고, 판단 결과에 따라 신경망의 커널 사이즈를 변경할 수 있다. 커널 변경 모듈(141)의 커널 사이즈를 변경 동작은 변경된 커널 사이즈를 갖는 신경망의 재학습 동작을 포함할 수 있다.
예를 들어, 커널 변경 모듈(141)은 전자 장치(100)의 성능이 5 5 커널 사이즈의 신경망의 수행에 적합한 것을 판단하였으나, 수신한 신경망은 7 7 커널 사이즈를 가질 수 있다. 커널 변경 모듈(141)은 전자 장치(100)의 성능에 적합하도록 수신한 신경망의 커널 사이즈를 5 5로 변경하고, 신경망의 재학습을 수행할 수 있다.
커널 변경 모듈(141)은 신경망 장치(130)로부터 복수의 신경망들(NN1, NN2, …, NNn)을 수신하면, 복수의 신경망들(NN1, NN2, …, NNn) 중 전자 장치(100)의 성능에 적합하지 않은 신경망을 확인하고, 확인한 신경망만의 커널 사이즈를 변경할 수 있다. 그리고 커널 변경 모듈(141)은 커널 사이즈 변경 동작이 완료되면 복수의 신경망들(NN1, NN2, …, NNn)을 신경망 분석 모듈(143)에 전송할 수 있다.
신경망 재구성 모듈(140)의 신경망 분석 모듈(143)은 복수의 신경망들(NN1, NN2, …, NNn)의 구조를 분석하고, 복수의 신경망들(NN1, NN2, …, NNn)이 공동으로 사용할 수 있는 레이어 그룹을 결정할 수 있다. 일 실시예로서, 신경망 분석 모듈(143)은 메모리(150)로부터 수신한 참조 신경망 정보를 기초로 복수의 신경망들(NN1, NN2, …, NNn)의 구조를 분석하고, 복수의 신경망들(NN1, NN2, …, NNn)을 구성하는 레이어 그룹들 중 서로 유사한 구조를 갖는 레이어 그룹들을 확인할 수 있다. 그리고 신경망 분석 모듈(143)은 서로 유사한 구조를 갖는 레이어 그룹들 중 하나를 공유 레이어 그룹으로 결정할 수 있다. 신경망 분석 모듈(143)의 공유 레이어 그룹의 결정 동작에 대한 구체적인 설명은 도 4에서 후술한다. 그리고 신경망 분석 모듈(143)은 분석 결과를 재학습 모듈(145)에 제공할 수 있다. 분석 결과는, 예를 들어, 복수의 신경망들(NN1, NN2, …, NNn)의 서로 유사한 구조를 갖는 것으로 확인된 레이어 그룹들에 대한 정보 및 공유 레이어 그룹에 대한 정보를 포함할 수 있다.
신경망 재구성 모듈(140)의 재학습 모듈(145)은 복수의 신경망들(NN1, NN2, …, NNn)이 공유 레이어 그룹을 포함하도록 적어도 하나의 신경망을 재구성한 후, 재학습을 수행할 수 있다. 일 실시예로서, 재학습 모듈(145)은 수신한 분석 결과를 기초로 복수의 신경망들(NN1, NN2, …, NNn) 중 공유 레이어 그룹을 포함하지 않는 신경망을 확인할 수 있다. 그리고 재학습 모듈(145)은 확인한 신경망이 공유 레이어 그룹을 포함하도록 확인한 신경망을 재구성하고, 재구성된 신경망의 재학습을 수행할 수 있다.
예를 들어, 재학습 모듈(145)은 분석 결과를 기초로 제1 신경망(NN1)이 공유 레이어 그룹을 포함하나, 제2 신경망(NN2)은 공유 레이어 그룹(가령, 제1 레이어 그룹)을 포함하지 않는 것을 확인할 수 있다. 재학습 모듈(145)은 제2 신경망(NN2)을 구성하는 레이어 그룹들 중 공유 레이어 그룹과 유사한 레이어 그룹(가령, 제2 레이어 그룹)을 확인하고, 제2 레이어 그룹의 적어도 일부를 제1 레이어 그룹으로 대체시킬 수 있다. 그리고 재학습 모듈(145)은 제2 신경망(NN2)의 대체된 그룹에 이어서 적어도 하나의 레이어를 추가하고, 재구성 전 제2 레이어 그룹의 연산 결과와 재구성 후 제2 레이어 그룹의 연산 결과가 동일하도록 추가된 레이어에 대한 재학습을 수행할 수 있다. 한편, 제1 신경망(NN1)은 이미 공유 레이어 그룹을 포함하고 있으므로, 재학습 모듈(145)은 제1 신경망(NN1)에 대한 재구성 동작은 수행하지 않을 수 있다.
재학습 모듈(145)은 재학습 동작이 완료되면, 재구성된 적어도 하나의 신경망을 포함하는 복수의 신경망들(NN1, NN2, …, NNn)을 RAM(120) 또는 메모리(150)에 저장할 수 있다. 이때, 재학습 모듈(145)은 복수의 신경망들(NN1, NN2, …, NNn)을 레이어 그룹 단위로 저장할 수 있다. 예를 들어, 제1 신경망(NN1)이 제1 레이어 그룹 내지 제3 레이어 그룹으로 구성되는 경우, 재학습 모듈(145)은 제1 레이어 그룹 내지 제3 레이어 그룹 각각을 저장할 수 있으며, 레이어 그룹들은 동일하거나 상이한 저장 공간에 저장될 수 있다.
재학습 모듈(145)은 복수의 신경망들(NN1, NN2, …, NNn)을 레이어 단위로 저장하되, 공유 레이어 그룹은 한 회에 한해 저장할 수 있다. 신경망 장치(130)는 연산 요청을 수신하면, 연산에 필요한 신경망을 구성하는 레이어 그룹들을 확인하고, RAM(120) 또는 메모리(150)로부터 확인한 레이어 그룹들을 독출할 수 있다. 그리고 신경망 장치(130)는 독출한 레이어 그룹들을 이용하여 신경망 연산을 수행할 수 있다.
커널 변경 모듈(141), 신경망 분석 모듈(143) 및 재학습 모듈(145) 각각은 논리 합성을 통해서 구현되는 로직 블록, 프로세서에 의해서 수행되는 소프트웨어 블록 또는 이들의 조합으로 구현될 수 있다. 일 실시예에서, 커널 변경 모듈(141), 신경망 분석 모듈(143) 및 재학습 모듈(145) 각각은 프로세서(110)에 의해서 실행되는 복수의 명령어들의 집합으로서 프로시저일 수 있고, 메모리(150)에 저장될 수 있다.
도 4는 본 개시의 일 실시예에 따른 공유 레이어 그룹의 결정 방법을 나타내는 흐름도이다. 구체적으로, 도 4는 도 3의 신경망 분석 모듈(143)의 공유 레이어 그룹의 결정 방법을 나타내는 흐름도이다. 이하에서는 설명의 편의를 위해, 신경망 분석 모듈(143)에 제1 신경망 및 제2 신경망이 입력된 것을 가정한다.
도 3 및 도 4를 참조하면, 신경망 분석 모듈(143)은 제1 신경망 및 제2 신경망을 구성하는 복수의 레이어 그룹들을 결정할 수 있다(S110). 일 실시예에서, 신경망 분석 모듈(143)은 참조 신경망 정보를 기초로, 제1 신경망 및 제2 신경망을 구성하는 레이어들 중, 참조 신경망과 유사한 구조를 갖는 레이어들을 확인하고, 확인한 레이어들을 하나의 그룹으로 결정할 수 있다. 예를 들어, 참조 신경망들 중 제1 참조 신경망이 2개의 컨벌루션(convolution) 레이어들 및 풀링(pooling) 레이어를 포함할 수 있다. 신경망 분석 모듈(143)은 입력된 제1 신경망도 2개의 레이어들 및 풀링 레이어가 연속되는 구조를 포함한 것을 확인하면, 확인한 레이어들을 하나의 레이어 그룹으로 결정할 수 있다. 그리고 신경망 분석 모듈(143)은 제1 신경망의 나머지 레이어들에 대해서도 전술한 동작을 반복할 수 있다.
한편, 참조 신경망과 유사한 구조를 갖는 레이어들을 확인하는 동작에서, 컨벌루션 레이어 또는 풀링 레이어와 같이 레이어의 종류를 기초로 구조의 유사 여부를 판단하는 것으로 설명하였지만, 본 개시는 이에 한하지 않는다. 예를 들어, 신경망 분석 모듈(143)은 참조 신경망의 레이어 종류뿐만 아니라, 레이어 개수, 커널 사이즈, 입력 샘플 및 출력 샘플의 개수 등을 고려하여 유사한 구조를 갖는 레이어들을 확인할 수도 있다.
그리고 신경망 분석 모듈(143)은 제1 신경망 및 제2 신경망의 복수의 레이어 그룹들 중 서로 유사한 레이어 그룹들을 결정할 수 있다(S120). 일 실시예에서, 신경망 분석 모듈(143)은 단계 S110의 제1 신경망 및 제2 신경망의 복수의 그룹들을 결정하는 과정에서 참조하였던 참조 신경망을 기준으로, 복수의 그룹들 중 서로 유사한 레이어 그룹들(이하에서, 유사 그룹으로 지칭한다.)을 결정할 수 있다.
예를 들어, 신경망 분석 모듈(143)이 제1 참조 신경망과 유사한 구조를 갖는 레이어들을 확인하고, 확인한 레이어들을 제1 신경망의 제1 레이어 그룹 및 제2 신경망의 제2 레이어 그룹으로 결정한 경우, 신경망 분석 모듈(143)은 제1 레이어 그룹과 제2 레이어 그룹을 제1 유사 그룹으로 결정할 수 있다. 또한, 신경망 분석 모듈(143)이 제2 참조 신경망과 유사한 구조를 갖는 레이어들을 확인하고, 확인한 레이어들을 제1 신경망의 제3 레이어 그룹 및 제2 신경망의 제4 레이어 그룹으로 결정한 경우, 신경망 분석 모듈(143)은 제3 레이어 그룹과 제4 레이어 그룹을 제2 유사 그룹으로 결정할 수 있다.
한편, 신경망 분석 모듈(143)이 복수의 레이어 그룹들 중 서로 유사한 레이어 그룹들을 결정하는 방법은 전술한 예에 한하지 않는다. 예를 들어, 신경망 분석 모듈(143)은 복수의 레이어 그룹들을 직접 비교함으로써 서로 유사한 레이어 그룹들을 결정할 수도 있다. 예를 들어, 신경망 분석 모듈(143)은 복수의 레이어 그룹들 각각의 레이어 종류, 개수, 커널 사이즈, 입력 샘플 및 출력 샘플의 개수 등을 고려하여 유사한 구조를 갖는 레이어들을 확인할 수 있다.
그리고 신경망 분석 모듈(143)은 서로 유사한 레이어 그룹들 중 하나를 제1 신경망 및 제2 신경망의 공유 레이어 그룹으로 결정할 수 있다(S130). 일 실시예에서, 신경망 분석 모듈(143)은 서로 유사한 레이어 그룹들에 대응하는 참조 신경망의 구조와 가장 유사한 레이어 그룹을 공유 레이어 그룹으로 결정할 수 있다. 예를 들어, 신경망 분석 모듈(143)은 제1 신경망의 제1 레이어 그룹 및 제2 신경망의 제2 레이어 그룹 중, 제1 참조 신경망의 구조와 가장 유사한 제1 레이어 그룹을 공유 레이어 그룹으로 결정할 수 있다.
또 다른 실시예에서, 신경망 분석 모듈(143)은 서로 유사한 레이어 그룹들 중 가장 성능이 좋거나 저장 공간의 효율성이 높은 레이어 그룹을 공유 레이어 그룹으로 결정할 수 있다. 예를 들어, 신경망 분석 모듈(143)은 제1 신경망의 제1 레이어 그룹 및 제2 신경망의 제2 레이어 그룹 중, 성능이 뛰어난 제2 신경망의 제2 레이어 그룹을 공유 레이어 그룹으로 결정할 수 있다. 한편, 서로 유사한 레이어 그룹들 중 하나를 공유 레이어 그룹으로 결정하는 방법은 전술한 예에 한하지 않으며, 다양한 방법이 적용될 수 있다.
도 5는 본 개시의 일 실시예에 따른 신경망 분석 동작을 설명하기 위한 도면이다. 구체적으로, 도 5는 도 3의 신경망 분석 모듈(143)이 제1 신경망 내지 제3 신경망(NN1, NN2, NN3)을 분석하는 동작을 설명하기 위한 도면이다.
도 3 및 도 5를 참조하면, 신경망 분석 모듈(143)은 참조 신경망 정보를 기초로 제1 신경망 내지 제3 신경망(NN1, NN2, NN3)을 구성하는 복수의 레이어 그룹들을 결정할 수 있다. 예를 들어, 도 5를 참조하면, 신경망 분석 모듈(143)은 제1 신경망(NN1)을 구성하는 레이어들 중 참조 신경망들 각각과 유사한 구조를 갖는 레이어들을 그룹핑함으로써, 제1 신경망(NN1)의 복수의 레이어 그룹들(그룹 A, 그룹 B, 그룹 C, 그룹 D)을 결정할 수 있다. 또한, 신경망 분석 모듈(143)은 제2 신경망(NN2)을 구성하는 레이어들 중 참조 신경망들 각각과 유사한 구조를 갖는 레이어들을 그룹핑함으로써, 제2 신경망(NN2)의 복수의 레이어 그룹들(그룹 A’, 그룹 B’, 그룹 C’, 그룹 E)을 결정할 수 있다. 또한, 신경망 분석 모듈(143)은 제3 신경망(NN3)을 구성하는 레이어들 중 참조 신경망들 각각과 유사한 구조를 갖는 레이어들을 그룹핑함으로써, 제3 신경망(NN3)의 복수의 레이어 그룹들(그룹 A”, 그룹 B”, 그룹 F)을 결정할 수 있다.
그리고 신경망 분석 모듈(143)은 제1 신경망 내지 제3 신경망(NN1, NN2, NN3)의 복수의 레이어 그룹들 중 서로 유사한 그룹들을 확인하고, 확인한 레이어 그룹들을 유사 그룹으로 결정할 수 있다. 예를 들어, 도 5를 참조하면, 신경망 분석 모듈(143)은 제1 참조 신경망과 유사한 구조를 갖는 레이어들을 그룹핑한 제1 신경망(NN1)의 그룹 A, 제2 신경망(NN2)의 그룹 A’, 제3 신경망(NN3)의 그룹 A”를 제1 유사 그룹으로 결정할 수 있다. 또한, 신경망 분석 모듈(143)은 제2 참조 신경망과 유사한 구조를 갖는 레이어들을 그룹핑한 제1 신경망(NN1)의 그룹 B, 제2 신경망(NN2)의 그룹 B’, 제3 신경망(NN3)의 그룹 B”를 제1 유사 그룹으로 결정할 수 있다. 그리고 신경망 분석 모듈(143)은 제4 참조 신경망과 유사한 구조를 갖는 레이어들을 그룹핑한 제1 신경망(NN1)의 그룹 C 및 제2 신경망(NN2)의 그룹 C’를 제3 유사 그룹으로 결정할 수 있다.
그리고 신경망 분석 모듈(143)은 유사 그룹들 각각에 대하여 공유 레이어 그룹을 결정할 수 있다. 예를 들어, 도 5를 참조하면, 신경망 분석 모듈(143)은 제1 유사 그룹에 대하여 제1 신경망(NN1)의 그룹 A를 공유 레이어 그룹으로 결정할 수 있다. 또한, 신경망 분석 모듈(143)은 제2 유사 그룹에 대하여 제1 신경망(NN1)의 그룹 B를 공유 레이어 그룹으로 결정할 수 있다. 또한, 신경망 분석 모듈(143)은 제3 유사 그룹에 대하여 제1 신경망(NN1)의 그룹 C를 공유 레이어 그룹으로 결정할 수 있다. 공유 레이어 그룹을 결정하는 방법은 도 4에서 전술한 방법과 실질적으로 동일할 수 있는바 중복된 설명은 생략한다.
도 6은 본 개시의 일 실시예에 따른 신경망 재구성 동작을 설명하기 위한 도면이다. 구체적으로, 도 6은 도 3의 재학습 모듈(145)이 도 5의 제1 신경망 내지 제3 신경망(NN1, NN2, NN3)을 재구성하는 동작을 설명하기 위한 도면이다.
도 3, 도 5 및 도 6을 참조하면, 재학습 모듈(145)은 유사 그룹에 포함되나 공유 레이어 그룹이 아닌 레이어 그룹을 재구성할 수 있다. 예를 들어, 도 6을 참조하면, 제2 신경망(NN2)의 그룹 A’ 및 제3 신경망(NN3)의 그룹 A”는 제1 유사 그룹에 포함되나, 제1 유사 그룹의 공유 레이어 그룹인 그룹 A가 아니므로, 재학습 모듈(145)은 제2 신경망(NN2)의 그룹 A’ 및 제3 신경망(NN3)의 그룹 A”를 그룹 A로 대체할 수 있다. 그리고 재학습 모듈(145)은 제2 신경망(NN2)의 대체한 그룹 A에 이어서 새로운 레이어(그룹 A2)를 추가하고, 재구성 전/후의 연산 결과가 동일하도록 재학습을 수행함으로써 재구성된 제2 신경망(R_NN2)을 생성할 수 있다. 그리고 재학습 모듈(145)은 제3 신경망(NN3)의 대체한 그룹 A에 이어서 새로운 레이어(그룹 A3)를 추가하고, 재구성 전/후의 연산 결과가 동일하도록 재학습을 수행함으로써 재구성된 제3 신경망(R_NN3)을 생성할 수 있다. 재학습 모듈(145)은 제2 유사 그룹 및 제3 유사 그룹에 포함되는 레이어들에 대해서도 전술한 동작을 동일하게 수행할 수 있다.
도 7은 본 개시의 일 실시예에 따른 재학습 동작을 설명하기 위한 도면이다. 구체적으로, 도 7은 도 3의 재학습 모듈(145)이 도 5의 제1 신경망(NN1)의 재학습 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 제1 신경망(NN1)의 그룹 A는 가중치 Wa를 갖는 컨벌루션 레이어(Conv(Wa)), 가중치 Wb를 갖는 컨벌루션 레이어(Conv(Wb)) 및 가중치 Wc를 갖는 풀링 레이어(Pool(Wc))를 포함할 수 있고, 제2 신경망(NN2)의 그룹 A’는 가중치 Wd를 갖는 컨벌루션 레이어(Conv(Wd)), 가중치 We를 갖는 컨벌루션 레이어(Conv(We)) 및 가중치 Wf를 갖는 풀링 레이어(Pool(Wf))를 포함할 수 있다.
그룹 A 및 그룹 A’를 포함하는 제1 유사 그룹의 공유 레이어 그룹은 그룹 A이므로, 재학습 모듈(145)은 제2 신경망(NN2)의 그룹 A’를 그룹 A로 대체할 수 있다. 이때, 재학습 모듈(145)은 그룹 A의 레이어 종류 및 가중치의 변경 없이 제2 신경망(NN2)의 그룹 A’를 대체할 수 있다. 그리고 재학습 모듈(145)은 새로운 레이어(그룹 A2)를 추가할 수 있다. 재학습 모듈(145)은 제2 신경망(NN2)의 재구성 전/후의 연산 결과가 동일하도록, 새로운 레이어(그룹 A2)의 종류와 가중치를 결정할 수 있다. 재학습 모듈(145)은 새로운 레이어(그룹 A2)에 대한 재학습을 통해 새로운 레이어(그룹 A2)의 가중치를 결정할 수 있다.
즉, 도 7을 참조하면, 재학습 모듈(145)은 Conv(Wd), Conv(We) 및 Pool(Wf)를 이용한 연산 결과가 Conv(Wa), Conv(Wb), Pool(Wc) 및 Conv(Wg)를 이용한 연산 결과와 동일하도록 재학습을 통해 Wg를 결정할 수 있다.
이에 따라, 재학습 모듈(145)은 제1 신경망(NN1) 및 제2 신경망(NN2)을 저장할 때, 그룹 A와 그룹 A’를 저장(즉, 총 6개의 레이어를 저장)하는 것이 아닌, 그룹 A 및 그룹 A2를 저장(즉, 총 4개의 레이어를 저장)할 수 있다.
도 8은 본 개시의 일 실시예에 따른 재학습 방법을 설명하기 위한 도면이다. 구체적으로, 도 8은 도 7의 변형 가능한 실시예를 설명하기 위한 도면이다.
도 3의 신경망 분석 모듈(143)은 서로 유사한 레이어 그룹들 중 하나를 공유 레이어 그룹으로 결정할 수 있으나, 실시예에 따라, 서로 유사한 레이어 그룹들 중 하나의 적어도 일부를 공유 레이어 그룹으로 결정할 수도 있다. 예를 들어, 도 8을 참조하면, 신경망 분석 모듈(143)은 그룹 A 및 그룹 A’를 포함하는 제1 유사 그룹의 공유 레이어 그룹으로, 그룹 A의 일부인 그룹 A1(Conv(Wa), Conv(Wb))을 결정할 수 있다.
따라서, 재학습 모듈(145)은 제2 신경망(NN2)의 그룹 A’의 레이어들 중 그룹 A1에 대응하는 레이어들을 그룹 A1으로 대체할 수 있다. 예를 들어, 도 8을 참조하면, 재학습 모듈(145)은 그룹 A1(Conv(Wa), Conv(Wb))에 대응하는 제2 신경망(NN2)의 레이어들(Conv(Wd), Conv(We))을 그룹 A1(Conv(Wa), Conv(Wb))으로 대체할 수 있다.
그리고 재학습 모듈(145)은 기존 그룹 A’에서 대체되지 않은 레이어(Pool(Wf))에 새로운 레이어(Conv(Wg))를 추가하여 새로운 그룹 A3를 생성할 수 있다. 재학습 모듈(145)은 제2 신경망(NN2)의 재구성 전/후의 연산 결과가 동일하도록, 새로운 레이어(Conv(Wg))의 종류와 가중치를 결정할 수 있다. 재학습 모듈(145)은 새로운 레이어(Conv(Wg))에 대한 재학습을 통해 새로운 레이어(Conv(Wg)))의 가중치를 결정할 수 있다.
그리고 제1 신경망(NN1)은 공유 레이어 그룹인 A1를 포함하고 있다는 점에서, 재학습 모듈(145)은 제1 신경망(NN1)을 재구성하지 않되, 제1 신경망(NN1)의 그룹 A를 그룹 A1과 나머지 레이어들을 포함하는 그룹 A2로 분리할 수 있다. 예를 들어, 도 8을 참조하면, 재학습 모듈(145)은 그룹 A(Conv(Wa), Conv(Wb), Pool(Wc))를 그룹 A1(Conv(Wa), Conv(Wb)) 및 그룹 A2(Pool(Wc))로 분리할 수 있다. 이에 따라, 재학습 모듈(145)은 제1 신경망(NN1) 및 제2 신경망(NN2)을 저장할 때, 그룹 A와 그룹 A’를 저장(즉, 총 6개의 레이어를 저장)하는 것이 아닌, 그룹 A1, 그룹 A2 및 그룹 A3를 저장(즉, 총 5개의 레이어를 저장)할 수 있다.
도 9는 본 개시의 일 실시예에 따른 신경망 재구성 전후의 저장 공간을 나타내는 도면이다. 구체적으로, 도 9는 도 5의 복수의 신경망들(NN1, NN2, NN3) 및 도 6의 복수의 신경망들(NN1, R_NN2, R_NN3)의 저장 공간을 나타내는 도면이다.
도 5, 도 6 및 도 9를 참조하면, 신경망 재구성 전의 경우, 복수의 신경망들(NN1, NN2, NN3)이 중복되는 레이어 그룹을 포함하지 않으므로, 전자 장치(100)는 복수의 신경망들(NN1, NN2, NN3)을 구성하는 모든 레이어 그룹들을 저장 공간에 저장할 수 있다. 예를 들어, 도 9를 참조하면, 전자 장치(100)는 제1 신경망(NN1)을 구성하는 모든 레이어 그룹들(그룹 A, 그룹 B, 그룹 C, 그룹 D), 제2 신경망(NN2)을 구성하는 모든 레이어 그룹들(그룹 A’, 그룹 B’, 그룹 C’, 그룹 E), 제3 신경망(NN3)을 구성하는 모든 레이어 그룹들(그룹 A”, 그룹 B”, 그룹 F)을 저장 공간에 저장할 수 있다.
한편, 신경망 재구성 후의 경우, 복수의 신경망들(NN1, R_NN2, R_NN3)이 중복되는 레이어 그룹(즉, 공유 레이어 그룹)을 포함하므로, 전자 장치(100)는 중복되는 레이어 그룹들을 한 회만 저장하고, 나머지 중복되지 않는 레이어 그룹들을 저장 공간에 저장할 수 있다. 예를 들어, 도 9를 참조하면, 전자 장치(100)는 제1 신경망(NN1)을 구성하는 레이어 그룹들(그룹 A, 그룹 B, 그룹 C, 그룹 D), 공유 레이어 그룹인 그룹 A, 그룹 B, 그룹 C를 제외한 제2 신경망(NN2)을 구성하는 레이어 그룹들(그룹 A2, 그룹 B2, 그룹 C2, 그룹 E), 공유 레이어 그룹인 그룹 A, 그룹 B를 제외한 제3 신경망(NN3)을 구성하는 레이어 그룹들(그룹 A3, 그룹 B3, 그룹 F)을 저장할 수 있다.
전자 장치(100)의 신경망의 재구성 동작 이후, 공유 레이어 그룹은 한 회만 저장되므로, 전자 장치(100)의 저장 공간의 효율성은 증가할 수 있다. 한편, 신경망 재구성 동작에서 추가된 레이어로 인해 저장 공간의 효율성 증가 효과가 일부 상쇄될 수 있으나, 추가된 레이어로 인해 증가되는 저장 공간(즉, 도 9의 그룹 A2, 그룹 B2, 그룹 C2, 그룹 A3, 그룹 B3에 할당된 저장 공간)보다 공유 레이어 그룹으로 인해 감소되는 저장 공간(즉, 도 9의 그룹 A’, 그룹 B’, 그룹 C’, 그룹 A”, 그룹 B”에 할당된 저장 공간)의 크기가 더 크다는 점에서, 최종적으로 본 개시의 일 실시예에 따른 전자 장치(100)의 저장 공간의 효율성은 증가할 수 있다.
도 10은 본 개시의 일 실시예에 따른 신경망 저장 방법을 설명하기 위한 도면이다. 구체적으로, 도 10은 도 2의 신경망 재구성 모듈(140)이 신경망을 구성하는 복수의 레이어 그룹들을 저장하는 방법을 설명하기 위한 도면이다.
도 2 및 도 10을 참조하면, 신경망 재구성 모듈(140)은 신경망 재구성 동작이 완료되면 복수의 신경망들을 저장 공간에 저장할 수 있다. 일 실시예에서, 신경망 재구성 모듈(140)은 신경망을 구성하는 복수의 레이어 그룹들 중 공유 레이어 그룹들과 비공유 레이어 그룹들을 별개의 저장 공간에 저장할 수 있다. 예를 들어, 신경망 재구성 모듈(140)은 공유 레이어 그룹들을 RAM(120)에 저장하고, 비공유 레이어 그룹들을 메모리(150) 또는 전자 장치(100) 외부의 서버(200)에 저장할 수 있다.
공유 레이어 그룹들이 RAM(120)에 저장됨으로써, 이후 신경망 장치(130)가 신경망을 통한 연산 수행 시, RAM(120)으로부터 공유 레이어 그룹을 빠르게 독출하여 연산을 시작할 수 있다. 그리고 신경망 장치(130)는 독출한 공유 레이어 그룹을 이용하여 연산을 수행함과 동시에 나머지 비공유 레이어 그룹을 메모리(150)로부터 독출하거나 서버(200)로부터 수신하여 다음 연산을 준비할 수 있다. 그리고 신경망 장치(130)는 공유 레이어 그룹을 통한 연산이 완료되면 이어서 비공유 레이어 그룹을 통한 연산을 수행함으로써, 연산에 수행되는 시간을 줄일 수 있다. 이와 같이, 본 개시의 일 실시예에 따른 전자 장치(100)는 복수의 신경망들을 효율적으로 저장하면서, 양호한 성능을 함께 가질 수 있다.
한편, 신경망 재구성 모듈(140)이 신경망의 복수의 레이어 그룹들을 저장하는 방법은 전술한 예에 한하지 않는다. 예를 들어, 신경망 재구성 모듈(140)은 공유 레이어 그룹을 메모리(150) 또는 서버(200)에 저장할 수 있고, 비공유 레이어 그룹을 RAM(120)에 저장할 수도 있다.
도 11은 본 개시의 일 실시예에 따른 우선순위 테이블을 나타내는 도면이다. 구체적으로, 도 11은 신경망을 구성하는 복수의 레이어 그룹들 각각의 우선순위에 대한 정보를 포함하는 우선순위 테이블을 나타내는 도면이다.
도 2의 신경망 재구성 모듈(140)의 신경망 재구성 동작이 완료되면, 신경망을 구성하는 복수의 레이어 그룹들 각각에 대한 우선순위에 대한 정보를 포함하는 우선순위 테이블(PT)이 생성될 수 있다. 레이어 그룹의 우선순위는, 공유 레이어 그룹 여부, 상기 레이어 그룹을 포함하는 신경망의 실행 횟수 등을 기초로 결정될 수 있다. 한편, 우선순위를 결정하는 기준은 전술한 예에 한하지 않으며, 다양한 정보에 기초하여 우선순위가 결정될 수 있다. 전자 장치(100)는 우선순위 테이블(PT)의 정확도를 유지하기 위해, 신경망을 이용한 연산이 수행될 때마다 우선순위 테이블(PT)을 업데이트 할 수 있다.
전자 장치(100)는 우선순위 테이블(PT)을 기초로 전자 장치(100)에 저장된 복수의 레이어 그룹들의 할당 해제를 결정할 수 있다. 일 실시예에서, 전자 장치(100)는 저장 공간이 부족한 것으로 판단하면, 이미 저장된 레이어 그룹들 중 우선순위가 낮은 레이어 그룹을 할당 해제할 수 있다. 그리고 전자 장치(100)는 할당 해제한 레이어 그룹에 대응하는 우선순위 정보를 우선순위 테이블(PT)로부터 삭제할 수 있다. 한편, 신경망을 구성하는 레이어 그룹이 전자 장치(100)가 아닌 외부의 서버(도 10, 200)에 저장된 경우, 우선순위 테이블(PT)은 서버(도 10, 200)에 저장된 레이어 그룹의 우선순위 정보를 포함하지 않을 수도 있다.
도 12는 본 개시의 일 실시예에 따른 신경망을 이용한 연산 방법을 설명하기 위한 도면이다. 구체적으로, 도 12는 도 2의 신경망 장치(130)가 신경망을 이용하여 연산을 수행하는 방법을 설명하기 위한 도면이다.
신경망 장치(130)는 전자 장치(100)에 저장된 신경망의 연산 요청을 수신할 수 있다(①). 예를 들어, 도 12를 참조하면, 신경망 장치(130)는 제2 신경망을 이용한 연산 요청을 수신할 수 있다. 그리고 신경망 장치(130)는 연산 요청에 응답하여, 신경망의 공유 레이어 그룹을 RAM(120)으로부터 독출할 수 있다(②). 예를 들어, 도 12를 참조하면, 신경망 장치(130)는 제2 신경망의 공유 레이어 그룹(그룹 A, 그룹 B, 그룹 C)을 RAM(120)으로부터 독출할 수 있다.
그리고 신경망 장치(130)는 독출한 공유 레이어 그룹을 기초로 연산을 수행할 수 있다(③). 예를 들어, 도 12를 참조하면, 신경망 장치(130)는 독출한 제2 신경망의 공유 레이어 그룹(그룹 A, 그룹 B, 그룹 C)을 기초로 연산을 수행할 수 있다. 도 6의 재구성된 제2 신경망(R_NN2)의 구조를 참조하면, 그룹 A가 최초의 입력 샘플에 대한 연산을 수행하므로, 신경망 장치(130)는 그룹 A를 이용하여 연산을 시작할 수 있다.
그리고 신경망 장치(130)는 공유 레이어 그룹을 이용한 연산을 수행함과 동시에 메모리(150)로부터 비공유 레이어 그룹을 메모리(150)로부터 독출할 수 있다(④). 예를 들어, 도 12를 참조하면, 신경망 장치(130)는 독출한 제2 신경망의 비공유 레이어 그룹(그룹 A2, 그룹 B2, 그룹 C2, 그룹 E)을 메모리(150)로부터 독출할 수 있다. 그리고 신경망 장치(130)는 독출한 비공유 레이어 그룹을 기초로 연산을 수행할 수 있다(⑤). 예를 들어, 도 12를 참조하면, 신경망 장치(130)는 공유 레이어 그룹(그룹 A, 그룹 B, 그룹 C) 및 비공유 레이어 그룹(그룹 A2, 그룹 B2, 그룹 C2, 그룹 E)을 이용하여, 레이어 그룹의 순서에 따라 순차적으로 연산을 수행할 수 있다.
한편, 도 12를 도시하고 설명함에 있어서, 신경망 장치(130)가 RAM(120) 또는 메모리(150)로부터 신경망을 구성하는 레이어 그룹을 독출하는 것으로 도시하고 설명하였지만, 실시예에 따라 신경망 장치(130)는 외부의 서버(도 10, 200)로부터 레이어 그룹을 수신하도록 구현될 수 있다.
도 13은 본 개시의 일 실시예에 따른 인공 신경망의 재구성 방법을 나타내는 흐름도이다. 구체적으로, 도 13은 도 2의 전자 장치(100)의 인공 신경망의 재구성 방법을 나타내는 흐름도이다.
도 2 및 도 13을 참조하면, 전자 장치(100)는 제1 신경망 및 제2 신경망의 구조를 분석할 수 있다(S210). 일 실시예에서, 전자 장치(100)는 참조 신경망 정보를 기초로, 제1 신경망 및 제2 신경망을 구성하는 레이어들 중, 참조 신경망과 유사한 구조를 갖는 레이어들을 확인하고, 확인한 레이어들을 하나의 그룹으로 결정할 수 있다. 참조 신경망 정보는, 신경망의 구조의 분석 시 참조할 수 있는 정보로, 예를 들어, 인공 신경망에서 자주 쓰이거나 대표적인 신경망들의 구조에 대한 정보를 포함할 수 있다. 전자 장치(100)는 각 참조 신경망을 기초로 전술한 동작을 반복함으로써, 제1 신경망 및 제2 신경망을 구성하는 복수의 레이어 그룹들을 결정할 수 있다.
그리고 전자 장치(100)는 복수의 레이어 그룹들 중 서로 유사한 레이어 그룹들을 결정할 수 있다. 구체적으로, 전자 장치(100)는 제1 신경망 및 제2 신경망의 복수의 그룹들을 결정하는 과정에서 참조하였던 참조 신경망을 기준으로, 복수의 그룹들 중 서로 유사한 레이어 그룹들을 결정할 수 있다.
그리고 전자 장치(100)는 분석 결과를 기초로 공유 레이어 그룹을 결정할 수 있다(S220). 일 실시예에서, 전자 장치(100)는 서로 유사한 레이어 그룹들 중 하나를 공유 레이어 그룹으로 결정할 수 있다. 예를 들어, 전자 장치(100)는 서로 유사한 레이어 그룹들 중 참조 신경망과 가장 유사한 레이어 그룹, 가장 성능이 좋은 레이어 그룹, 또는 저장 공간의 효율성이 높은 레이어 그룹을 공유 레이어 그룹으로 결정할 수 있다.
그리고 전자 장치(100)는 공유 레이어 그룹을 포함하도록 제1 신경망 또는 제2 신경망을 재구성할 수 있다(S230). 예를 들어, 제1 신경망에 공유 레이어 그룹이 포함된 경우, 전자 장치(100)는 제2 신경망을 구성하는 레이어 그룹들 중 상기 공유 레이어 그룹과 유사한 레이어 그룹을 공유 레이어 그룹으로 대체할 수 있다. 그리고 전자 장치(100)는 제2 신경망의 대체된 레이어 그룹에 이어 새로운 레이어를 추가하고, 재구성 전 제2 신경망의 연산 결과와 재구성된 제2 신경망의 연산 결과가 동일하도록 새로운 레이어의 가중치를 재학습할 수 있다. 반대로, 제2 신경망에 공유 레이어 그룹이 포함된 경우, 전자 장치(100)는 제1 신경망에 대하여 전술한 일련의 동작들을 수행할 수 있다.
전자 장치(100)는 제1 신경망 및 제2 신경망에 대한 재구성 동작이 완료되면 제1 신경망 및 제2 신경망을 구성하는 복수의 레이어 그룹들을 저장 공간에 저장할 수 있다. 이때, 제1 신경망 및 제2 신경망에 중복으로 포함된 공유 레이어 그룹은 한 회만 저장될 수 있다. 또한, 전자 장치(100)는 공유 레이어 그룹을 빠른 독출이 가능한 RAM(120)에 저장하고, 비공유 레이어 그룹을 상대적으로 느리게 독출 가능한 메모리(150)에 저장할 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 전자 장치는, 복수의 신경망들이 공유 레이어 그룹을 포함하도록 적어도 하나의 신경망을 재구성하고, 중복되는 레이어 그룹의 저장을 생략함으로써, 복수의 신경망들을 저장하는 저장 공간을 줄일 수 있다. 또한, 본 개시의 일 실시예에 따른 전자 장치는 공유 레이어 그룹을 빠른 독출이 가능한 RAM에 저장함으로써, 복수의 신경망들 중 어떤 것을 이용하더라도 연산을 빠르게 시작할 수 있다. 또한, 본 개시의 일 실시예에 따른 전자 장치는, 재구성 전의 신경망의 연산 결과와 동일한 연산 결과를 생성하도록 재구성된 신경망의 재학습을 수행함으로써, 신경망의 재구성에 따른 정확도 하락을 방지할 수 있다.
도 14는 본 개시의 일 실시예에 따른 신경망 재구성 모듈이 소프트웨어적으로 구현되는 예를 나타내는 블록도이다. 도 15에 도시된 시스템은 어플리케이션 프로세서(300)일 수 있으며, 어플리케이션 프로세서(300)는 반도체 칩으로서 시스템 온 칩(SoC)으로 구현될 수 있다.
어플리케이션 프로세서(300)는 프로세서(310) 및 동작 메모리(320)를 포함할 수 있다. 또한, 도 14에는 도시되지 않았으나, 어플리케이션 프로세서(300)는 시스템 버스에 연결되는 하나 이상의 IP(Intellectual Property) 모듈들을 더 포함할 수도 있다. 동작 메모리(320)는 어플리케이션 프로세서(300)가 채용되는 시스템의 동작과 관련된 각종 프로그램 및 명령어 등의 소프트웨어를 저장할 수 있으며, 일 실시예로서, 운영 체제(321), 신경망 모듈(323) 및 어댑터 모듈(325)을 포함할 수 있다. 어댑터 모듈(325)은 전술한 실시예들에 따른 신경망 재구성 모듈의 기능을 수행할 수 있다.
신경망 모듈(323)은 기존의 인공 신경망 또는 본 발명의 실시예들에 따른 재구성된 인공 신경망의 연산을 수행할 수 있다. 또한, 어댑터 모듈(325)은 인공 신경망을 수신하고, 전술한 실시예들에 따른 신경망 재구성 동작을 수행할 수 있다. 실시예에 따라, 신경망 모듈(323)은 운영 체제(321) 내에 구현될 수도 있을 것이다.
한편, 도 14에는 하나의 프로세서(310)가 도시되었으나, 어플리케이션 프로세서(300)는 다수의 프로세서들을 포함할 수도 있다. 이때, 다수의 프로세서들 중 일부는 일반 프로세서에 해당하고, 다른 일부는 인공 신경망의 실행을 위한 전용 프로세서일 수 있다. 어댑터 모듈(325)은 전용 프로세서에 관련하여 스태틱 정보 및 참조 신경망 정보를 이용한 신경망 재구성 동작을 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (10)
- 제1 신경망 및 제2 신경망을 포함하는 인공 신경망을 기반으로 연산을 수행하는 프로세서의 동작 방법에 있어서,
상기 제1 신경망의 구조 및 상기 제2 신경망의 구조의 유사도를 분석하는 단계;
상기 분석 결과를 기초로, 상기 제1 신경망 또는 상기 제2 신경망으로부터 공동으로 사용할 수 있는 공유 레이어들을 선택하는 단계; 및
상기 공유 레이어들을 기초로, 상기 제1 신경망의 구조 또는 상기 제2 신경망의 구조를 재구성(reconstruct)하는 단계;를 포함하는 동작 방법. - 제1항에 있어서,
상기 유사도를 분석하는 단계는,
상기 제1 신경망을 구성하는 복수의 레이어들을 제1 레이어 그룹들로 그룹핑하고, 상기 제2 신경망을 구성하는 복수의 레이어들을 제2 레이어 그룹들로 그룹핑하는 단계;
및상기 제1 레이어 그룹들의 구조와 상기 제2 레이어 그룹들의 구조를 비교하는 단계;를 포함하는 것을 특징으로 하는 동작 방법. - 제2항에 있어서,
상기 유사도를 분석하는 단계는,
상기 제1 레이어 그룹들 및 상기 제2 레이어 그룹들 중 서로 유사한 레이어 그룹들을 서치하는 단계;를 포함하고,
상기 공유 레이어들을 선택하는 단계는,
상기 서치된 서로 유사한 레이어 그룹들 중 하나에 포함된 레이어들을 상기 공유 레이어들로 선택하는 것을 특징으로 하는 동작 방법. - 제2항에 있어서,
상기 제1 신경망의 구조 또는 상기 제2 신경망의 구조를 재구성(reconstruct)하는 단계는,
상기 제1 신경망 및 상기 제2 신경망 중, 상기 공유 레이어들이 선택되지 않은 신경망을 대상 신경망으로 결정하는 단계; 및
상기 대상 신경망을 구성하는 복수의 레이어들 중 적어도 하나를 상기 공유 레이어들로 대체하는 단계;를 포함하는 것을 특징으로 하는 동작 방법. - 제4항에 있어서,
상기 제1 신경망의 구조 또는 상기 제2 신경망의 구조를 재구성(reconstruct)하는 단계는,
상기 대상 신경망의 재구성에 따른 연산 결과를 보정하기 위한 새로운 레이어를 추가하는 단계;를 더 포함하는 것을 특징으로 하는 동작 방법. - 제5항에 있어서,
상기 제1 신경망의 구조 또는 상기 제2 신경망의 구조를 재구성(reconstruct)하는 단계는,
상기 대상 신경망의 재구성 전의 연산 결과와 상기 대상 신경망의 재구성 후의 연산 결과가 동일하도록 상기 새로운 레이어를 학습하는 단계;를 더 포함하는 것을 특징으로 하는 동작 방법. - 메모리;
제1 신경망 및 제2 신경망 각각을 구성하는 복수의 레이어 그룹들을 분석하고, 상기 분석 결과를 기초로 상기 제1 신경망의 제1 레이어 그룹과 유사한 구조를 갖는 상기 제2 신경망의 제2 레이어 그룹을 결정하고, 상기 제1 레이어 그룹을 포함하도록 상기 제2 레이어 그룹을 재구성하여 재구성된 제2 신경망을 생성하고, 상기 제1 신경망 및 상기 재구성된 제2 신경망을 상기 메모리에 저장하는 프로세서;를 포함하는 전자 장치. - 제7항에 있어서,
상기 메모리는,
RAM(Random Access Memory); 및 비휘발성 메모리;를 포함하고,
상기 프로세서는,
상기 제2 레이어 그룹을, 상기 제1 레이어 그룹 및 적어도 하나의 새로운 레이어를 포함하는 제3 레이어 그룹으로 재구성하고,
상기 제1 신경망 및 상기 제2 신경망을 레이어 그룹 단위로 상기 RAM 또는 상기 비휘발성 메모리에 저장하는 전자 장치. - 제8항에 있어서,
상기 프로세서는,
상기 제1 레이어 그룹을 상기 RAM에 저장하고, 상기 제3 레이어 그룹을 상기 비휘발성 메모리에 저장하는 전자 장치. - 제9항에 있어서,
상기 프로세서는,
상기 제1 신경망 또는 상기 제2 신경망의 연산 요청을 수신하면, 상기 RAM으로부터 상기 제1 레이어 그룹을 독출하고, 상기 독출한 제1 레이어 그룹을 이용하여 연산을 수행하는 전자 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200021113A KR20210106217A (ko) | 2020-02-20 | 2020-02-20 | 인공 신경망의 재구성을 수행하는 프로세서, 이를 포함하는 전자 장치 및 프로세서의 동작 방법 |
US17/036,134 US20210264237A1 (en) | 2020-02-20 | 2020-09-29 | Processor for reconstructing artificial neural network, electrical device including the same, and operating method of processor |
CN202110051485.7A CN113283575A (zh) | 2020-02-20 | 2021-01-14 | 用于重构人工神经网络的处理器及其操作方法、电气设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200021113A KR20210106217A (ko) | 2020-02-20 | 2020-02-20 | 인공 신경망의 재구성을 수행하는 프로세서, 이를 포함하는 전자 장치 및 프로세서의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210106217A true KR20210106217A (ko) | 2021-08-30 |
Family
ID=77275671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200021113A KR20210106217A (ko) | 2020-02-20 | 2020-02-20 | 인공 신경망의 재구성을 수행하는 프로세서, 이를 포함하는 전자 장치 및 프로세서의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210264237A1 (ko) |
KR (1) | KR20210106217A (ko) |
CN (1) | CN113283575A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024076163A1 (ko) * | 2022-10-06 | 2024-04-11 | 오픈엣지테크놀로지 주식회사 | 신경망 연산방법과 이를 위한 npu 및 컴퓨팅 장치 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022057224A (ja) * | 2020-09-30 | 2022-04-11 | 株式会社デンソー | 共用ストレージ管理装置及び共用ストレージ管理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6750854B2 (ja) * | 2016-05-25 | 2020-09-02 | キヤノン株式会社 | 情報処理装置および情報処理方法 |
US11010595B2 (en) * | 2017-03-23 | 2021-05-18 | Samsung Electronics Co., Ltd. | Facial verification method and apparatus |
US10395144B2 (en) * | 2017-07-24 | 2019-08-27 | GM Global Technology Operations LLC | Deeply integrated fusion architecture for automated driving systems |
EP3673233A4 (en) * | 2018-04-18 | 2021-05-19 | Mobileye Vision Technologies Ltd. | VEHICLE ENVIRONMENT MODELING WITH A CAMERA |
CN111178491A (zh) * | 2018-11-09 | 2020-05-19 | 佳能株式会社 | 神经网络模型的训练和应用方法、装置、***及存储介质 |
US20200167690A1 (en) * | 2018-11-28 | 2020-05-28 | Adobe Inc. | Multi-task Equidistant Embedding |
US20200210809A1 (en) * | 2018-12-30 | 2020-07-02 | Playtika Ltd. | System and method for outlier detection using a cascade of neural networks |
WO2020149518A1 (ko) * | 2019-01-14 | 2020-07-23 | 주식회사 에이아이인사이트 | 안저영상 자동판독을 위한 딥러닝 아키텍처 시스템 및 딥러닝 아키텍쳐 시스템을 이용한 안저영상 자동판독 방법 |
US11699064B2 (en) * | 2019-04-23 | 2023-07-11 | Arm Limited | Data processing using a neural network system |
-
2020
- 2020-02-20 KR KR1020200021113A patent/KR20210106217A/ko active Search and Examination
- 2020-09-29 US US17/036,134 patent/US20210264237A1/en active Pending
-
2021
- 2021-01-14 CN CN202110051485.7A patent/CN113283575A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024076163A1 (ko) * | 2022-10-06 | 2024-04-11 | 오픈엣지테크놀로지 주식회사 | 신경망 연산방법과 이를 위한 npu 및 컴퓨팅 장치 |
WO2024076165A1 (ko) * | 2022-10-06 | 2024-04-11 | 오픈엣지테크놀로지 주식회사 | 신경망 연산을 위한 명령어 세트 생성방법과 이를 위한 컴퓨팅 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20210264237A1 (en) | 2021-08-26 |
CN113283575A (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021114625A1 (zh) | 用于多任务场景的网络结构构建方法和装置 | |
KR20190055610A (ko) | 뉴럴 네트워크 모델들의 공용 연산 그룹을 단일 처리하는 뉴럴 네트워크 시스템, 이를 포함하는 애플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법 | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
WO2023093724A1 (zh) | 神经网络模型的处理方法及装置 | |
US11144291B1 (en) | Loop-oriented neural network compilation | |
US11921814B2 (en) | Method and device for matrix multiplication optimization using vector registers | |
US20200226458A1 (en) | Optimizing artificial neural network computations based on automatic determination of a batch size | |
KR20210106217A (ko) | 인공 신경망의 재구성을 수행하는 프로세서, 이를 포함하는 전자 장치 및 프로세서의 동작 방법 | |
US11521007B2 (en) | Accelerator resource utilization by neural networks | |
DE112020003105T5 (de) | Schicht für schicht-debugging von neuronalen netzwerken | |
US10990525B2 (en) | Caching data in artificial neural network computations | |
CN114662646A (zh) | 实现神经网络的方法和装置 | |
US11461662B1 (en) | Compilation time reduction for memory and compute bound neural networks | |
DE112020006070T5 (de) | Hardwarebeschleuniger mit rekonfigurierbarem befehlssatz | |
CN110059813B (zh) | 利用gpu集群更新卷积神经网络的方法、装置及设备 | |
US20220107839A1 (en) | Task execution method and electronic device using the same | |
US11900239B2 (en) | Systems and methods for accelerating sparse neural network execution | |
US20220067509A1 (en) | System and method for learning from partial compressed representation | |
CN113705800A (zh) | 处理单元、相关装置和方法 | |
EP3895024A1 (en) | Caching data in artificial neural network computations | |
CN111309572B (zh) | 测试分析方法、装置、计算机设备及存储介质 | |
US20240176759A1 (en) | Machine learning parallelization method using host cpu with multi-socket structure and apparatus therefor | |
US11809849B1 (en) | Global modulo allocation in neural network compilation | |
US11748623B2 (en) | Modifying structure of artificial neural networks by collocating parameters | |
Florencio et al. | Benchmarking the Keras API on GPU: the use of tensorflow and CNTK libraries as back-end |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |