KR20190041819A - 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법 - Google Patents

컨볼루션 신경망의 컨볼루션 연산 장치 및 방법 Download PDF

Info

Publication number
KR20190041819A
KR20190041819A KR1020170133525A KR20170133525A KR20190041819A KR 20190041819 A KR20190041819 A KR 20190041819A KR 1020170133525 A KR1020170133525 A KR 1020170133525A KR 20170133525 A KR20170133525 A KR 20170133525A KR 20190041819 A KR20190041819 A KR 20190041819A
Authority
KR
South Korea
Prior art keywords
threshold value
convolution
stride
size
unit
Prior art date
Application number
KR1020170133525A
Other languages
English (en)
Inventor
선우명훈
김영호
Original Assignee
아주대학교산학협력단
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 아주대학교산학협력단 filed Critical 아주대학교산학협력단
Priority to KR1020170133525A priority Critical patent/KR20190041819A/ko
Priority to US16/059,695 priority patent/US20190114532A1/en
Publication of KR20190041819A publication Critical patent/KR20190041819A/ko

Links

Images

Classifications

    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/048Activation functions
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

컨볼루션 신경망의 컨볼루션 연산 장치 및 방법이 개시된다.
본 발명의 일 실시예에 따른 컨볼루션 신경망의 컨볼루션 연산 장치는, 입력 특징 맵의 부분 영역내 '0'의 개수에 근거하여 컨볼루션 연산 수행 여부를 결정하는 연산 제어부, 상기 연산 제어부의 결정에 따라, 상기 부분 영역의 컨볼루션 연산을 수행하는 연산부를 포함한다.

Description

컨볼루션 신경망의 컨볼루션 연산 장치 및 방법{Apparatus and method for convolution operation of convolution neural network}
본 발명은 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법에 관한 것이다. 보다 자세하게는 특징 맵의 부분 영역내 '0'의 개수에 근거하여 컨볼루션 연산을 스킵(skip)하는 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법에 관한 것이다.
딥러닝(deep learning) 기술의 핵심 계산 모형인 컨볼루션 신경망(CNN : Convolution Neural Network, 이하에서 "CNN"이라고 지칭함)은, 각각의 뉴런이 인간의 시각 신경계에서 중복 영역의 응답 특성과 유사한 특성을 갖도록 다중 계층으로 배치된 인공신경망의 한 종류이다.
CNN은 계층의 수가 많아질수록 복잡한 패턴의 영상 및 음성을 높은 인식률로 인식할 수 있다는 장점이 있다. 그에 따라, 오랫동안 정체 상태에 머물러 있던 영상 및 음성 인식률이 최근 들어 CNN 기술에 의해 극적으로 높아지고, ImageNet과 같은 각종 영상인식 벤치마킹시험에서 CNN 시스템들이 최고기록을 경신하고 있다. 그 결과, CNN은 영상인식, 음성인식, 언어번역 등 다양한 머신러닝(machine learning) 분야에서 각광받고 있다.
또한, CNN은, 다중 계층 퍼셉트론(multi-layered perceptron)과 같은 기존의 전통적인 신경망 모델과 비교하여, 별도의 특징 추출 과정이 필요하지 않고 파라미터(parameter)에 소요되는 데이터 양이 적어 제한된 메모리 용량으로도 구현할 수 있다는 장점이 있다.
그러므로, 컨볼루션 신경망은 딥러닝 알고리즘 중 일반신경망이 다루기 어려운 이미지를 처리하기 적합하다. 일반신경망은 입력되는 이미지가 32x32라고 가정하고 그 이미지가 컬러 채널일 경우, 32x32x3=3072개의 가중치가 필요하다. 그에 반해, 컨볼루션 신경망은 입력이 이미지로 이루어져 있다는 특징을 사용하여 가중치의 개수를 줄인다. 컨볼루션 신경망은 일정한 크기의 필터 또는 마스크 또는 커널(가중치)을 입력 이미지에 반복적으로 적용하여 이미지의 특징을 추출하게 된다. 이러한 필터를 다수 사용하여 특징 맵(feature map)을 생성하며, 그 특징 맵을 이용하여 입력 이미지에서의 고유한 특징을 부각시킨 이미지를 만들어낸다. 여기서 필터들이 이미지에 반복적으로 적용되어 이미지의 특징을 뽑아내는 연산을 컨볼루션 연산이라 한다. 컨볼루션 연산은 필터의 각 가중치를 이미지에서 sliding해가면서 픽셀과 곱하고 이를 누적하는, MAC(multiplication and accumulation) 연산으로 계산량이 많다. 이미지를 분석하기 위한 딥러닝에서 컨볼루션 신경망의 컨볼루션 연산은 딥러닝에서 가장 핵심이며, 신경망 연산의 대부분을 차지하고 있다.
그러나, 종래의 컨볼루션 연산은 이미지의 크기가 커지고 딥러닝에서 신경망 깊이가 깊어질수록 연산량이 증가하게 되는 단점이 있다.
또한, 컨볼루션 연산량이 증가함에 따라 전력소비가 증가하게 되어, 이미지의 실시간 처리와 시스템의 효율적 전력관리를 어렵게 하는 문제가 있다.
이에 관련하여, 발명의 명칭이 "컨볼루션 연산을 수행하기 위한 저장 디바이스 및 방법"인 한국공개특허 제10-2017-0099848호가 존재한다.
본 발명이 해결하고자 하는 기술적 과제는 컨볼루션 신경망의 성능을 유지하면서 컨볼루션 연산량을 줄일 수 있는 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 컨볼루션 신경망의 컨볼루션 연산 장치는, 입력 특징 맵의 부분 영역내 '0'의 개수에 근거하여 컨볼루션 연산 수행 여부를 결정하는 연산 제어부, 상기 연산 제어부의 결정에 따라, 상기 부분 영역의 컨볼루션 연산을 수행하는 연산부를 포함한다.
바람직하게는, 상기 연산 제어부는, 상기 부분 영역내 '0'을 검색하고, 상기 검색된 '0'의 개수가 기 설정된 임계치 이상인 경우, 컨볼루션 연산을 스킵(skip)하여 '0'을 출력하고, 임계치 이상이 아닌 경우 상기 부분 영역을 상기 연산부에 제공할 수 있다.
바람직하게는, 마스크(또는 필터)의 크기, 스트라이드(stride), 이미지의 위치 중 적어도 하나에 기초하여 설정하는 임계치를 설정하는 임계치 설정부를 더 포함할 수 있다.
바람직하게는, 상기 임계치 설정부는, 상기 마스크의 크기가 기준 크기 이상인 경우, 임계치를 기준 임계치 미만으로 낮추고, 기준 크기 이상이 아닌 경우, 임계치를 기준 임계치 이상으로 높일 수 있다.
바람직하게는, 상기 임계치 설정부는, 상기 스트라이드가 기준 스트라이드 이상인 경우 임계치를 기준 임계치 이상으로 높이고, 기준 스트라이드 이상이 아닌 경우 임계치를 기준 임계치 미만으로 낮출 수 있다.
바람직하게는, 상기 임계치 설정부는, 상기 이미지의 가장자리에서 중심부로 갈수록 임계치를 높일 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 컨볼루션 신경망의 컨볼루션 연산 방법은, 컨볼루션 연산 장치가 컨볼루션 연산을 수행하는 방법에 있어서, 입력 특징 맵의 부분 영역내 '0'의 개수에 근거하여 컨볼루션 연산 수행 여부를 결정하는 단계, 컨볼루션 연산 수행 결정 시, 상기 부분 영역의 컨볼루션 연산을 수행하는 단계를 포함한다.
바람직하게는, 상기 컨볼루션 연산 수행 여부를 결정하는 단계는, 상기 부분 영역내 '0'을 검색하고, 상기 검색된 '0'의 개수가 기 설정된 임계치 이상인 경우, 상기 부분 영역의 컨볼루션 연산을 스킵(skip)하여 '0'을 출력할 수 있다.
바람직하게는, 상기 임계치는, 마스크(또는 필터)의 크기, 스트라이드(stride), 이미지의 위치 중 적어도 하나에 기초하여 설정된 값일 수 있다.
바람직하게는, 상기 임계치는, 상기 마스크의 크기가 기준 크기 이상인 경우, 기준 임계치 미만이고, 기준 크기 이상이 아닌 경우, 기준 임계치 이상일 수 있다.
바람직하게는, 상기 임계치는, 상기 스트라이드가 기준 스트라이드 이상인 경우 기준 임계치 이상이고, 기준 스트라이드 이상이 아닌 경우 기준 임계치 미만일 수 있다.
바람직하게는, 상기 임계치는, 상기 이미지의 가장자리에서 중심부로 갈수록 높아질 수 있다.
본 발명에 따른 효과는 다음과 같다.
본 발명에서 제안하는 컨볼루션 연산 장치 및 방법을 이용하면, 컨볼루션 신경망에서 대부분을 차지하는 컨볼루션 연산을 줄일 수 있기 때문에 딥러닝에서의 추론 속도를 높일 수 있다.
또한, 컨볼루션 연산량을 줄일 수 있기 때문에 전력소비를 줄일 수 있으며, 이는 전력이 한정된 기기에 효율적으로 사용할 수 있게 하는 효과가 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 컨볼루션 신경망 구조를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 컨볼루션 신경망의 컨볼루션 연산 장치를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 컨볼루션 연산을 수행하는 부분 영역의 순서를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 마스크의 크기에 따라 임계치를 설정하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 스트라이드에 따라 임계치를 설정하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 이미지의 위치에 따라 임계치를 설정하는 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 컨볼루션 신경망에서 컨볼루션 연산 방법을 나타낸 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 명세서에는 마스크와 필터가 혼용되어 사용되었으나, 이는 동일한 의미일 수 있다.
이하에서는 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 컨볼루션 신경망 구조를 설명하기 위한 도면이다.
도 1을 참조하면, 사전 학습된 파라미터를 사용하여 이미지를 인식하는 컨볼루션 신경망은 복수의 컨볼루션 계층(10-1, 10-2, …, 10-N)으로 이루어진다. 각각의 컨볼루션 계층들(10-1, 10-2, …, 10-N)은 복수의 유닛(a, b, c, …, x, y, z)을 포함한다.
각각의 유닛들(a, b, c, …, x, y, z)은 이차원 행렬을 이용하여 입력 이미지의 특징을 나타낸다. 각각의 유닛들(a, b, c, …, x, y, z)은 한 컨볼루션 계층의 출력 유닛과 그 다음 컨볼루션 계층의 입력 유닛으로 이용된다. 예를 들어, 유닛들(d, e, f, g)은 컨볼루션 계층(10-1)의 출력 유닛과 콘볼루션 계층(10-2)의 입력 유닛으로 이용될 수 있다. 각각의 유닛들(a, b, c, …, x, y, z)이 한 컨볼루션 계층의 입력 유닛으로 이용되면, 그 유닛을 채널(channel)이라고도 지칭하며, 각각의 유닛들(a, b, c, …, x, y, z)이 한 컨볼루션 계층의 출력 유닛으로 이용되면, 그 유닛을 특징 맵(feature map)라고도 지칭한다.
첫 번째 컨볼루션 계층(10-1)의 입력 유닛(a, b, c)은 인식하고자 하는 이미지를 나타내며, 통상적으로 첫 번째 컨볼루션 계층(10-1)은 입력 이미지의 적색, 녹색, 청색 성분을 각각 나타내는 세 개의 입력 유닛(a, b, c)을 포함한다.
각 컨볼루션 계층(10-1, 10-2, …, 10-N)에서, 각각의 입력 유닛들은 모든 출력 유닛과 컨볼루션 기능으로 완전히 연결된다. 예를 들어, 컨볼루션 계층(10-1)에서, 각각의 입력 유닛들(a, b, c)은 컨볼루션 계층(10-1)의 모든 출력 유닛(e, f, g, h)과 컨볼루션 기능으로 연결된다. 여기서 컨볼루션 기능은 입력 이미지에 n x n 크기의 필터를 적용하여 이미지의 특징을 뽑아내는 기능이다.
구체적으로 콘볼루션 기능은 입력 유닛에 컨볼루션 연산을 적용하고, 컨볼루션 연산된 입력 유닛에 비선형 함수를 적용하여 출력 유닛을 계산하는 기능이다. 여기서 컨볼루션 연산은 입력 유닛의 전 영역에서 가능한 모든 n x n 크기의 부분 영역을 추출하고, 그 다음 입력 유닛과 출력 유닛 사이에 고유하게 지정된 필터의 각 단위요소들과 n x n 크기의 부분 영역의 각 값을 각각 곱한 후 합산하는 것(즉, 필터와 부분 영역 간의 내적의 곱의 합)을 의미한다. 여기서 비선형 함수는, 예를 들어, 시그모이드(sigmoid) 함수, 정류 선형 함수(ReLU : Rectified Linear Unit)등을 의미한다. 부분 영역은 수용장(local receptive field)이라고도 지칭하고, 필터는 수용장의 크기에 대응하는 n x n 개의 파라미터로 구성되며, 커널(kernel) 또는 마스크라고도 지칭한다. 하나의 커널은 입력 유닛(즉, 채널)의 모든 부분 영역에 공통적으로 적용된다.
도 2는 본 발명의 일 실시예에 따른 컨볼루션 신경망의 컨볼루션 연산 장치를 나타낸 도면, 도 3은 본 발명의 일 실시예에 따른 컨볼루션 연산을 수행하는 부분 영역의 순서를 설명하기 위한 도면, 도 4는 본 발명의 일 실시예에 따른 마스크의 크기에 따라 임계치를 설정하는 방법을 설명하기 위한 도면, 도 5는 본 발명의 일 실시예에 따른 스트라이드에 따라 임계치를 설정하는 방법을 설명하기 위한 도면, 도 6은 본 발명의 일 실시예에 따른 이미지의 위치에 따라 임계치를 설정하는 방법을 설명하기 위한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 컨볼루션 신경망의 컨볼루션 연산 장치(100)는 메모리부(110), 페치(fetch)부(120), 연산 제어부(130), 연산부(140), 출력 처리부(150), 제어부(170)를 포함한다.
메모리부(110)는 외부로부터 이미지(즉, 화상 입력 데이터)를 입력받고 출력 처리부(140)의 출력 데이터(즉, 연산결과)를 입력받는다. 메모리부(110)는 입력된(즉, 저장된) 데이터 중 현재 컨볼루션 연산될 데이터(즉, 현재 계층에 대응하는 데이터)를 순차적으로 페치부(120)에 제공한다.
페치부(120)는 제어부(170)의 제어 하에서 메모리(145)로부터 입력 특징 맵(160)을 검색하여 연산 제어부(130)에 제공하고, 가중치(weight)를 검색(retrieve)하여 연산부(140)에 제공한다.
페치부(120)는 메모리부(110)로부터 입력되는 특징 맵을 n x n 크기의 부분 영역으로 변환하여 연산 제어부(130)에 제공한다. 여기서, 부분 영역은 수용장(receptive field, 수용 영역)일 수 있고, 필터(마스크, 커널)의 크기에 따라 결정될 수 있다. 예를 들어, 입력 이미지가 32x32이고, 필터의 크기가 5x5이라면, 수용장은 5x5일 될 수 있다. 즉, 수용장은 필터의 크기와 같다.
페치부(120)는 도 3에 도시된 바와 같이 특징 맵의 첫 행의 첫 열부터 열 우선(또는 행 우선)으로 임의 n x n 부분 영역을 스캔(scan)하여 추출하고, 추출된 부분 영역을 연산 제어부(130)에 제공한다.
또한, 페치부(120)에는 버퍼가 구비되어, 메모리부(110)로부터 페치한 입력 특징 맵을 버퍼에 저장함으로써, 메모리부(110)에 상대적으로 적은 횟수로 액세스하면서 동시에 연산부(140)가 요구하는 많은 수의 데이터를 쉬지 않고 제공하여, 컨볼루션 신경망 연산 장치(100)의 효율을 극대화할 수 있는 장점이 있다.
상술한 페치부(120)는, 특징 맵의 n x n 크기의 부분 영역을 연산부(140)가 메모리부(110)로부터 직접 제공받을 때 발생할 수 있는 문제점, 즉, 특징 맵의 부분 영역을 연산부(140)가 메모리부(110)로부터 직접 제공받으려면 많은 수의 메모리 액세스가 필요하여 컨볼루션 신경망 연산 장치(100)의 효율이 저하되는 문제점을 해결할 수 있다. 즉, 페치부(120)가 메모리부(110)로부터 입력 특징 맵을 순차적으로 제공받고, 순차적으로 제공받은 입력 특징 맵을 n x n 크기의 부분 영역으로 변환하여 연산 제어부(130)에 제공함으로써, 컨볼루션 신경망 연산 장치(100)의 효율이 저하되는 문제점을 해결할 수 있다.
연산 제어부(130)는 입력 특징 맵의 부분 영역 내 '0'의 개수에 근거하여 컨볼루션 연산 수행 여부를 결정한다. 즉, 연산 제어부(130)는 특징 맵의 부분 영역내 '0'을 검색하여, '0'의 개수가 기 설정된 임계치 이상인 경우, 컨볼루션 연산을 스킵(skip)하여 '0'을 부분 영역에 대한 출력 데이터로 출력한다. 이때 연산 제어부(130)는 컨볼루션 연산을 스킵(skip)하기 위해 부분 영역을 연산부(140)에 제공하지 않을 수 있다. 또한, 연산 제어부(130)는 부분 영역내 '0'의 개수가 임계치 이상이 아닌 경우, 컨볼루션 연산을 수행하기 위해 부분 영역을 연산부(140)에 제공한다. 여기서, 임계치는 마스크(필터)의 크기, 스트라이드(stride), 이미지의 위치 등에 기초하여 설정된 값일 수 있다. 임계치를 설정하는 방법에 대한 상세한 설명은 후술하기로 한다.
예컨대, 연산 제어부(130)는 '0'의 개수가 필터 크기의 70~100%일 경우, 현재 필터가 슬라이딩하는 부분의 컨볼루션 연산을 skip하여 '0'을 출력하고, '0'의 개수가 필터의 크기의 0~70% 일 경우 컨볼루션 연산을 수행하도록 제어할 수 있다.
한편, 컨볼루션 신경망은 N×N 크기의 영상과 M×M 크기의 필터(마스크)를 컨볼루션하여 M2×N2만큼의 곱셈과 덧셈 연산을 수행한다. 즉, 입력 이미지와 필터의 가중치를 이용하여 컨볼루션 연산을 수행하고, 컨볼루션 연산 결과 값들을 활성화 함수의 입력으로 한 출력 값들에 의해 이미지에서 특징을 추출하며, 추출한 특징들이 특징 맵(Feature map)이 된다. 또한, 컨볼루션 신경망은 학습과정을 통해 필터들의 가중치(값)들을 학습하게 되고, 학습된 필터들의 가중치(값)들은 이미지와의 컨볼루션 연산을 하게 되며, 이렇게 만들어진 특징 맵은 활성화 함수인 ReLu에 의해 '0'값을 가질 비율이 높아진다. 또한, 컨볼루션 신경망에서 학습된 가중치들을 이용하여 추출된 특징은 이미지의 특정 부분만 추출한 것이기 때문에, 특징 맵의 값은 '0'의 비율이 높을 수 있다. 필터에 의해 컨볼루션 연산 시, 특징 맵의 값이 '0'이면, 컨볼루션 연산은 곱 연산이기 때문에 컨볼루션 연산을 할 필요가 없다. 따라서, 필터가 특징 맵에서 sliding될 때 특징 맵의 부분 영역내 '0'의 개수를 먼저 파악하여 컨볼루션 연산을 skip할 수 있다면 불필요한 연산을 줄일 수 있으며 연산을 위해 필터의 가중치를 불러올 필요가 없기 때문에 전력을 효율적으로 사용할 수 있다.
상술한 바와 같이 이미지의 특징 맵은 특징을 나타내는 부분을 제외하고 '0' 값을 가지게 되고, '0'값을 가지는 경우 컨볼루션 연산은 불필요하다. 특히 컨볼루션 신경망에서 층이 깊어질수록 많은 특징 맵들이 나오게 되고, 이 특징 맵에서 '0'인 값을 파악한다면 적응적으로 컨볼루션 연산을 스킵(skip)할 수 있다.
이에 연산 제어부(130)는 특징 맵의 부분 영역내 '0' 개수를 파악하고, '0'의 개수에 따라 컨볼루션 연산의 스킵 여부를 결정할 수 있다.
연산부(140)는 연산 제어부(130)의 결정에 따라, 부분 영역의 컨볼루션 연산을 수행한다.
연산부(140)는 n x n 크기의 부분 영역과 그에 대응하는 n x n 크기의 마스크(필터)를 이용하여 콘볼루션 연산을 수행하고, 컨볼루션 연산 결과를 출력 처리부(150)로 전송한다.
이러한 연산부(140)는 부분 영역의 각 값을 마스크의 해당 가중치와 각각 곱한 후, 합산하는 MAC(multiplication and accumulation)부(142), MAC부(142)의 출력결과를 활성화 함수의 입력으로 하여 데이터를 출력하는 활성화 함수부(144)를 포함한다.
활성화 함수부(144)는 MAC부(142)로부터 컨볼루션 연산 결과를 수신하고, 컨볼루션 연산 결과에 활성화 함수(activation function)을 적용할 수 있다. 여기서, 활성화 함수는 예컨대, sigmoid, ReLu(Rectified linear unit) 등을 포함할 수 있다. sigmoid는 0~1 사이의 값을 갖도록 하는 함수이기 때문에 히든 계층이 많아질수록 미분 값을 곱한 결과가 0에 근접하게 되어 초기 모델로 전달이 되질 않는다. 이러한 문제를 해결한 것이 ReLU로, ReLU는 입력 값이 0보다 작으면 '0'을 출력하고, 그렇지 않으면 값에 비례하여 계속 증가하는 함수이다. 따라서, 본 발명에서는 ReLU를 활성화 함수로 이용할 수 있다.
출력 처리부(150)는 연산 제어부(130)에서 출력된 출력 데이터(즉, '0')와 연산부(140)에서 출력된 출력 데이터를 메모리부(110)에 저장한다.
또한, 출력 처리부(150)는 컨볼루션 신경망의 다음(subsequent) 또는 다른 계층들의 처리에 사용하기 위한 특징 맵을 메모리부(110)에 저장(store)한다. 저장된 특징 맵은 컨볼루션 신경망의 다음 계층 처리에서, 입력 마스크로 사용될 수 있다.
상술한 설명을 통해, 콘볼루션 신경망의 컨볼루션 연산 장치(100)는 메모리부(110)에 저장된 데이터가 연산부(140)에서 컨볼루션 연산되어, 다시 메모리부(110)에 저장되는 피드백 구조임을 알 수 있다.
한편, 본 발명의 실시예에 따르면, 컨볼루션 신경망의 컨볼루션 연산 장치는 마스크(필터)의 크기, 스트라이드(stride), 이미지의 위치 중 적어도 하나에 기초하여 임계치를 설정하는 임계치 설정부(160)를 더 포함할 수 있다. 여기서, 임계치는 컨볼루션 연산을 스킵(skip)하기 위한 '0' 개수로, 사용하는 마스크(필터)의 크기, 스트라이드, 이미지의 크기, 컨볼루션 신경망 등에 따라 변할 수 있다.
임계치 설정부(160)는 마스크의 크기가 기 설정된 기준 크기 이상인 경우, 임계치를 낮추고, 기준 크기 이상이 아닌 경우, 임계치를 높일 수 있다. 여기서, 기준 크기는 예컨대, 마스크 크기의 70% 등으로 미리 설정된 값일 수 있다.
마스크가 커질수록 이미지의 한 부분을 많이 읽기 때문에 특징 추출이 잘 이루어져, 정확도가 높아진다. 그러나, 마스크의 크기가 커지면 컨볼루션 연산량이 증가하기 때문에 연산 시간이 늘어나게 되고 하드웨어 자원을 많이 차지하게 된다. 따라서, 마스크의 크기가 클 경우, 컨볼루션 연산 스킵(skip)을 위한 임계값을 낮추어도 정확도의 손실보다 연산속도와 하드웨어 자원을 사용함에 있어 이득을 얻을 수 있다. 반대로 마스크의 크기가 작은 경우, 컨볼루션 연산 스킵(skip)을 위한 임계치를 낮추면 정확도의 손실이 커질 수 있는 위험이 있다.
예를 들어, 도 4를 참조하여 마스크의 크기에 따른 연산량에 대해 설명하기로 한다. 이때, 특징 맵은 28*28이고, 스트라이드는 1로 동일하다고 가정하여 설명하기로 한다. (a)는 3*3 마스크를 사용한 경우로, 연산량은 '6084'일 수 있다. (b)는 5*5 마스크를 사용한 경우로, 연산량은 '14400'일 수 있다. 이를 통해 컨볼루션 마스크의 크기가 커지면 컨볼루션 연산량이 증가함을 알 수 있다. 따라서, (a)는 (b)보다 임계치를 높게 설정해야 한다.
따라서, 임계치 설정부(160)는 마스크(또는 필터)의 크기가 기 설정된 기준 크기 이상인 경우, 임계치를 기 설정된 기준 임계치 미만으로 낮추고, 기준 크기 이상이 아닌 경우, 임계치를 기준 임계치 이상으로 높일 수 있다. 예를 들어, 마스크의 기준 크기가 4*4이고, 기준 임계치가 기준크기의 80%(12개)로 설정된 경우에 대해 설명하기로 한다. 이 경우, 특징 맵의 부분 영역이 6*6이면, 임계치를 12개보다 적은 10개로 설정할 수 있다. 또한, 특징 맵의 부분 영역이 3*3이면, 임계치를 12보다 높은 14개로 설정할 수 있다.
또한, 임계치 설정부(160)는 스트라이드(stride)가 커질수록 임계치를 높일 수 있다. 여기서, 스트라이드는 마스크가 슬라이딩하는 간격을 말한다. 스트라이드가 클수록 이미지를 rough하게 훑어간다고 볼 수 있고, rough하게 이미지를 훑기 때문에 이미지의 특징을 제대로 추출하지 못하게 되어, 정확도는 떨어질 수 있다.
예를 들어, 도 5를 참조하여 스트라이드에 따른 연산량에 대해 설명하기로 한다. 이때, 특징 맵은 28*28이고, 4*4 마스크를 사용한다고 가정하여 설명하기로 한다. (a)는 스트라이드가 '1'인 경우로, 연산량은 '10000'일 수 있다. (b)는 스트라이드가 '2'인 경우로, 연산량은 '2704'일 수 있다. 이를 통해 스트라이드가 커지면, 연산량은 줄어드나, 정확도는 낮아지는 것을 알 수 있다. 따라서, (b)는 (a)보다 임계치를 높게 설정해야 해야, 정확도의 손실을 막을 수 있다.
임계치 설정부(160)는 스트라이드가 기 설정된 기준 스트라이드 이상인 경우 임계치를 기 설정된 기준 임계치 이상으로 높이고, 기준 스트라이드 이상이 아닌 경우 임계치를 기준 임계치 미만으로 낮출 수 있다.
예를 들면, 기준 스트라이드가 '1', 기준 임계치가 '6'으로 설정된 경우, 스트라이드가 2, 3 등으로 커지면, 임계치를 '7'. '8' 등으로 높일 수 있다.
또한, 임계치 설정부(160)는 이미지의 가장자리에서 중심부로 갈수록 임계치를 높일 수 있다. 이미지의 종류는 다양하기 때문에 이미지의 종류로 임계치를 특정하기 어려운 점이 있으나, 일반적으로 이미지의 주요 특징점들이 이미지 중심부 근처에 있다. 따라서, 가장자리에서 중심부로 갈수록 임계치를 높이면 정확도의 손실을 줄이면서 연산량과 속도에 이득을 볼 수 있다.
예를 들어, 도 6과 같은 이미지에서 A영역의 임계치가 '10'이면, B영역은 '8', C영역은 '6'으로, 이미지의 중심부에 바깥으로 갈수록 임계치는 낮출 수 있다.
제어부(170)는 컨볼루션 연산 장치(100)의 다양한 구성부들의 동작을 제어할 수 있다.
상기와 같이 구성된 컨볼루션 연산 장치(100)는 현재 계층의 현재 특징 맵에 대한 마지막 부분 영역까지 순차적으로 도 3에 도시된 방향으로 마스크(필터)를 슬라이딩해가면서 컨볼루션 연산을 수행할 수 있다. 도 3에서는 스트라이드가 '1'인 경우로 예시하였으나, 스트라이드는 다양한 값으로 설정될 수 있다.
한편, 본 발명의 일 실시예에 따르면, 메모리부(110), 페치(fetch)부(120), 연산 제어부(130), 연산부(140), 출력 처리부(150)는 그 중 적어도 일부가 외부 단말 장치나 외부 서버 등과 통신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈로서 컨볼루션 연산 장치(100)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치상에 저장될 수 있다. 또한, 이러한 프로그램 모듈들은 컨볼루션 연산 장치(100)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 전술한 특정 동작을 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.
도 7은 본 발명의 일 실시예에 따른 컨볼루션 신경망에서 컨볼루션 연산 방법을 나타낸 흐름도이다.
도 7을 참조하면, 컨볼루션 연산 장치는 입력 특징 맵을 n*n크기의 부분 영역으로 분할하고(S610), 입력 특징 맵의 부분 영역 내 '0'을 탐색하여(S610), '0'의 개수가 기 설정된 임계치 이상인지를 판단한다(S620). 여기서, 임계치는 마스크(필터)의 크기, 스트라이드(stride), 이미지의 위치 등에 기초하여 설정된 값일 수 있다.
단계 S620의 판단결과, '0'의 개수가 임계치 이상이면, 컨볼루션 연산 장치는 컨볼루션 연산을 스킵하여 '0'을 출력한다(S630).
만약, 단계 S620의 판단결과, '0'의 개수가 임계치 이상이 아니면, 컨볼루션 연산 장치는 해당 부분 영역에 대한 컨볼루션 연산을 수행하고(S640), 컨볼루션 연산 결과를 활성화 함수의 입력하여 값을 출력한다(S640). 즉, 컨볼루션 연산 장치는 해당 부분 영역의 각 값을 마스크(필터)의 해당 가중치와 각각 곱한 후, 합산한다. 그런 후, 컨볼루션 연산 장치는 컨볼루션 연산 결과를 활성화 함수의 입력으로 하여 값을 출력한다. 이때, 활성화 함수는 ReLU일 수 있고, 컨볼루션 연산 장치는 ReLU에 의해 입력 값이 0보다 작으면 '0'을 출력하고, 그렇지 않으면 값에 비례하여 계속 증가하는 값을 출력할 수 있다.
컨볼루션 연산 장치는 단계 S630 또는 단계 S640에서 출력된 값을 메모리부에 저장한다(S650).
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100 : 컨볼루션 연산 장치
110 : 메모리부
120 : 페치(fetch)부
130 : 연산 제어부
140 : 연산부
150 : 출력 처리부
160 : 임계치 설정부
170 : 제어부

Claims (12)

  1. 입력 특징 맵의 부분 영역내 '0'의 개수에 근거하여 컨볼루션 연산 수행 여부를 결정하는 연산 제어부; 및
    상기 연산 제어부의 결정에 따라, 상기 부분 영역의 컨볼루션 연산을 수행하는 연산부;
    를 포함하는 컨볼루션 신경망의 컨볼루션 연산 장치.
  2. 제1항에 있어서,
    상기 연산 제어부는,
    상기 부분 영역내 '0'을 검색하고, 상기 검색된 '0'의 개수가 기 설정된 임계치 이상인 경우, 컨볼루션 연산을 스킵(skip)하여 '0'을 출력하고, 임계치 이상이 아닌 경우 상기 부분 영역을 상기 연산부에 제공하는 것을 특징으로 하는 컨볼루션 신경망의 컨볼루션 연산 장치.
  3. 제1항에 있어서,
    마스크의 크기, 스트라이드(stride), 이미지의 위치 중 적어도 하나에 기초하여 임계치를 설정하는 임계치 설정부를 더 포함하는 것을 특징으로 하는 컨볼루션 신경망의 컨볼루션 연산 장치.
  4. 제3항에 있어서,
    상기 임계치 설정부는,
    상기 마스크의 크기가 기준 크기 이상인 경우, 임계치를 기준 임계치 미만으로 낮추고, 기준 크기 이상이 아닌 경우, 임계치를 기준 임계치 이상으로 높이는 것을 특징으로 하는 컨볼루션 신경망의 컨볼루션 연산 장치.
  5. 제3항에 있어서,
    상기 임계치 설정부는,
    상기 스트라이드가 기준 스트라이드 이상인 경우 임계치를 기준 임계치 이상으로 높이고, 기준 스트라이드 이상이 아닌 경우 임계치를 기준 임계치 미만으로 낮추는 것을 특징으로 하는 컨볼루션 신경망의 컨볼루션 연산 장치.
  6. 제3항에 있어서,
    상기 임계치 설정부는,
    상기 이미지의 가장자리에서 중심부로 갈수록 임계치를 높이는 것을 특징으로 하는 컨볼루션 신경망의 컨볼루션 연산 장치.
  7. 컨볼루션 연산 장치가 컨볼루션 연산을 수행하는 방법에 있어서,
    입력 특징 맵의 부분 영역내 '0'의 개수에 근거하여 컨볼루션 연산 수행 여부를 결정하는 단계; 및
    컨볼루션 연산 수행 결정 시, 상기 부분 영역의 컨볼루션 연산을 수행하는 단계;
    를 포함하는 컨볼루션 연산 방법.
  8. 제7항에 있어서,
    상기 컨볼루션 연산 수행 여부를 결정하는 단계는,
    상기 부분 영역내 '0'을 검색하고, 상기 검색된 '0'의 개수가 기 설정된 임계치 이상인 경우, 상기 부분 영역의 컨볼루션 연산을 스킵(skip)하여 '0'을 출력하는 것을 특징으로 하는 컨볼루션 연산 방법.
  9. 제8항에 있어서,
    상기 임계치는,
    마스크의 크기, 스트라이드(stride), 이미지의 위치 중 적어도 하나에 기초하여 설정된 값인 것을 특징으로 하는 컨볼루션 연산 방법.
  10. 제9항에 있어서,
    상기 임계치는,
    상기 마스크의 크기가 기준 크기 이상인 경우, 기준 임계치 미만이고, 기준 크기 이상이 아닌 경우, 기준 임계치 이상인 것을 특징으로 하는 컨볼루션 연산 방법.
  11. 제9항에 있어서,
    상기 임계치는,
    상기 스트라이드가 기준 스트라이드 이상인 경우 기준 임계치 이상이고, 기준 스트라이드 이상이 아닌 경우 기준 임계치 미만인 것을 특징으로 하는 컨볼루션 연산 방법.
  12. 제9항에 있어서,
    상기 임계치는,
    상기 이미지의 가장자리에서 중심부로 갈수록 높아지는 것을 특징으로 하는 컨볼루션 연산 방법.







KR1020170133525A 2017-10-13 2017-10-13 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법 KR20190041819A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170133525A KR20190041819A (ko) 2017-10-13 2017-10-13 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법
US16/059,695 US20190114532A1 (en) 2017-10-13 2018-08-09 Apparatus and method for convolution operation of convolution neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170133525A KR20190041819A (ko) 2017-10-13 2017-10-13 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20190041819A true KR20190041819A (ko) 2019-04-23

Family

ID=66095947

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170133525A KR20190041819A (ko) 2017-10-13 2017-10-13 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법

Country Status (2)

Country Link
US (1) US20190114532A1 (ko)
KR (1) KR20190041819A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210128616A (ko) * 2020-04-17 2021-10-27 인천대학교 산학협력단 합성곱 신경망 모델에 포함된 합성곱 필터의 개수 조정을 통해 합성곱 연산의 효율을 향상시키기 위한 컴퓨팅 장치 및 그 동작 방법
US11681354B2 (en) 2020-02-06 2023-06-20 Samsung Electronics Co., Ltd. Operating method of power optimization scheduler and computing apparatus including power optimization scheduler

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321819B2 (en) * 2019-01-07 2022-05-03 Hcl Technologies Limited System and method for performing a convolution operation
CN113454690A (zh) * 2019-02-21 2021-09-28 皇家飞利浦有限公司 用于分割和绘制反向数据的方法和系统
CN110263920B (zh) * 2019-06-21 2021-08-10 北京石油化工学院 卷积神经网络模型及其训练方法和装置、巡检方法和装置
US11216911B2 (en) * 2019-10-31 2022-01-04 Dell Products L.P. Device manufacturing cycle time reduction using machine learning techniques
CN112396165A (zh) * 2020-11-30 2021-02-23 珠海零边界集成电路有限公司 用于卷积神经网络的运算装置和方法
EP4123526A1 (en) * 2021-07-19 2023-01-25 ALE International Method and system for calculating and sharing a user occupancy status relative to use of multimedia applications
WO2023238237A1 (ja) * 2022-06-07 2023-12-14 日本電信電話株式会社 画像処理装置、画像処理方法、及び画像処理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681354B2 (en) 2020-02-06 2023-06-20 Samsung Electronics Co., Ltd. Operating method of power optimization scheduler and computing apparatus including power optimization scheduler
KR20210128616A (ko) * 2020-04-17 2021-10-27 인천대학교 산학협력단 합성곱 신경망 모델에 포함된 합성곱 필터의 개수 조정을 통해 합성곱 연산의 효율을 향상시키기 위한 컴퓨팅 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20190114532A1 (en) 2019-04-18

Similar Documents

Publication Publication Date Title
KR20190041819A (ko) 컨볼루션 신경망의 컨볼루션 연산 장치 및 방법
CN112183718B (zh) 一种用于计算设备的深度学习训练方法和装置
CN107292352B (zh) 基于卷积神经网络的图像分类方法和装置
KR20200022739A (ko) 데이터 증강에 기초한 인식 모델 트레이닝 방법 및 장치, 이미지 인식 방법 및 장치
CN110503192A (zh) 资源有效的神经架构
EP3340129A1 (en) Artificial neural network class-based pruning
CN112418392A (zh) 一种神经网络构建方法以及装置
US11144782B2 (en) Generating video frames using neural networks
CN116415654A (zh) 一种数据处理方法及相关设备
CN111260020B (zh) 卷积神经网络计算的方法和装置
CN115482467B (zh) 一种智慧园林的自动灌溉系统
CN109101624A (zh) 对话处理方法、装置、电子设备及存储介质
CN111882031A (zh) 一种神经网络蒸馏方法及装置
US20220129740A1 (en) Convolutional neural networks with soft kernel selection
CN106991999B (zh) 语音识别方法及装置
CN110647974A (zh) 深度神经网络中的网络层运算方法及装置
CN112232355A (zh) 图像分割网络处理、图像分割方法、装置和计算机设备
CN111931901A (zh) 一种神经网络构建方法以及装置
CN114925320B (zh) 一种数据处理方法及相关装置
CN112529149A (zh) 一种数据处理方法及相关装置
CN113627163A (zh) 一种注意力模型、特征提取方法及相关装置
CN113656563A (zh) 一种神经网络搜索方法及相关设备
CN117217280A (zh) 神经网络模型优化方法、装置及计算设备
CN114611692A (zh) 模型训练方法、电子设备以及存储介质
KR20190059033A (ko) 심층 신경망 기반 음성 인식 시스템에서의 특이값 분해를 이용한 입력 벡터 생성 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
E601 Decision to refuse application
E801 Decision on dismissal of amendment