KR20210011462A - 신경망의 양자화 파라미터 확정방법 및 관련제품 - Google Patents

신경망의 양자화 파라미터 확정방법 및 관련제품 Download PDF

Info

Publication number
KR20210011462A
KR20210011462A KR1020207038085A KR20207038085A KR20210011462A KR 20210011462 A KR20210011462 A KR 20210011462A KR 1020207038085 A KR1020207038085 A KR 1020207038085A KR 20207038085 A KR20207038085 A KR 20207038085A KR 20210011462 A KR20210011462 A KR 20210011462A
Authority
KR
South Korea
Prior art keywords
quantization
data
target
repetition
bit width
Prior art date
Application number
KR1020207038085A
Other languages
English (en)
Other versions
KR102656332B1 (ko
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 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드
Publication of KR20210011462A publication Critical patent/KR20210011462A/ko
Application granted granted Critical
Publication of KR102656332B1 publication Critical patent/KR102656332B1/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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1476Error detection or correction of the data by redundancy in operation in neural 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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/0495Quantised networks; Sparse networks; Compressed 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Abstract

본 기술방안은 보드 카드에 관한 것이며, 상기 보드 카드는 메모리 디바이스, 인터페이스 장치와 제어 디바이스 및 인공지능 칩을 포함하며; 상기 인공지능 칩은 상기 메모리 디바이스, 상기 제어 디바이스 및 상기 인터페이스 장치와 각각 연결되고; 상기 메모리 디바이스는 데이터를 저장하는 데 사용되고; 상기 인터페이스 장치는 상기 인공지능 칩과 외부기기 사이의 데이터 전송을 실현하는 데 사용되며; 상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다. 상기 보드 카드는 인공지능 연산을 실행하는 사용될 수 있다.

Description

신경망의 양자화 파라미터 확정방법 및 관련제품{METHOD FOR DETERMINING QUANTIZATION PARAMETER OF NEURAL NETWORK, AND RELATED PRODUCT}
본 발명의 실시예는 신경망의 양자화 파라미터 확정방법 및 관련제품에 관한 것이다.
신경망(neural network, NN)은 생물학적 신경망의 구조와 기능을 모방한 수학적 모델 또는 계산모델이다. 신경망은 샘플 데이터의 훈련을 통해 네트워크 가중치와 한계 값을 지속적으로 수정하여 오차함수를 음의 기울기 방향으로 강하시켜 소망의 출력에 근사한다. 이것은 널리 응용되고 있는 식별분류모델이며, 함수근사, 모델식별분류, 데이터 압축 및 시간열 예측 등에 많이 채용된다.
실제 운용에서 신경망의 데이터는 32Bit가 일반적이며, 종래의 신경망에서 데이터는 더 많은 비트를 차지하여 정밀도는 확보되지만 큰 저장공간 및 처리대역폭이 필요하고, 비용이 상승하고 있다.
상술한 기술적 문제를 해결하기 위해 본 발명은 데이터 비트폭을 조정하기 위한 방법 및 관련제품을 제안한다.
상기 목적을 달성하기 위해, 본 발명은 데이터 비트폭을 조정하기 위한 방법을 제공하며, 상기 방법은,
양자화 대상 데이터에 대해 양자화 처리를 수행하기 위한 상기 양자화 대상 데이터의 상기 양자화 처리 후 양자화 된 데이터의 비트폭을 나타내는 데이터 비트폭을 회득하는 단계;
상기 데이터 비트폭에 기초하여 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 수행하여 상기 1그룹의 양자화 대상 데이터를 상기 데이터 비트폭을 갖는 1그룹의 양자화 된 데이터로 변환하는 단계;
상기 1그룹의 양자화 대상 데이터와 상기 1그룹의 양자화 된 데이터를 비교하여 상기 데이터 비트폭과 관련된 양자화 오차를 확정하는 단계; 및
확정된 상기 양자화 오차에 근거하여 상기 데이터 비트폭을 조정하는 단계를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위해, 본 발명은 데이터 비트폭을 조정하는 장치를 제공하는 바, 메모리 및 프로세서를 포함하며, 상기 메모리에는 프로세서에 의해 실행가능한 컴퓨터 프로그램이 저장되어 있고, 상기 프로세서가 상기 컴퓨터 프로그램을 실행하면 전술한 방법의 단계를 구현한다.
상기 목적을 달성하기 위해, 본 발명은 컴퓨터 판독 가능한 저장매체를 제공하는 바, 프로세서에 의해 실행되면 저술한 방법의 단계를 구현하는 컴퓨터 프로그램이 저장되어 있다.
상기 목적을 달성하기 위해, 본 발명은 데이터 비트폭을 조정하는 기기를 제공하는 바, 상기 기기는,
양자화 대상 데이터에 대해 양자화 처리를 수행하기 위한 상기 양자화 대상 데이터의 상기 양자화 처리 후 양자화 된 데이터의 비트폭을 나타내는 데이터 비트폭을 회득하기 위한 획득유닛;
상기 데이터 비트폭에 기초하여 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 수행하여 상기 1그룹의 양자화 대상 데이터를 상기 데이터 비트폭을 갖는 1그룹의 양자화 된 데이터로 변환하기 위한 양자화 유닛;
상기 1그룹의 양자화 대상 데이터와 상기 1그룹의 양자화 된 데이터를 비교하여 상기 데이터 비트폭과 관련된 양자화 오차를 확정하기 위한 확정유닛; 및
확정된 상기 양자화 오차에 근거하여 상기 데이터 비트폭을 조정하기 위한 조정유닛을 포함한다.
신경망 연산과정에서 양자화하는 경우 본 발명의 기술방안을 이용하여, 인공지능 프로세서가 신경망 연산과정에서 데이터를 양자화하는 데 사용되는 데이터 비트폭을 확정하고 고정밀도 데이터를 저정밀도 고정 소수점 수로 변환하면 신경망 연산과정에 관련된 모든 데이터 저장공간의 크기를 줄일 수 있다. 예를 들어: float32를 fix8로 변환하면 모델 파라미터를 4배 줄일 수 있다. 데이터 저장공간이 작아지므로 신경망의 배치시에 보다 작은 공간을 사용하게 되며, 인공지능 프로세서 칩상의 온 칩 메모리에 보다 많은 데이터를 수용할 수 있고, 인공지능 프로세서 칩의 액세스 데이터를 감소시키고, 계산성능을 향상시킨다.
이하, 본 발명 실시예의 기술방안을 보다 명확하게 설명하기 위해 실시예의 도면에 대해 간단히 설명하지만, 다음에 설명되는 도면이 본 발명의 일부 실시예에 불과하며 본 발명에 대한 제한이 아닌 것은 분명할 것이다.
도1은 신경망구조의 모식도이고;
도2는 본 발명에 따른 신경망의 양자화 파라미터 확정방법의 흐름도이고;
도3은 대칭되는 고정 소수점 수를 나타내는 모식도이고;
도4는 오프셋이 도입된 고정 소수점 수를 나타내는 모식도이고;
도5A는 훈련과정에 있어서 신경망의 가중치 데이터 변동폭의 제1 그래프이고;
도5B는 훈련과정에 있어서 신경망의 가중치 데이터 변동폭의 제2 그래프이고;
도6은 목표반복간격을 확정하는 방법의 제1 흐름도이고;
도7은 목표반복간격을 확정하는 방법의 제2 흐름도이고;
도8A는 목표반복간격을 확정하는 방법의 제3 흐름도이고;
도8B는 본 발명의 일 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도8C는 본 발명의 다른 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도8D는 본 발명의 또 다른 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도8E는 본 발명의 또 하나의 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도8F는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이고;
도8G는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이고;
도8H는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이고;
도8I는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이고;
도8J는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이고;
도8K는 본 발명의 일 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도8L은 본 발명의 일 실시예의 양자화 대상 데이터의 연산과정 중 변동추세를 나타내는 도이고;
도8M은 본 발명의 일 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도8N은 본 발명의 일 실시예에 있어서 포인트 위치 변동폭의 확정방법을 나타내는 흐름도이고;
도8O는 본 발명의 일 실시예에 있어서 제2 균치의 확정방법을 나타내는 흐름도이고;
도8P는 본 발명의 다른 실시예에 있어서 제2 균치의 확정방법을 나타내는 흐름도이고;
도8Q는 본 발명의 다른 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도8R은 본 발명의 일 실시예의 양자화 파라미터 조정방법 중 양자화 파라미터의 조정을 나타내는 흐름도이고;
도8S는 본 발명의 다른 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도8T는 본 발명의 또 다른 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도8U는 본 발명의 또 다른 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도8V는 본 발명의 또 하나의 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도9는 본 발명에 제안된 신경망의 양자화 파라미터 확정장치의 하드웨어 구성의 블록도이고;
도10은 본 발명에 제안된 신경망의 양자화 파라미터 확정장치를 인공지능 프로세서 칩에 적용한 응용 모식도이고;
도11은 본 발명에 제안된 신경망의 양자화 파라미터 확정기기의 기능 블록도이고;
도12는 본 발명 실시예의 보드 카드의 구조 블록도이다.
신경망의 양자화 문제를 해결하기 위해, 다음과 같은 방안(중국특허출원 제201910505239.7호)에 포함된 도13 내지 도43을 제공한다.
도13은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도14는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도15은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도16는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도17는 본 발명 실시예에 따른 신경망의 양자화방법 중 양자화 파라미터가 오프셋을 포함하지 않을 때 양자화 전후의 데이터를 나타내는 대응 모식도이다.
도18은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도19은 본 발명 실시예에 따른 신경망의 양자화방법 중 양자화 파라미터가 오프셋을 포함할 때 양자화 전후의 데이터를 나타내는 대응 모식도이다.
도20은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도21는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도22은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도23은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도24는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도25은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도26는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도27는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도28은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도29은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도30은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도31는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도32은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도33은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도34는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도35은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도36는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도37는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도38은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도39은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도40은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도41는 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도42은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도43은 본 발명 실시예에 따른 보드 카드를 나타내는 구조 블록도이다.
양자화 파라미터의 조정문제를 해결하기 위해, 다음과 같은 방안(중국특허출원 제201910528537.8호)에 포함된 도44 내지 도675을 제공한다.
도44은 본 발명의 일 실시예의 양자화 파라미터 조정방법의 적용환경을 나타내는 모식도이고;
도45는 본 발명의 일 실시예의 양자화 대상 데이터와 양자화 데이터의 대응관계를 나타내는 모식도이고;
도46은 본 발명의 일 실시예의 양자화 대상 데이터를 나타내는 변환 모식도이고;
도47는 본 발명의 일 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도48는 본 발명의 일 실시예의 양자화 대상 데이터의 연산과정 중 변동추세를 나타내는 도이고;
도49은 본 발명의 일 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도50은 본 발명의 일 실시예에 있어서 포인트 위치 변동폭의 확정방법을 나타내는 흐름도이고;
도51은 본 발명의 일 실시예에 있어서 제2 균치의 확정방법을 나타내는 흐름도이고;
도52는 본 발명의 일 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도53은 본 발명의 다른 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도54은 본 발명의 또 다른 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도55는 본 발명의 또 하나의 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도56은 본 발명의 다른 실시예에 있어서 제2 균치의 확정방법을 나타내는 흐름도이고;
도57는 본 발명의 다른 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도58는 본 발명의 일 실시예의 양자화 파라미터 조정방법 중 양자화 파라미터의 조정을 나타내는 흐름도이고;
도59은 본 발명의 다른 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도60은 본 발명의 또 다른 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도61은 본 발명의 또 다른 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도62는 본 발명의 또 하나의 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도63은 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도64은 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도65는 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도66은 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도67는 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도68는 본 발명 실시예에 따른 보드 카드를 나타내는 구조 블록도이다.
이하, 본 발명의 실시예에 따른 도면을 참조하여 본 발명의 실시예에 따른 기술방안을 명확하고 완전하게 설명한다. 다음 설명되는 실시예는 단지 본 발명의 일부 실시예에 불과하며, 모든 실시예가 아니다는 점이 분명하다. 당업자가 창조적인 노력 없이 본 발명의 실시예에 기초하여 획득한 모든 다른 실시예는 모두 본 발명의 보호범위에 속한다.
본 발명의 명세서, 청구범위 및 첨부된 도면에 있어서의 "제1", "제2", "제3", "제4" 등 용어는 서로 다른 대상을 구분하는 데에 사용되며, 특정 순서를 설명하는 데에 사용되는 것은 아니다. 또한, 본 발명의 명세서, 청구범위 및 첨부된 도면에 있어서 사용되는 "포함한다"와 "가진다"는 용어는 설명된 특징, 전체, 단계, 동작, 요소 및/또는 구성요소의 존재를 나타내는 데 사용되지만 하나 이상의 다른 특징, 전체, 단계, 동작, 요소, 구성요소 및/또는 이들 컬렉션의 존재 또는 추가를 배제하는 것이 아니다.
또한, 본 발명 명세서에서 사용된 용어는 특정 실시예를 설명하기 위한 것이며 본 발명 명세서를 제한하려는 의도가 아님을 이해해야 한다. 본 발명 명세서 및 청구범위에서 사용된 바와 같이, 문맥이 다른 상황을 명확하게 나타내지 않는 한, "a", "an" 및 "the"의 단수형태는 복수형태를 포함하는 것으로 의도된다. 본 발명 명세서 및 청구범위에서 사용된 용어 "및/또는"은 관련하여 나열된 하나 이상의 항목 및 모든 가능한 조합의 임의의 조합을 지칭하고 이러한 조합을 포함한다는 것을 추가로 이해해야 한다.
본 명세서 및 청구범위에서 사용되는 바와 같이, 용어 "만약"은 문맥에 따라 "... 때" 또는 "... 면" 또는 "확정에 대한 응답으로" 또는 "검출에 대한 응답으로" 로 해석 될 수 있다. 유사하게, "확정된 경우" 또는 "검출된 경우 [설명된 조건 또는 이벤트]" 라는 문구는 문맥에 따라 "일단 확정되면" 또는 "확정에 대한 응답으로" 또는 "일단 검출되면 [설명된 조건 또는 이벤트]" 또는 "검출에 대한 응답 [설명된 조건 또는 이벤트]" 의 의미로 해석될 수 있다.
기술용어정의:
부동 소수점 수: IEEE 부동 소수점 표준은
Figure pat00001
의 형식으로 하나의 숫자를 나타낸다. 여기에서, sign은 부호 비트이고, 0은 정의 수를 나타내며, 1은 부의 수를 나타내며, E는 지수를 나타내고, 부동 소수점 수에 가중치를 부여하며, 가중치는 2의 E제곱(부의 수 제곱일 수 있음)이고;
Figure pat00002
는 가수를 나타내며,
Figure pat00003
는 바이너리 소수이고, 그 범위는
Figure pat00004
또는
Figure pat00005
이다. 컴퓨터에서의 부동 소수점 수의 표현은 3개의 필드로 나뉘며, 이들 필드를 각각 인코딩한다.
(1) 단일 부호 비트s는 부호s를 직접 인코딩한다.
(2) k비트의 지수 필드는 지수를 인코딩하며,
Figure pat00006
이다.
(3) n비트의 소수 필드mantissa는 가수를 인코딩한다. 그러나 인코딩 결과는 지수 단계가 모두 0인지 여부에 의존한다.
고정 소수점 수: 공유지수(exponent), 부호 비트(sign), 가수(mantissa)의 세 부분으로 구성된다. 그 중 공유지수는 지수가 양자화를 필요로 하는 실수집합 내에서 공유되는 것을 의미하고, 부호 비트는 고정 소수점 수의 정부를 나타낸다. 가수는 고정 소수점 수의 유효자리수, 즉 정밀도를 결정한다. 8bit 고정 소수점 수 유형을 예로 들어 수치계산방법은 다음과 같다.
Figure pat00007
바이너리 소수: 임의의 십진수는 모두 수학식
Figure pat00008
으로 표현할 수 있다. 예를 들어 십진수 12.34를 수학식1로 표현하면
Figure pat00009
이며, 소수점의 왼쪽은 10의 양의 제곱으로 계산하고, 소수점의 오른쪽은 10의 음의 제곱으로 계산한다. 마찬가지로 바이너리 소수도 이런 방식으로 표현할 수 있다. 즉 소수점 왼쪽은 2의 양의 제곱으로, 소수점의 오른쪽은 2의 음의 제곱으로 계산하며, 십진소수 575는 바이너리 소수 10111로 표현할 수 있다. 당해 바이너리 소수는
Figure pat00010
로 표현된다.
오버플로(overflow): 고정 소수점 연산기에서는 수의 표현에 일정한 범위가 있다. 연산과정에서 수의 크기가 고정 소수점 수가 표현할 수 있는 범위를 초과하는 경우 "오버플로"라고 한다.
KL(Kullback-Leibler divergence) 분산도: 상대 엔트로피(relative entropy), 정보분산도(information divergence), 정보이득(information gain)이라고도 한다. KL분산도는 두 확율분포 P와 Q 사이의 차이 비대칭성의 척도이다. KL분산도는 Q 기반 코드를 사용하여 P로부터의 샘플을 인코딩하기 위해 평균적으로 필요로 되는 추가 비트 수를 측정하기 윈한 것이다. 전형적으로는, P는 데이터의 실제분포를 나타내고, Q는 데이터의 이론분포, 모델분포, 또는 P의 근사분포를 나타낸다.
데이터 비트폭: 데이터를 나타내는 데 사용되는 비트수이다.
양자화: 종래 32bit또는 64bit로 표현된 고정밀도 수를 메모리 공간을 덜 차지하는 고정 소수점 수로 변환한는 과정이다. 고정밀도 수를 고정 소수점 수로 변환하는 과정에서는 정밀도에 일정한 손실이 생긴다.
이하, 본 발명 실시예에서 제공하는 신경망의 양자화 파라미터 확정방법 및 관련제품의 구체적인 실시예에 대하여 첨부도면을 참조하면서 상세히 설명한다.
신경망(neural network, NN)은 다수의 뉴런이 연결되어 계산되는 생물학적 신경망의 구조와 기능을 모방한 수학적 모델이다. 따라서, 신경망은 계산모델로서 다수의 노드(또는 "뉴런"이라고 함)가 서로 연결되어 구성된다. 각 노드는 활성화 함수(activation function)라고 불리는 특정한 출력함수이다. 두 뉴런 사이의 각 연결은 모두 당해 연결을 통과하는 신호에 곱해지는 값을 나타내며 가중치라고 한다. 이는 신경망의 기억에 상당하다. 신경망의 출력은 뉴런 사이의 연결방식 및 가중치와 활성화 함수에 따라 다르다. 신경망에서 뉴런은 신경망의 기본단위이다. 이는 특정 수의 입력과 바이어스를 취득하고, 신호(값)가 도착하면 가중치를 곱한다. 연결은 하나의 뉴런을 다른 층 또는 동일한 층의 다른 뉴런에 연결하는 것이며, 연결에는 관련된 가중치가 수반된다. 또한, 바이어스는 뉴런의 추가 입력이며, 항상 1이고, 자체의 연결 가중치를 가진다. 이것에 의해 모든 입력이NULL(모두 0)이여도 뉴런이 활성화된다.
응용에서 비선형 함수가 신경망 내의 뉴런에 적용되지 않으면 신경망은 선형 함수일 뿐이며 단일 뉴런보다 강력하지 않다. 하나의 신경망의 출력결과를 0으로부터 1 사이로 하면, 예를 들어, 고양이와 개의 판별 예에서 0에 가까운 출력을 고양이로 간주하고, 1에 가까운 출력을 개로 간주할 수 있다. 이 목표를 달성하기 위해 신경망에서 활성화 함수, 예를 들어 시그모이드(sigmoid) 활성화 함수를 도입한다. 이 활성화 함수와 관련하여 반환 값이 0과 1 사이의 숫자임을 알면 된다. 따라서, 활성화 함수는 비선형성을 신경망에 도입하기 위해 사용되며, 신경망 연산결과를 작은 범위로 줄인다. 실제로는 활성화 함수가 어떻게 표현되는지는 중요하지 않으며, 일부 가중치를 통해 비선형 함수를 파라미터화하는 것이 중요하다. 이들 가중치를 변경함으로써 비선형 함수를 변경할 수 있다.
도1에 도시된 바와 같이, 신경망 구조모식도이다. 도1에 도시된 신경망에는 입력층, 은닉층 및 출력층의 3층이 포함되어 있으며, 도1에 도시된 은닉층은 5층이다. 그 중에서 신경망의 가장 왼쪽층을 입력층이라고 하며, 입력층의 뉴런을 입력뉴런이라고 한다. 입력층은 신경망의 제1 층으로서 필요한 입력신호(값)를 수신하고 다음 층으로 전달한다. 일반적으로 입력신호(값)에 대하여 작업하지 않으며, 관련된 가중치와 바이어스가 없다. 도1에 도시된 신경망에는 4개의 입력신호x1, x2, x3, x4가 있다.
은닉층은 입력 데이터에 다른 변환을 적용하기 위한 뉴런(노드)을 포함한다. 도1에 도시된 신경망에는 5개의 은닉층이 있다. 제1 은닉층에 4개의 뉴런(노드), 제2 층에 5개의 뉴런, 제3 층에 6개의 뉴런, 제4 층에 4개의 뉴런, 제5 층에 3개의 뉴런이 있다. 마지막으로 은닉층은 뉴런의 연산 값을 출력층에 전달한다. 도1에 도시된 신경망은 5개의 은닉층 중 각 뉴런 사이를 완전히 연결한다. 즉 각 은닉층의 각 뉴런은 모두 다음 층의 각 뉴런에 연결된다. 설명할 필요가 있는 것은 각 신경망의 은닉층이 완전히 연결되는 것이 아니다는 점이다.
도1 신경망의 맨 오른쪽 층을 출력층이라고 하며, 출력층의 뉴런을 출력뉴런이라고 한다. 출력층은 마지막 은닉층으로부터 출력을 받는다. 도1에 도시된 신경망에서 출력층은 3개의 뉴런이 있어 3개의 출력신호y1, y2, y3이 있다.
실제 응용에서는 미리 대량의 샘플 데이터(입력 및 출력을 포함)를 주어 초기 신경망을 훈련하고, 훈련이 완료된 후에 훈련된 신경망을 얻는다. 당해 신경망은 실제환경의 향후 입력에 대해 올바른 출력을 줄 수 있다.
신경망의 훈련에 대해 논의하기 전에 손실함수를 정의할 필요가 있다. 손실함수는 신경망이 어느 특정 태스크를 실행할 때 성능을 가늠하는 표현함수이다. 일부 실시예에서 손실함수는 다음과 같이 얻을 수 있다. 어느 신경망을 훈련하는 과정에서 각 샘플 데이터에 대하여 모두 신경망에 따라 전달되어 출력 값을 얻게 되며, 이 출력 값과 기대 값의 차이를 제곱하여 산출한 손실함수가 예측 값과 실제 값 사이의 거리로 되고, 신경망을 훈련하는 목적이 이 거리 또는 손실함수의 값을 작게 하는 것이다. 일부 실시예에서 손실함수는 다음과 같이 표현될 수 있다.
Figure pat00011
상기 수학식에서
Figure pat00012
는 기대 값을 나타내고,
Figure pat00013
는 샘플 데이터 집합 중 각 샘플 데이터가 신경망을 통해 얻은 실제결과를 가리키며,
Figure pat00014
는 샘플 데이터 집합 중 각 샘플 데이터의 인덱스이다.
Figure pat00015
은 기대 값
Figure pat00016
와 실제결과
Figure pat00017
사이의 오차 값을 나타낸다.
Figure pat00018
은 샘플 데이터 집합 중 샘플 데이터의 개수이다. 역시 고양이와 개의 판별을 예로 한다. 고양이와 개의 픽쳐로 구성된 한 데이터 세트에 있어서, 픽쳐가 개인 경우 대응하는 라벨은 1이고, 픽쳐가 고양이인 경우 대응하는 라벨은 0이다. 이 라벨이 상술한 수학식 중 기대 값
Figure pat00019
에 대응되고, 신경망에 매개 샘플픽쳐를 전달할 때 실제로는 신경망을 통해 식별결과를 획득하려고 한 것이다. 손실함수를 계산하기 위해서는 샘플 데이터 세트 중 매개 샘플픽쳐를 거쳐 각 샘플픽쳐에 대응하는 실제결과
Figure pat00020
를 획득한 다음에 위의 정의에 따라 손실함수를 계산할 필요가 있다. 손실함수가 상대적으로 크면 신경망이 아직 제대로 훈련되지 않았으며 가중치를 추가로 조정해야 함을 의미한다.
신경망의 훈련을 시작할 때 가중치를 랜덤으로 초기화해야 한다. 초기화된 신경망은 분명히 좋은 결과를 제공하지 않는다. 훈련과정에서 아주 엉망인 신경망으로 시작한다고 가정하고, 훈련에 의해 정밀도가 높은 네트워크를 얻을 수 있다.
신경망의 훈련과정은 다음과 같은 2개의 단계로 나눌 수 있다. 첫 단계는 입력층으로부터 은닉층을 경유하여 최종적으로 출력층에 이르는 신호의 순방향 처리이다. 다음 단계는 역방향 전파 그래디언트인 바, 출력층에서 은닉층으로, 마지막으로 입력층에 도달하며, 그래디언트에 따라 신경망 중 각 층의 가중치와 바이어스를 순차조정한다.
순방향 처리과정에서 입력 값을 신경망의 입력층에 입력하며, 신경망의 출력층으로부터 소위 예측 값의 출력을 얻는다. 입력 값이 신경망의 입력층에 제공되는 경우 아무 작업도 수행하지 않는다. 은닉층에서 두 번째 은닉층은 첫 번째 은닉층으로부터 예측 중간결과 값을 획득하고 계산작업 및 활성화 작업을 수행한 다음 얻은 예측 중간결과 값을 다음의 은닉층에 전달한다. 후속 층에서 동일한 작업을 수행하여 최종적으로 신경망의 출력층에서 출력 값을 얻게 된다.
순방향 처리 후 예측 값이라고 불리는 출력 값을 얻는다. 오차를 계산하기 위해 예측 값을 실제출력 값과 비교하여 대응하는 오차 값을 획득한다. 역방향 전파는 미분학의 연쇄법칙을 사용하며, 연쇄법칙에서 먼저 신경망의 최종층의 가중치에 해당하는 오차 값의 도함수를 계산한다. 이들 도함수를 그래디언트라고 부르며, 이들 그래디언트를 이용하여 신경망의 최후부터 두 번째 층의 그래디언트를 계산한다. 신경망 중 각 가중치에 대응하는 그래디언트가 얻어질 때까지 이 과정을 반복한다. 마지막으로, 오차 값을 줄이는 목적을 달성하기 위해 신경망 중 각 가중치에서 대응하는 그래디언트를 감산하여 가중치를 한 번 업데이트한다.
신경망인 경우 미조정은 훈련된 신경망에 로드하는 것이며, 미조정과정은 훈련과정과 동일하게 두 단계로 나눌 수 있다. 첫 번째 단계는 신호의 순방향 처리이고, 두 번째 단계는 역방향 전파 그래디언트로서 훈련된 신경망의 가중치를 업데이트한다. 훈련과 미조정의 차이점은 훈련은 랜덤으로 초기화된 신경망을 처리하여 신경망을 처음부터 훈련시키는 반면 미조정은 그렇지 않다는 것이다.
신경망의 훈련 또는 미조정과정에서 신경망이 신호의 1회 순방향 처리 및 대응하는 1회 오차의 역방향 전파과정을 경과할 때마다 신경망 중 가중치가 그래디언트를 이용하여 1회 업데이트되며, 이를 1회 반복(iteration)이라고 한다. 정밀도가 기대에 해당한 신경망을 얻기 위해서는 훈련과정에서 거대한 샘플 데이터 세트가 필요하다. 이 경우 샘플 데이터 세트을 컴퓨터에 한 번에 입력할 수 없다. 따라서 이 문제를 해결하기 위해 샘플 데이터 세트를 복수의 블록으로 나누고 각 블록을 컴퓨터에 전달하며, 각 블록의 데이터 세트를 순방향 처리한 후 대응하여 신경망의 가중치를 1회 업데이트한다. 하나의 완전한 샘플 데이터 세트가 신경망의 1회 순방향 처리를 통과하고 대응하여 1회 업데이트한 가중치를 반환하는 과정을 1주기(epoch)라고 한다. 실제로는 신경망에서 완전한 데이터 세트를 1회 전달하는 것만으로는 불충분하여 완전한 데이터 세트를 동일한 신경망에서 여러 번 전달할 필요가 있다. 즉 최종적으로 정밀도가 기대에 해당한 신경망을 획득하려면 복수의 주기가 필요하다.
신경망의 훈련 또는 미조정과정에서 일반적으로 속도가 빠를수록 더 좋고 정밀도가 높을수록 더 좋다. 신경망의 데이터는 부동 소수점 수와 같은 고정밀도 데이터 형식으로 표현되므로 훈련 또는 미조정과정에서 관련되는 데이터는 모두 고정밀도 데이터 형식이며, 훈련된 신경망을 양자화한다. 양자화 대상이 신경망 전체인 가중치, 및 양자화 후의 가중치가 모두 8bit인 고정 소수점 수를 예로 들면 하나의 신경망에 항상 수백만 개의 연결이 있기 때문에 거의 모든 공간이 뉴런연결의 가중치에 의해 차지되어 있다. 또한 이들 가중치는 모두 서로 다른 부동 소수점 수이다. 각 층 가중치는 (-3.0, 3.0)과 같이 어느 특정구간의 정규분포 경향이 있다. 신경망 중 각 층의 가중치에 대응하는 최대 값과 최소 값을 보존하고, 각 부동 소수점 값을 8bit의 고정 소수점 수로 표현한다. 그 중, 최대 값과 최소 값 범위 내의 구간을 256개의 양자화 간격으로 선형적으로 나누고, 하나의 8bit 고정 소수점 수로 각 양자화 간격을 표현한다. 예를 들어, (-3.0, 3.0) 구간 내에서 바이트 0이 -3.0을 나타내고, 바이트 255가 3.0을 나타낸다. 이하 유사하게 바이트 128이 0을 나타낸다.
고정밀도 데이터 형식으로 표현된 데이터는, 부동 소수점 수를 예로 들면, 컴퓨터 아키텍처에 의해 부동 소수점 수의 연산표현법칙 및 고정 소수점 수의 연산표현법칙에 근거하여 같은 길이의 고정 소수점 연산 및 부동 소수점 연산을 하는 경우 부동 소수점 연산의 계산모드가 더 복잡하고, 보다 많은 논리 디바이스로 부동 소수점 연산기를 구성할 필요가 있다는 것을 알 수 있다. 이렇게 부피적으로는, 부동 소수점 연산기의 부피는 고정 소수점 연산기의 부피보다도 크다. 또한, 부동 소수점 연산기는 처리하는 데 보다 많은 리소스를 소비할 필요가 있으므로 고정 소수점 연산과 부동 소수점 연산 사이의 소비전력 격차는 일반적으로 수십 배이다. 간단히 말하면, 부동 소수점 연산기가 점유하는 칩 면적과 소비전력은 고정 소수점 연산기에 비교하면 몇 배도 크다.
그러나 부동 소수점 연산은 대체할 수 없다. 우선, 고정 소수점 연산은 직관적이지만 고정된 소수점위치가 고정 자리수의 정수부와 소수부를 결정하며, 특히 큰 수 또는 특히 작은 수를 동시에 표현하는 데 도움이 되지 않아 오버플로가 발생할 가능성이 있다.
또한, 구체적으로 인공지능 프로세서 칩을 사용하여 훈련 또는 미조정하는 경우에는 부동 소수점 연산기가 일반적으로 선호된다. 주로 감독학습의 신경망에서는 부동 소수점 연산만 훈련시의 얼마 안되는 증가 분을 기록하고 캡처할 수 있기 때문이다. 따라서 인공지능 프로세서 칩 면적과 소비전력을 증가시키지 않는 전제 아래에서 훈련용 칩의 연산능력을 대폭으로 향상시킬 수 있는 방법은 현재 시급히 해결해야 할 문제이다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 낮은 비트폭으로 표현되는 고정 소수점 수를 이용하여 훈련하는 경우, 8bit보다도 높은 고정 소수점 수를 사용하여 역방향 전파 그래디언트를 처리할 필요가 있는 것이 실천적인 피드백으로부터 명확하지만 낮은 비트폭으로 표현되는 고정 소수점 수를 사용하여 훈련을 실현하는 과정을 매우 복잡하게 한다. 어떻게 고정 소수점 연산기를 부동 소수점 연산기로 교체하여 고정 소수점 연산의 고속화를 달성하고 인공지능 프로세서 칩의 피크 연산력을 향상시킴과 동시에 연산에 필요한 부동 소수점 연산의 정밀도를 충족시키는 것이 본 명세서에서 해결할 기술적 문제이다.
상술한 기술적 문제의 설명에 근거하면 신경망의 하나의 특성은 입력 노이즈에 대한 내성이 높은 것이다. 사진 속의 물체를 식별하는 것을 고려하면, 신경망은 주요한 노이즈를 무시하고, 중요한 유사성에 주목할 수 있다. 당해 기능은 신경망이 저정밀도 계산을 노이즈 소스로 사용하고, 보다 적은 정보를 수용하는 수치 형식이라도 정확한 예측결과를 생성할 수 있음을 의미한다. 저정밀도의 훈련 또는 미조정을 수행하려면 데이터의 오버플로를 개선할 뿐만 아니라 목표구간범위 내 0부근의 데이터를 보다 좋게 표현할 수 있는 하나의 범용성이 있는 데이터 표현을 찾아야 한다. 따라서 이 데이터 표현은 훈련 또는 미조정의 과정에 따라 조정할 수 있는 자기 적응성이 필요하다.
상술한 설명에 따라 도2에 도시된 바와 같이, 본 발명에 따른 신경망의 양자화 파라미터 확정방법의 흐름도를 도시한다. 도2에 도시된 기술방안을 이용하여 확정하는 양자화 파라미터는 양자화 대상 데이터를 데이터 표현하는 데 사용되며, 양자화 후의 고정 소수점 수를 확인한다. 상기 양자화 후의 고정 소수점 수는 신경망의 훈련, 미조정 또는 추론에 사용된다. 상기 방법은 다음과 같은 단계를 포함한다.
단계201): 양자화 대상 데이터를 통계하여 각 종류의 양자화 대상 데이터의 통계결과를 확정한다. 여기에서 상기 양자화 대상 데이터는 상기 신경망의 뉴런, 가중치 그래디언트, 바이어스 중 적어도 한 가지 데이터를 포함한다.
전술한 바와 같이, 신경망을 훈련 또는 미조정하는 과정에서 신경망의 각 층은 뉴런, 가중치 그래디언트 및 바이어스 이 네 가지 데이터를 포함한다. 추론과정에서 신경망의 각 층은 뉴런, 가중치 및 바이어스 이 세 가지데이터를 포함한다. 이들 데이터는 모두 고정밀도 데이터 형식으로 표현되며, 본 명세서는 부동 소수점 수를 고정밀도 데이터의 예로 하고 있다. 명확해야 할 것은 부동 소수점 수는 예로서 모든 상황이 아니라 일부 상황만 열거할 뿐이며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 기술방안의 본질을 이해한 뒤에 본 발명의 기술방안을 기반으로 다른 변형 또는 변환을 이룰 수 있다. 예를 들어, 고정밀도 데이터는 표현범위가 크고 표현하는 최소정밀도가 작은 높은 데이터 비트폭을 갖는 고정 소수점 수일 수 있으며, 본 기술방안을 사용하여 모두 낮은 데이터 비트폭을 갖는 고정 소수점 수로 변환할 수 있다. 그러나, 그 실현된 기능 및 달성한 기술적 효과가 본 발명과 유사하면 모두 본 발명의 보호범위에 속하는 것이다.
어떤 신경망구조이여도 신경망을 훈련 또는 미조정하는 과정에서 양자화 대상 데이터는 신경망의 뉴런, 가중치 그래디언트, 바이어스 중 적어도 한 가지 데이터를 포함하며, 추론과정에서 양자화 대상 데이터는 신경망의 뉴런, 가중치, 바이어스 중 적어도 한 가지 데이터를 포함한다. 양자화 대상 데이터가 가중치인 경우를 예로 들면, 양자화 대상 데이터는 신경망 중 어느 한 층의 모든 가중치일 수도 있고, 신경망 중 어느 한 층의 부분 가중치일 수도 있다. 당해 층이 컨벌루션 층인 경우, 양자화 대상 데이터는 당해 컨벌루션 층에서 채널을 단위로 하는 모든 가중치 또는 부분 가중치이고, 당해 채널은 당해 컨벌루션 층의 모든 채널 또는 부분 채널일 수도 있다. 여기에서, 컨벌루션 층만이 채널의 개념을 가지고, 컨벌루션 층에서 가중치만 층을 나누고 채널의 방식으로 양자화된다는 점을 이해해야할 필요가 있다.
이하에서 양자화 대상 데이터가 신경망 중 목표층의 뉴런과 가중치 이 두 가지 데이터인 경우를 예로 들어, 본 기술방안을 자세히 설명한다. 본 단계에서 목표층에 있어서의 각 층의 뉴런과 가중치를 각각 통계하여 각 종류의 양자화 대상 데이터의 최대 값 및 최소 값을 획득한다. 또한 각 종류의 양자화 대상 데이터의 절대치 최대 값을 획득할 수도 있다. 여기에서 목표층은 신경망에서 양자화해야 하는 층으로서 한 층일 수도 있고, 여러 층일 수도 있다. 한 층을 단위로하여 각 종류의 양자화 대상 데이터의 절대치 최대 값은 각 종류의 양자화 대상 데이터 중 최대 값과 최소 값 방식을 통해 확인할 수 있다. 또한, 먼저 각 종류의 양자화 대상 데이터의 절대치를 구하고, 모든 절대치를 구한 결과에 따라 각 종류의 양자화 대상 데이터의 절대치 최대 값을 획득할 수도 있다.
실제 응용에서 각 종류의 양자화 대상 데이터 중 최대 값과 최소 값 방식에 따라 각 종류의 양자화 대상 데이터의 절대치 최대 값을 획득하는 이유는 양자화할 때 정상적인 상황에서 목표층 중 각 층의 양자화 대상 데이터에 대응하는 최대 값과 최소 값을 보존하고 있었으므로 더 많은 리소스를 소비하여 양자화 대상 데이터에 대해 절대치를 구할 필요가 없고, 보존한 양자화 대상 데이터에 대응하는 최대 값과 최소 값을 기반으로 절대치 최대 값을 직접 획득하면 되기 때문이다.
단계202): 각 종류의 양자화 대상 데이터의 통계결과 및 데이터 비트폭을 이용하여 대응하는 양자화 파라미터를 확정한다. 여기에서 상기 양자화 파라미터는 인공지능 프로세서가 신경망 연산과정 중의 데이터를 대응하는 양자화하기 위해 사용된다.
본 단계에서 양자화 파라미터는 다음과 같은 6 가지 상황으로 나눌 수 있다. 첫 번째 경우는 양자화 파라미터가 점 위치 파라미터 s인 것이다. 이 경우 다음과 같은 수학식 (1)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00021
를 얻을 수 있다.
Figure pat00022
(1)
여기에서 s는 점 위치 파라미터이고,
Figure pat00023
는 데이터
Figure pat00024
가 양자화된 후의 n비트 바이너리 표현 값이며,
Figure pat00025
는 데이터
Figure pat00026
를 양자화하기 전의 부동 소수점 값이고,
Figure pat00027
는 반올림에 따른 정수연산이다. 설명할 필요가 있는 것은, 여기에서
Figure pat00028
와 같은 정수연산에만 국한되지 않고, 다른 정수연산방법을 사용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 사용하여 수학식 (1) 중의
Figure pat00029
를 바꾸어 정수연산할 수 있다. 이 때, n비트 고정 소수점 수가
Figure pat00030
표현할 수 있는 부동 소수점 수의 최대 값
Figure pat00031
Figure pat00032
이면, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값은
Figure pat00033
이고, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최소 값은
Figure pat00034
이다. 수학식 (1)로부터 알 수 있는 바와 같이, 첫 번째 경우에 대응하는 양자화 파라미터를 사용하여 양자화 대상 데이터를 양자화할 때 양자화 간격은
Figure pat00035
이며, 양자화 간격을 C로 표시한다.
Figure pat00036
를 양자화 대상 데이터의 수체 중 모든 부동 소수점 수의 절대치 최대 값이라고 가정하면,
Figure pat00037
는 Z를 포함해야 하며, Z는
Figure pat00038
보다 커야하므로 다음과 같은 수학식 (2)의 제약이 있다.
Figure pat00039
(2)
따라서,
Figure pat00040
로 되며,
Figure pat00041
,
Figure pat00042
를 얻게 된다.
수학식 (3)에 의해 데이터
Figure pat00043
가 양자화된 후의 n비트 바이너리 표현 값
Figure pat00044
를 역 양자화하여 역 양자화 데이터
Figure pat00045
를 획득한다. 여기에서, 상기 역 양자화 데이터
Figure pat00046
의 데이터 형식은 대응하는 양자화 전의 데이터
Figure pat00047
의 데이터 형식과 같으며 모두 부동 소수점 값이다.
Figure pat00048
(3)
두 번째 경우는 양자화 파라미터가 제1 스케일 팩터
Figure pat00049
인 것이다. 이 경우 다음과 같은 수학식 (4)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00050
를 얻을 수 있다.
Figure pat00051
(4)
여기에서,
Figure pat00052
는 제1 스케일 팩터이고,
Figure pat00053
는 데이터
Figure pat00054
가 양자화된 후의 n비트 바이너리 표현 값이며,
Figure pat00055
는 데이터
Figure pat00056
를 양자화하기 전의 부동 소수점 값이며,
Figure pat00057
는 반올림에 따른 정수연산이다. 설명할 필요가 있는 것은, 여기에서
Figure pat00058
와 같은 정수연산에만 국한되지 않고, 다른 정수연산방법을 사용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 사용하여 수학식 (4) 중의
Figure pat00059
를 바꾸어 정수연산할 수 있다. 수학식 (4)로부터 알 수 있는 바와 같이, 두 번째 경우에 대응하는 양자화 파라미터를 사용하여 양자화 대상 데이터를 양자화할 때 양자화 간격은
Figure pat00060
이며, 양자화 간격을 C로 표시한다.
제1 스케일 팩터
Figure pat00061
인 경우 다음과 같은 한 가지 상황이 있다. 즉 점 위치 파라미터 s가 고정의 기지 값이고 더 이상 변경되지 않는다.
Figure pat00062
라 하고,
Figure pat00063
가 고정 값이면, n비트 고정 소수점 수로
Figure pat00064
표현할 수 있는 부동 소수점 수의 최대 값
Figure pat00065
Figure pat00066
이다. 이 경우 최대 값
Figure pat00067
는 데이터 비트폭 n에 의해 확정된다. Z가 양자화 대상 데이터의 수체 중 모든 수의 절대치 최대 값이라고 가정하면,
Figure pat00068
이고, 이 때
Figure pat00069
이다. n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값은
Figure pat00070
이고, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최소 값은
Figure pat00071
이다. 또 한 가지 상황은 엔지니어링 어플리케이션에서,
Figure pat00072
를 하나의 전체로 하여 제1 스케일 팩터
Figure pat00073
로 볼 수 있다. 이 때, 독립적인 점 위치 파라미터 s가 없다고 볼 수 있다. 여기에서
Figure pat00074
는 제2 스케일 팩터이다. Z가 양자화 대상 데이터의 수체 중 모든 수의 절대치 최대 값이라고 가정하면,
Figure pat00075
이고, 이 때
Figure pat00076
이다. n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값은
Figure pat00077
이고, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최소 값은
Figure pat00078
이다.
수학식 (5)에 따라 데이터
Figure pat00079
가 양자화된 후의 n비트 바이너리 표현 값
Figure pat00080
에 대해 역 양자화를 수행하여 역 양자화 데이터
Figure pat00081
를 획득한다. 여기에서 상기 역 양자화 데이터
Figure pat00082
의 데이터 형식은 대응하는 양자화하기 전의 데이터
Figure pat00083
의 데이터 형식과 같으며, 모두 부동 소수점 값이다.
Figure pat00084
(5)
세 번째 경우는 양자화 파라미터가 점 위치 파라미터 s와 제2 스케일 팩터
Figure pat00085
인 것이다. 이 경우 다음과 같은 수학식(6)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00086
를 얻을 수 있다.
Figure pat00087
(6)
여기에서, s는 점 위치 파라미터이고,
Figure pat00088
는 제2 스케일 팩터이며,
Figure pat00089
이다.
Figure pat00090
는 데이터
Figure pat00091
를 양자화한 후의 n비트 바이너리 표현 값이고,
Figure pat00092
는 데이터
Figure pat00093
를 양자화하기 전의 부동 소수점 값이며,
Figure pat00094
는 반올림에 따른 정수연산이다. 설명할 필요가 있는 것은, 여기에서
Figure pat00095
와 같은 정수연산에만 국한되지 않고, 다른 정수연산방법을 사용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 사용하여 수학식 (6) 중의
Figure pat00096
를 바꾸어 정수연산할 수 있다. n비트 고정 소수점 수로
Figure pat00097
표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값
Figure pat00098
Figure pat00099
이다. 수학식 (6)으로부터 알 수 있는 바와 같이, 세 번째 경우에 대응하는 양자화 파라미터를 사용하여 양자화 대상 데이터를 양자화할 때 양자화 간격은
Figure pat00100
이며, 양자화 간격을 C로 표시한다.
Z를 양자화 대상 데이터의 수체 중 모든 수의 절대치 최대 값이라고 가정하면, 이 때 수학식 (2)에 따라 다음과 같이 얻을 수 있다.
Figure pat00101
, 즉
Figure pat00102
,
Figure pat00103
Figure pat00104
인 경우, 수학식 (2)에 따라 Z는 손실없이 정확하게 표현할 수 있다.
Figure pat00105
일 때 수학식 (6)은 수학식 (1)과 같으며
Figure pat00106
이다. n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값은
Figure pat00107
이고, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최소 값은
Figure pat00108
이다.
수학식 (7)에 의해 데이터
Figure pat00109
가 양자화된 후의 n비트 바이너리 표현 값
Figure pat00110
를 역 양자화하여 역 양자화 데이터
Figure pat00111
를 획득한다. 여기에서, 상기 역 양자화 데이터
Figure pat00112
의 데이터 형식은 대응하는 양자화하기 전의 데이터
Figure pat00113
의 데이터 형식과 같으며 모두 부동 소수점 값이다.
Figure pat00114
(7)
도3에 도시된 바와 같이, 대칭되는 고정 소수점 수 표현모식도이다. 도3에 도시된 양자화 대상 데이터의 수체는 "0"을 대칭중심으로 분포되어 있다.
Figure pat00115
는 양자화 대상 데이터의 수체 중 모든 부동 소수점 수의 절대치 최대 값이고, 도3에서
Figure pat00116
는 n비트 고정 소수점 수가
Figure pat00117
표현할 수 있는 부동 소수점 수의 최대 값이며, 부동 소수점 수
Figure pat00118
를 고정 소수점 수로 전환하면
Figure pat00119
이다. 오버플로를 방지하려면
Figure pat00120
Figure pat00121
를 포함할 필요가 있다. 실제로는 신경망 연산과정 중의 부동 소수점 데이터는 어느 특정구간의 정규분포 경향이 있으나 반드시 "0"을 대칭중심으로 하는 분포를 만족시키는 것이 아니고, 이 때 고정 소수점 수로 표현하면 오버플로가 발생하기 쉽다. 이러한 상황을 개선하기 위해 도4에 도시된 바와 같이 양자화 파라미터에 오프셋이 도입되어 있다. 도4에서 양자화 대상 데이터의 수체는 "0"을 대칭중심으로 하는 분포가 아니며,
Figure pat00122
는 양자화 대상 데이터의 수체 중 모든 부동 소수점 수의 최소 값이고,
Figure pat00123
는 양자화 대상 데이터의 수체 중 모든 부동 소수점 수의 최대 값이다. P는
Figure pat00124
~
Figure pat00125
사이의 중심점이고, 양자화 대상 데이터의 수체를 전체적으로 오프셋시켜 평행이동 후의 양자화 대상 데이터의 수체가 "0"을 대칭중심으로 하는 분포로 되게 한다. 평행이동 후의 양자화 대상 데이터의 수체 중 절대치 최대 값은
Figure pat00126
이다. 도4에서 알 수 있는 바와 같이, 오프셋은 "0"점으로부터 "P"까지 사이의 수평거리이고, 당해 거리를 오프셋
Figure pat00127
라고 부른다. 여기에서
Figure pat00128
,
Figure pat00129
이다.
상술한 오프셋
Figure pat00130
에 관한 설명에 따라, 네 번째로 되는 양자화 파라미터의 상황이 나타난다. 네 번째 경우는 양자화 파라미터가 점 위치 파라미터와 오프셋을 포함하는 것이다. 이 경우 다음과 같은 수학식 (8)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00131
를 얻을 수 있다.
Figure pat00132
(8)
여기에서, s는 점 위치 파라미터이고,
Figure pat00133
는 오프셋이며,
Figure pat00134
이고,
Figure pat00135
는 데이터
Figure pat00136
가 양자화된 후의 n비트 바이너리 표현 값이며,
Figure pat00137
는 데이터
Figure pat00138
를 양자화하기 전의 부동 소수점 값이고,
Figure pat00139
Figure pat00140
는 반올림에 따른 정수연산이다. 설명할 필요가 있는 것은, 여기에서
Figure pat00141
와 같은 정수연산에만 국한되지 않고, 다른 정수연산방법을 사용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 사용하여 수학식 (8) 중의
Figure pat00142
를 바꾸어 정수연산할 수 있다. 이 때, n비트 고정 소수점 수로
Figure pat00143
표현할 수 있는 부동 소수점 수의 최대 값
Figure pat00144
Figure pat00145
이면, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값은
Figure pat00146
이고, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최소 값은
Figure pat00147
이다. 수학식 (8)로부터 알 수 있는 바와 같이, 네 번째 경우에 대응하는 양자화 파라미터를 사용하여 양자화 대상 데이터를 양자화할 때 양자화 간격은
Figure pat00148
이며, 양자화 간격을 C로 표시한다.
Figure pat00149
를 양자화 대상 데이터의 수체 중 모든 부동 소수점 수의 절대치 최대 값이라고 가정하고,
Figure pat00150
이면,
Figure pat00151
는 Z를 포함해야 하며, Z는
Figure pat00152
보다 커야 한다. 수학식 (2)에 따라
Figure pat00153
를 획득하며, 진일보로
Figure pat00154
,
Figure pat00155
를 얻는다.
수학식 (9)에 의해 데이터
Figure pat00156
가 양자화된 후의 n비트 바이너리 표현 값
Figure pat00157
를 역 양자화하여 역 양자화 데이터
Figure pat00158
를 획득한다. 여기에서, 상기 역 양자화 데이터
Figure pat00159
의 데이터 형식은 대응하는 양자화하기 전의 데이터
Figure pat00160
의 데이터 형식과 같으며 모두 부동 소수점 값이다.
Figure pat00161
(9)
상술한 오프셋
Figure pat00162
에 관한 설명에 따라, 다섯 버째로 되는 양자화 파라미터의 상황이 나타난다. 다섯 번째 경우는 양자화 파라미터가 제1 스케일 팩터
Figure pat00163
와 오프셋
Figure pat00164
를 포함하는 것이다. 이 경우 다음과 같은 수학식 (10)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00165
를 얻을 수 있다.
Figure pat00166
(10)
여기에서,
Figure pat00167
는 제1 스케일 팩터이고,
Figure pat00168
는 오프셋이며,
Figure pat00169
Figure pat00170
는 데이터
Figure pat00171
가 양자화된 후의 n비트 바이너리 표현 값이며,
Figure pat00172
는 데이터
Figure pat00173
를 양자화하기 전의 부동 소수점 값이고,
Figure pat00174
Figure pat00175
는 반올림에 따른 정수연산이다. 설명할 필요가 있는 것은, 여기에서
Figure pat00176
와 같은 정수연산에만 국한되지 않고, 다른 정수연산방법을 사용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 사용하여 수학식 (10) 중의
Figure pat00177
를 바꾸어 정수연산할 수 있다. 이 때 다음과 같은 한 가지 상황이 있다. 즉 점 위치 파라미터 s가 고정의 기지 값이고 더 이상 변경되지 않으며,
Figure pat00178
라 하고,
Figure pat00179
가 고정 값이다. 따라서, n비트 고정 소수점 수로
Figure pat00180
표현할 수 있는 부동 소수점 수의 최대 값
Figure pat00181
Figure pat00182
이다. 이 경우, 최대 값
Figure pat00183
는 데이터 비트폭 n에 의해 확정된다.
Figure pat00184
가 양자화 대상 데이터의 수체 중 모든 수의 절대치 최대 값이라고 가정하면,
Figure pat00185
이고, 이 때
Figure pat00186
이다. n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값은
Figure pat00187
이고, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최소 값은
Figure pat00188
이다. 또 한 가지 상황은 엔지니어링 어플리케이션에서,
Figure pat00189
를 하나의 전체로 하여 제1 스케일 팩터
Figure pat00190
로 본다. 이 때, 독립적인 점 위치 파라미터 s가 없다고 볼 수 있다. 여기에서
Figure pat00191
는 제2 스케일 팩터이다. Z가 양자화 대상 데이터의 수체 중 모든 수의 절대치 최대 값이라고 가정하면,
Figure pat00192
이고, 이 때
Figure pat00193
이다. n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값은
Figure pat00194
이고, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최소 값은
Figure pat00195
이다.
수학식 (10)으로부터 알 수 있는 바와 같이, 다섯 번째 경우에 대응하는 양자화 파라미터를 사용하여 양자화 대상 데이터를 양자화할 때 양자화 간격은
Figure pat00196
이며, 양자화 간격을 C로 표시한다.
수학식 (11)에 따라 데이터
Figure pat00197
가 양자화된 후의 n비트 바이너리 표현 값
Figure pat00198
를 역 양자화하여 역 양자화 데이터
Figure pat00199
를 획득한다. 여기에서 상기 역 양자화 데이터
Figure pat00200
의 데이터 형식은 대응하는 양자화하기 전의 데이터
Figure pat00201
의 데이터 형식과 같으며, 모두 부동 소수점 값이다.
Figure pat00202
(11)
상술한 오프셋
Figure pat00203
에 관한 설명에 따라, 여섯 번째로 되는 양자화 파라미터의 상황이 나타난다. 여섯 번째 경우는 양자화 파라미터가 점 위치 파라미터, 제2 스케일 팩터
Figure pat00204
및 오프셋
Figure pat00205
를 포함하는 것이다. 이 경우 다음과 같은 수학식 (12)를 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00206
를 얻을 수 있다.
Figure pat00207
(12)
여기에서, s는 점 위치 파라미터이고, 오프셋은
Figure pat00208
이며,
Figure pat00209
Figure pat00210
제2 스케일 팩터이고,
Figure pat00211
;
Figure pat00212
이다.
Figure pat00213
는 데이터
Figure pat00214
가 양자화된 후의 n비트 바이너리 표현 값이고,
Figure pat00215
는 데이터
Figure pat00216
를 양자화하기 전의 부동 소수점 값이며,
Figure pat00217
는 반올림에 따른 정수연산이다. 설명할 필요가 있는 것은, 여기에서
Figure pat00218
와 같은 정수연산에만 국한되지 않고, 다른 정수연산방법을 사용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 사용하여 수학식 (12) 중의
Figure pat00219
를 바꾸어 정수연산할 수 있다. n비트 고정 소수점 수로
Figure pat00220
표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값
Figure pat00221
Figure pat00222
이다. 수학식 (12)로부터 알 수 있는 바와 같이, 여섯 번째 경우에 대응하는 양자화 파라미터를 사용하여 양자화 대상 데이터를 양자화할 때 양자화 간격은
Figure pat00223
이며, 양자화 간격을 C로 표시한다.
Z를 양자화 대상 데이터의 수체 중 모든 수의 절대치 최대 값이라고 가정한다. 이 때 수학식 (2)에 따라 다음과 같이 얻을 수 있다.
Figure pat00224
, 즉
Figure pat00225
,
Figure pat00226
Figure pat00227
인 경우, 수학식 (2)에 따라 Z는 손실없이 정확하게 표현할 수 있다.
Figure pat00228
일 때
Figure pat00229
이다. n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최대 값은
Figure pat00230
이고, n비트 고정 소수점 수가 표현할 수 있는 양자화 대상 데이터의 수체 중 최소 값은
Figure pat00231
이다.
수학식 (13)에 의해 데이터
Figure pat00232
가 양자화된 후의 n비트 바이너리 표현 값
Figure pat00233
를 역 양자화하여 역 양자화 데이터
Figure pat00234
를 획득한다. 여기에서, 상기 역 양자화 데이터
Figure pat00235
의 데이터 형식은 대응하는 양자화 전의 데이터
Figure pat00236
의 데이터 형식과 같으며, 모두 부동 소수점 값이다.
Figure pat00237
(13)
이상에서 6 가지 양자화 파라미터의 확정과정을 상세히 설하였으나 실시예의 설명일 뿐이다. 양자화 파라미터의 종류는 상이한 실시예에서 상기 설명과 다를 수 있다. 수학식 (1)~ 수학식 (13)으로부터 알 수 있는 바와 같이, 점 위치 파라미터와 스케일 팩터는 모두 데이터 비트폭과 관련된다. 상이한 데이터 비트폭에 의해 점 위치 파라미터와 스케일 팩터가 다르게 되고, 따라서 양자화 정밀도에 영향을 준다. 훈련 또는 미조정과정에서, 특정 반복(iterations) 회수범위 내에서 동일한 데이터 비트폭을 사용하여 양자화하면 신경망 연산의 전체 정밀도에 별로 영향을 주지 않는다. 특정 반복회수를 넘고, 역시 동일한 데이터 비트폭을 사용하여 양자화하면 훈련 또는 미조정의 정밀도 요건을 충족시킬 수 없다. 이를 위해서는 훈련 또는 미조정의 과정에 따라 데이터 비트폭 n을 조정할 필요가 있다. 간단히 말하면, 인위적으로 데이터 비트폭 n을 설정할 수 있다. 서로 다른 반복회수범위 내에서 미리 설정한 대응하는 데이터 비트폭 n을 호출하여 사용한다. 그러나, 위에서 언급한 것과 같이, 낮은 비트폭으로 표현된 고정 소수점 수를 사용하여 훈련을 실현하는 과정은 대단히 복잡하다. 이러한 인위적으로 데이터 비트폭을 미리 설정하는 조정방식은 기본적으로 실제 응용의 요구사항을 충족하지 않는다.
본 기술방안에서는, 양자화 오차
Figure pat00238
에 근거하여 데이터 비트폭 n을 조정한다. 더 자세하게는, 양자화 오차
Figure pat00239
를 한계 값과 비교하여 비교결과를 획득한다. 여기에서, 한계 값은 제1 한계 값과 제2 한계 값을 포함하며, 제1 한계 값은 제2 한계 값보다도 크고, 비교결과에는 다음과 같은 세 가지 상황이 있다. 첫 번째 경우는 양자화 오차
Figure pat00240
가 상기 제1 한계 값 이상이다. 이 경우 상기 데이터 비트폭을 증가한다. 두 번째 경우는 양자화 오차
Figure pat00241
가 상기 제2 한계 값 이하이다. 이 경우 상기 데이터 비트폭을 감소한다. 세 번째 경우는 양자화 오차
Figure pat00242
가 상기 제1 한계 값과 상기 제2 한계 값 사이에 있다. 이 경우 상기 데이터 비트폭은 변경되지 않는다. 실제 응용에서 제1 한계 값과 제2 한계 값은 경험 값일 수도 있고, 가변 하이퍼 파라미터일 수도 있다. 통상의 하이퍼 파라미터의 최적화방법은 모두 제1 한계 값과 제2 한계 값에 적합하며, 여기에서는 하이퍼 파라미터의 최적화방안에 대해 다시 언급하지 않는다.
또한, 데이터 비트폭을 고정된 비트 스텝에 따라 조정할 수 있으며, 양자화 오차와 오차 한계 값과의 차이의 다른 점에 근거하여 가변 조정 스텝에 따라 데이터 비트폭을 조정할 수도 있으며, 최종적으로는 신경망 연산과정의 실제 필요에 따라 데이터 비트폭을 보다 길게 또는 보다 짧게 조정하는 점을 강조할 필요가 있다. 예를 들어, 현재 컨벌루션 층의 데이터 비트폭 n가 16이며, 양자화 오차
Figure pat00243
에 따라 데이터 비트폭 n을 12로 조정한다. 즉 실제 응용에서 데이터 비트폭 n은 16의 값이 아니라 12의 값을 취하는 것으로 신경망 연산과정에서의 정밀도 요구사항을 충족시킬 수 있으며, 이를 통해 정밀도 허용범위 내에서 고정 소수점 연산속도를 크게 향상할 수 있으며, 따라서 인공지능 프로세서 칩의 리소스 활용율이 향상할 수 있다.
양자화 오차
Figure pat00244
인 경우, 양자화 후의 데이터와 대응하는 양자화 전의 데이터에 근거하여 양자화 오차를 확정한다. 실제 응용에는 세 가지 양자화 오차 확정방식이 있으며, 모두 본 기술방안에 적용할 수 있다. 첫 번째 방식은 양자화 간격, 양자화 후 데이터의 개수 및 대응하는 양자화 전의 데이터에 근거하여 수학식 (14)에 따라 양자화 오차를 확정한다.
Figure pat00245
(14)
여기에서,
Figure pat00246
는 양자화할 때 대응하는 양자화 간격이고,
Figure pat00247
은 양자화한 후 획득한 양자화 데이터의 개수이며,
Figure pat00248
Figure pat00249
는 양자화하려는 대응하는 부동 소수점 값이다. 여기에서,
Figure pat00250
는 양자화 대상 데이터 집합 중 데이터의 아래첨자이다.
두 번째 방식은 양자화한 후의 데이터 및 대응하는 역 양자화 데이터에 근거하여 수학식 (15)에 따라 양자화 오차
Figure pat00251
를 확정한다.
Figure pat00252
(15)
여기에서,
Figure pat00253
는 양자화하려는 대응하는 부동 소수점 값이다. 여기에서,
Figure pat00254
는 양자화 대상 데이터 집합 중 데이터의 아래첨자이다.
Figure pat00255
Figure pat00256
는 부동 소수점 값에 대응하는 역 양자화 데이터이다.
세 번째 방식은 양자화한 후의 데이터 및 대응하는 역 양자화 데이터에 근거하여 수학식 (16)에 따라 양자화 오차
Figure pat00257
를 확정한다.
Figure pat00258
(16)
여기에서,
Figure pat00259
는 양자화하려는 대응하는 부동 소수점 값이다. 여기에서,
Figure pat00260
는 양자화 대상 데이터 집합 중 데이터의 아래첨자이다.
Figure pat00261
Figure pat00262
는 부동 소수점 값에 대응하는 역 양자화 데이터이다.
또한, 상술한 양자화 오차
Figure pat00263
를 획득하는 방식은 예로서 모든 상황이 아니라 일부 상황만 열거할 뿐이며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명 기술방안의 본질을 이해한 뒤에 본 발명의 기술방안을 기반으로 다른 변형 또는 변환을 이룰 수 있으며, 양자화한 후의 데이터와 대응하는 양자화하기 전의 데이터에 근거하여 양자화 오차를 확정하는 것을 지원하는 모든 변형 수학식은, 그 실현하는 기능 및 달성하는 기술적 효과가 본 발명과 유사하면 모두 본 발명의 보호범위에 속하는 것이다.
데이터 비트폭에 대하여, 도5a는 훈련과정에서 신경망의 가중치 데이터 변동폭의 제1 그래프를 도시한다. 도5b는 훈련과정에서 신경망의 가중치 데이터 변동폭의 제2 그래프를 도시한다. 도5a 및 도5b에서 횡축은 반복회수를 나타내고, 세로축은 가중치 로그의 최대 값을 나타낸다. 도5a에 도시된 가중치 데이터의 변동폭 곡선은 신경망의 임의의 컨벌루션 층의 동일한 주기(epoch) 내 상이한 반복에 대응하는 가중치 데이터의 변동상황을 나타내고 있다. 도5b에서 conv0층은 가중치 데이터 변동폭 곡선 A에 대응하고, conv1층은 가중치 데이터 변동폭 곡선 B에 대응하며, conv2층은 가중치 데이터 변동폭 곡선 C에 대응하고, conv3층은 가중치 데이터 변동폭 곡선 D에 대응하며, conv4층은 가중치 데이터 변동폭 곡선 e에 대응한다. 도5a 및 도5b로부터 알 수 있는 바와 같이, 동일한 주기(epoch) 내에서 훈련 초기 반복마다 가중치가 크게 변화한다. 훈련의 중, 후기에서 반복마다 가중치의 변화 폭은 별로 크지 않다. 이 경우 훈련의 중, 후기에서 가중치 데이터는 각 반복의 전후에서 변화 폭이 크지 않으므로 각 반복에서 대응하는 층의 가중치 데이터 사이는 특정 반복간격 내에서 유사성을 갖는다. 신경망 훈련과정에서 각 층에 관련된 데이터를 양자화하는 경우 전회 반복할 때 대응하는 층을 양자화할 때 사용한 데이터 비트폭을 채용할 수 있다. 그러나, 훈련 초기에 가중치 데이터는 각 반복의 전후에 변화 폭이 비교적 크다. 양자화에 필요한 부동 소수점 연산의 정밀도를 충족시키기 위해 훈련 초기의 매회 반복에서는 전회 반복에서 대응하는 층을 양자화할 때 사용한 데이터 비트폭을 이용하여 현재 반복에서 대응하는 층의 가중치 데이터를 양자화하거나 현재 층에 미리 설정된 데이터 비트폭 n을 기반으로 현재 층의 가중치 데이터를 양자화하여 양자화된 후의 고정 소수점 수를 획득한다. 양자화한 후의 가중치 데이터와 대응하는 양자화하기 전의 가중치 데이터에 근거하여 양자화 오차
Figure pat00264
를 확정하며, 양자화 오차
Figure pat00265
와 한계 값의 비교결과에 따라 전회 반복에서 대응하는 층을 양자화할 때 사용한 데이터 비트폭 n 또는 현재 층에 미리 설정한 데이터 비트폭 n을 조정하고, 조정한 후의 데이터 비트폭을 이번 반복에서 대응하는 층의 가중치 데이터의 양자화에 적용한다. 또한, 훈련 또는 미조정과정에서 신경망의 각 층 사이의 가중치 데이터는 서로 독립적이고 유사성이 없다. 가중치 데이터가 유사성을 가지지 않기 때문에 각 층 사이의 뉴런 데이터도 서로 독립적이며 유사성이 없다. 따라서, 신경망의 훈련 또는 미조정과정에서 신경망의 매회 반복에서 각 층의 데이터 비트폭은 대응하는 신경망 층에만 적용된다.
이상은 가중치 데이터를 예로 하며, 신경망 훈련 또는 미조정과정에서 뉴런 데이터와 그래디언트 데이터가 각각 대응하는 데이터 비트폭에 대해서도 같으므로 여기에서는 다시 언급하지 않는다.
신경망 추론과정에서 신경망의 각 층 사이의 가중치 데이터는 서로 독립적이며 유사성이 업다. 가중치 데이터가 유사성을 가지지 않아 각 층 사이의 뉴런 데이터도 서로 독립적으로 되며 유사성이 없다. 따라서, 신경망 추론과정에서 신경망 각 층의 데이터 비트폭을 대응하는 층에 적용한다. 실제 응용에서, 추론과정에서 매번의 입력 뉴런 데이터가 다르거나 유사하지 않을 가능성이 매우 높다. 또한, 신경망의 각 층 사이의 가중치 데이터가 서로 독립적이기 때문에 신경망 은닉층에서의 각 층의 입력 뉴런 데이터가 유사하지 않다. 양자화하는 경우, 위 층의 입력 뉴런 데이터가 사용하는 데이터 비트폭은 현재 층의 입력 뉴런 데이터에 적합하지 않다. 이를 바탕으로 양자화에 필요한 부동 소수점 연산의 정밀도를 충족시키기 위해 추론시에 위 층의 입력 뉴런 데이터를 양자화할 때 채용한 데이터 비트폭을 이용하여 현재 층의 입력 뉴런 데이터를 양자화하거나 현재 층에 미리 설정한 데이터 비트폭 n에 근거하여 현재 층의 입력 뉴런 데이터를 양자화하여 양자화된 후의 고정 소수점 수를 획득한다. 양자화하기 전의 입력 뉴런 데이터와 대응하는 양자화된 후의 입력 뉴런 데이터에 따라 양자화 오차
Figure pat00266
를 확정하며, 양자화 오차
Figure pat00267
와 한계 값의 비교결과에 따라 위 층의 입력 뉴런 데이터를 양자화할 때 채용한 데이터 비트폭 n 또는 현재 층에 미리 설정한 데이터 비트폭 n을 조정하고, 조정 후의 데이터 비트폭을 현재 층의 입력 뉴런 데이터의 양자화에 적용한다. 가중치 데이터에 대응하는 데이터 비트폭도 마찬가지기 때문에 여기에서 다시 언급하지 않는다.
양자화 파라미터에 대해서는, 도5a로부터 알 수 있는 바와 같이, 동일한 주기(epoch) 내에서 훈련 초기 매번 반복의 가중치 변화 폭이 비교적 크다. 훈련의 중, 후기에서 매회 반복 전후의 가중치 데이터 변화 폭이 별로 크지 않아 매번 반복의 대응하는 층의 가중치 데이터 사이는 일정한 반복간격 내에서 유사성을 가지므로 양자화할 때 현재 반복의 각 층의 데이터는 전회 반복의 대응하는 층의 대응 데이터의 양자화 파라미터를 계속 사용할 수 있으며, 훈련의 중, 후기에서 번 마다 다시 양자화 파라미터를 확인할 필요가 없으며, 훈련 초기의 각 반복의 각 층에서 양자화 파라미터를 확인하는 것만으로 신경망 연산에 필요한 부동 소수점 연산의 정밀도를 충족할 수 있으며, 양자화할 때의 효율을 대폭으로 향상시킬 수 있다. 또한, 훈련 또는 미조정과정에서, 신경망의 각 층 사이의 가중치 데이터는 서로 독립적이고 유사성을 가지지 않는다. 가중치 데이터가 유사성을 가지지 않으므로 각 층 사이의 뉴런 데이터도 서로 독립적이며, 유사성을 가지지 않는다. 따라서, 신경망 훈련 또는 미조정과정에서, 신경망의 매회 반복 내 각 층의 양자화 파라미터는 대응하는 층의 대응 양자화 대상 데이터에 적용된다.
이상은 가중치 데이터를 예로 하며, 신경망 훈련 또는 미조정과정에서 뉴런 데이터와 그래디언트 데이터가 각각 대응하는 양자화 파라미터에 대해서도 마찬가지기 때문에 여기에서 다시 언급하지 않는다.
신경망 추론과정에서 신경망의 각 층 사이의 가중치 데이터는 서로 독립적이고 유사성을 가지지 않는다. 가중치 데이터가 유사성을 가지지 않으므로 각 층 사이의 뉴런 데이터도 서로 독립적이고 유사성을 가지지 않는다. 따라서, 신경망 추론과정에서 신경망의 각 층의 양자화 파라미터는 대응하는 층의 양자화 대상 데이터에 적용된다. 예를 들어, 신경망의 현재 층이 컨벌루션 층인 경우, 컨벌루션 층의 양자화 대상 데이터에 근거하여 도2에 도시된 기술방안에 따라 현재 컨벌루션 층의 양자화 대상 데이터의 양자화 파라미터를 획득하며, 당해 양자화 파라미터는 현재의 컨벌루션 층에만 적용되며, 당해 신경망의 다른 층에 적용할 수 없다. 다른 층이 컨벌루션 층인 경우에도 적용할 수 없다.
이상과 같이, 데이터 비트폭과 양자화 파라미터의 연장사용대책은 데이터 사이의 유사성에 근거하여 확정되며, 데이터 사이에 유사성이 있으면 데이터 비트폭과 양자화 파라미터는 연장하여 사용할 수 있고, 데이터 사이에 유사성이 없으면 데이터 비트폭 또는 양자화 파라미터를 조정할 필요가 있다. 데이터 사이 유사성의 척도는 일반적으로 KL 분산도로 가늠하며, 이하 수학식 (17)로 가늠할 수도 있다.
Figure pat00268
또한
Figure pat00269
(17)
일부 실시예에서, 데이터 A와 데이터 B가 수학식 (17)을 충족하면 데이터 A와 데이터 B 사이에 유사성이 있다고 판정된다.
설명할 필요가 있는 것은, 상술한 양자화 오차의 확인방법, 데이터 비트폭의 조정방법, 데이터 비트폭 및 양자화 파라미터의 연장사용대책에 관하여, 모두 예로서 모든 상황이 아니라 일부 상황만 열거할 뿐이며, 예를 들어, 상술한 양자화 오차의 확인방법, 데이터 비트폭의 조정방법, 데이터 비트폭 및 양자화 파라미터의 연장사용대책은 모두 신경망의 미조정과정에 적용된다. 그리고, 데이터 사이의 유사성의 척도에 관하여, 상기에서는 KL 분산도 및 수학식 (17)과 같은 유사성의 척도방법을 열거하였지만, 예로서 모든 상황이 아니라 일부 상황만 열거할 뿐이다. 예를 들어, 히스토그램 매칭법, 행렬 분해법, 특징점에 근거하는 이미지유사도 계산법, 근접도 척도표준법 등이 있다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명 기술방안의 본질을 이해한 뒤에 본 발명의 기술방안을 기반으로 다른 변형 또는 변환을 이룰 수 있으며, 그러나, 그 실현된 기능 및 달성한 기술적 효과가 본 발명과 유사하면 모두 본 발명의 보호범위에 속하는 것이다.
이상과 같이, 훈련의 중, 후기에서, 매번 반복의 전후에서 가중치 데이터 변화 폭이 별로 크지 않으므로, 매번 반복의 대응하는 층의 가중치 데이터 사이는 일정한 반복간격 내에서 유사성을 가지지 않으며, 훈련 또는 미조정에서 본 기술방안이 보다 좋은 범용성을 가지고, 인공지능 프로세서 칩의 리소스의 합리적인 어플리케이션을 달성하기 위해서는, 당해 반복간격 범위 내에서 매회 반복의 대응하는 층의 데이터 비트폭 n을 변하지 않도록 유지하고, 당해 반복간격을 넘으면 데이터 비트폭 n을 변화시켜 번 마다 데이터 비트폭 n을 조정할 것인가 아닌가를 확정할 필요가 없는 반복간격을 확정하기 위한 대책이 필요하다. 마찬가지로, 양자화 파라미터도 같아서 인공지능 프로세서 칩의 피크 연산력을 향상시킴과 동시에 양자화에 필요한 부동 소수점 연산의 정밀도를 충족시킬 수 있다.
도6에 도시된 바와 같이, 목표반복간격을 확정하는 방법의 제1 흐름도이다. 도6에 도시된 기술방안에서, 목표반복간격은 적어도 1회의 가중치 업데이트 반복을 포함하며, 동일한 목표반복간격 내 양자화 과정에서 동일한 상기 데이터 비트폭을 채용한다. 상기 목표반복간격의 확정단계는 다음과 같은 단계를 포함한다.
단계601): 사전판정시점에서, 가중치 반복과정에서 상기 양자화 대상 데이터에 대응하는 점 위치 파라미터의 변화추세 값을 확정한다. 여기에서, 상기 사전판정시점은 상기 데이터 비트폭을 조정할 필요가 있는지 여부를 판정하기 위한 시점이며, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응한다.
본 단계에서, 수학식 (18)에 따라 상기 점 위치 파라미터의 변화추세 값은 현재 사전판정시점에 대응하는 가중치 반복과정에서의 점 위치 파라미터의 이동평균 값, 전회 사전판정시점에 대응하는 가중치 반복과정에서의 점 위치 파라미터의 이동평균 값에 근거하여 확정되거나, 현재 사전판정시점에 대응하는 가중치 반복과정에서의 점 위치 파라미터, 전회 사전판정시점에 대응하는 가중치 반복과정에서의 점 위치 파라미터의 이동평균 값에 근거하여 확정된다. 수학식 18의 표달식은 다음과 같다.
Figure pat00270
(18)
수학식 18에서,
Figure pat00271
은 점 위치 파라미터
Figure pat00272
가 훈련 및 반복에 따라 증가되는 이동평균 값이다. 여기에서,
Figure pat00273
는 t 번째의 사전판정시점에 대응하는 점 위치 파라미터
Figure pat00274
가 훈련 및 반복에 따라 증가되는 이동평균 값이고, 수학식 (19)에 따라
Figure pat00275
를 획득한다.
Figure pat00276
는 t 번째의 사전판정시점에 대응하는 점 위치 파라미터
Figure pat00277
이다.
Figure pat00278
은 t-1 번째의 사전판정시점에 대응하는 점 위치 파라미터
Figure pat00279
의 이동평균 값이고,
Figure pat00280
는 하이퍼 파라미터이다.
Figure pat00281
는 점 위치 파라미터
Figure pat00282
의 변화추세를 가늠하며, 점 위치 파라미터
Figure pat00283
의 변화도 현재 양자화 대상 데이터 중 데이터 최대 값
Figure pat00284
의 변화상황에 다르게 구현된다.
Figure pat00285
가 크면 클수록 수치범위가 크게 변화된다는 것을 설명하며, 간격이 보다 짧은 업데이트 빈도가 필요하다. 즉 목표반복간격이 더 작을 필요가 있다.
Figure pat00286
(19)
단계602): 상기 점 위치 파라미터의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정한다.
본 기술방안에서, 수학식 (20)에 따라 목표반복간격을 확정한다. 목표반복간격에 대해서는, 동일한 목표반복간격 내 양자화 과정에서 동일한 상기 데이터 비트폭을 채용하며, 상이한 목표반복간격 내 양자화 과정에서 채용한 데이터 비트폭은 같을 수도 다를 수도 있다.
Figure pat00287
(20)
수학식 (20)에서
Figure pat00288
는 목표반복간격이다.
Figure pat00289
는 점 위치 파라미터의 변화추세 값이다.
Figure pat00290
,
Figure pat00291
는 경험 값이고, 가변 하이퍼 파라미터일 수도 있다. 통상의 하이퍼 파라미터의 최적화방법은
Figure pat00292
,
Figure pat00293
에도 적용되며, 여기에서는 하이퍼 파라미터의 최적화방안에 대하여 다시 언급하지 않는다.
본 기술방안인 경우, 사전판정시점은 목표반복간격에 따라 확정되는 제1 사전판정시점을 포함한다. 구체적으로는, 훈련 또는 미조정과정에서의 t 번째의 사전판정시점에서, 전회 반복에서 대응하는 층을 양자화할 때 채용한 데이터 비트폭을 이용하여 현재 반복의 대응하는 층의 가중치 데이터를 양자화하여, 양자화한 후의 고정 소수점 수를 획득하며, 양자화하기 전의 가중치 데이터와 대응하는 양자화하기 전의 가중치 데이터에 근거하여, 양자화 오차
Figure pat00294
를 확정한다. 양자화 오차
Figure pat00295
를 제1 한계 값 및 제2 한계 값과 각각 비교하며, 비교결과를 이용하여 전회 반복에서 대응하는 층을 양자화할 때 채용한 데이터 비트폭를 조정할지 여부를 확정한다. t 번째의 제1 사전판정시점이 제100회 반복에 대응되고, 제99회 반복에서 사용하는 데이터 비트폭이 n1이라고 가정한다. 제100회 반복에서, 데이터 비트폭 n1에 근거하여 양자화 오차
Figure pat00296
를 확인하고, 양자화 오차
Figure pat00297
를 제1 한계 값, 제2 한계 값과 비교하여 비교결과를 획득한다. 비교결과에 따라 데이터 비트폭 n1을 변경할 필요가 없다는 것을 확인하고, 수학식 (20)을 이용하여 목표반복간격이 8회 반복임을 확인하였으며, 제100회 반복이 현재 목표반복간격 내의 처음 반복이면, 제100회 반복~제107회 반복을 현재 목표반복간격으로 하고, 제100회 반복이 이전 목표반복간격의 최후의 반복인 경우, 제101회 반복~제108회 반복을 현재 목표반복간격으로 한다. 현재 목표반복간격 내에서 양자화할 때 번 마다 여전히 이전 목표반복간격에서 사용된 데이터 비트폭 n1을 계속 사용한다. 이 경우, 상이한 목표반복간격 사이 양자화할 때 사용한 데이터 비트폭은 동일할 수 있다. 제100회 반복~제107회 반복을 현재의 목표반복간격으로 하면, 다음 목표반복간격 내의 제108회 반복을 t+1 번째의 제1 사전판정시점으로 하며, 제101회 반복~제108회 반복을 현재의 목표반복간격으로 하면, 현재의 목표반복간격 내의 제108회 반복을 t+1 번째의 제1 사전판정시점으로 한다. t+1 번째의 제1 사전판정시점에서, 데이터 비트폭 n1에 근거하여 양자화 오차
Figure pat00298
를 확인하고, 양자화 오차
Figure pat00299
를 제1 한계 값, 제2 한계 값과 비교하여 비교결과를 획득한다. 비교결과에 따라 데이터 비트폭 n1을 n2에 변경할 필요가 있다는 것을 확정하고 수학식 (20)을 이용하여 목표반복간격이 55회 반복임을 확인하였다. 따라서 제108회 반복~제163회 반복 또는 제109회 반복~제163회 반복을 목표반복간격으로 하며, 당해 목표반복간격 내에서 양자화할 때 각 반복에서 데이터 비트폭 n2을 사용한다. 이 경우 상이한 목표반복간격 사이 양자화할 때 사용한 데이터 비트폭은 다를 수 있다.
본 기술방안인 경우, 제1 사전판정시점이 목표반복간격 내의 처음 반복이든 최후 반복이든 관계없이, 모두 수학식 (18)을 통해 점 위치 파라미터의 변화추세 값을 획득하는 데 적합하다. 현재 순간의 제1 사전판정시점이 현재 목표반복간격의 처음 반복이면, 수학식 (18)에서,
Figure pat00300
은 현재 목표반복간격의 처음 반복대응시점에 대응하는 점 위치 파라미터
Figure pat00301
가 훈련 및 반복에 따라 증가되는 이동평균 값이고,
Figure pat00302
는 현재 목표반복간격의 처음 반복대응시점에 대응하는 점 위치 파라미터
Figure pat00303
이며,
Figure pat00304
은 이전 목표반복간격의 처음 반복대응시점에 대응하는 점 위치 파라미터
Figure pat00305
가 훈련 및 반복에 따라 증가되는 이동평균 값이다. 현재 순간의 제1 사전판정시점이 현재 목표반복간격의 최후 반복이면, 수학식 (18)에서
Figure pat00306
은 현재 목표반복간격의 최후 반복대응시점에 대응하는 점 위치 파라미터
Figure pat00307
가 훈련 및 반복에 따라 증가되는 이동평균 값이고,
Figure pat00308
는 현재 목표반복간격의 최후 반복대응시점에 대응하는 점 위치 파라미터
Figure pat00309
이며,
Figure pat00310
은 이전 목표반복간격의 최후 반복대응시점에 대응하는 점 위치 파라미터
Figure pat00311
가 훈련 및 반복에 따라 증가되는 이동평균 값이다.
본 기술방안인 경우, 제1 사전판정시점을 포함하는 것에 기초하여, 사전판정시점은 제2 사전판정시점을 포함할 수도 있다. 제2 사전판정시점은 데이터 변동폭 곡선에 의해 확정된다. 신경망 훈련과정에서 빅 데이터의 데이터 변동폭 상화에 근거하여 도5a에 도시된 바와 같은 상기 데이터 변동폭 곡선을 획득한다.
가중치 데이터를 예로 들면, 도5a에 도시된 데이터 변동폭 곡선으로부터 알 수 있는 바와 같이, 훈련 시작으로부터 T 번째 반복까지의 반복간격 주기 내에서, 가중치를 업데이트할 때 마다 데이터 변동폭이 매우 크다. 현재 사전판정시점에서, 양자화하는 경우, 현재 반복에서 우선 전회 반복의 데이터 비트폭 n1을 이용하여 양자화하며, 획득한 양자화 결과와 대응하는 양자화 전의 데이터에 따라 대응하는 양자화 오차를 확정하며, 양자화 오차를 제1 한계 값, 제2 한계 값과 각각 비교하고, 비교결과에 따라 데이터 비트폭 n1을 조정하여 데이터 비트폭 n2를 획득한다. 데이터 비트폭 n2를 이용하여 현재 반복에 관련된 양자화 대상 가중치 데이터를 양자화한다. 그 다음에 수학식 (20)에 따라 목표반복간격을 확정하여 제1 사전판정시점을 확정하며, 제1 사전판정시점에서 데이터 비트폭을 조정할지 여부와 조정방법을 다시 판정하고, 수학식 (20)에 따라 다음 목표반복간격을 확정하여 다음의 제1 사전판정시점을 획득한다. 훈련 시작으로부터 T 번째 반복까지의 반복간격 주기 내에서, 매회 반복 전후의 가중치 데이터 변화 폭이 매우 크기 때문에 매번 반복의 대응하는 층의 가중치 데이터 사이에 유사성이 없으며, 정밀도 문제를 충조시키기 위해, 양자화할 때 현재 반복의 각 층의 데이터는 전회 반복의 대응하는 층의 대응 양자화 파라미터를 계속 사용할 수 없으며, 이전 T회 반복에서는 반복 마다 데이터 비트폭을 조정할 수 있다. 이 때, 양자화할 때 이전 T회 반복에서 반복 마다 사용하는 데이터 비트폭이 모두 다르며, 목표반복간격은 1회 반복이다. 인공지능 프로세서 칩의 리소스를 최적으로 이용하기 위해, 이전 T회 반복의 목표반복간격은 도5a에 도시된 데이터 변동폭 곡선에 의해 개시되는 규칙에 따라 사전에 미리 설정할 수 있다. 즉, 데이터 변동폭 곡선의 이전 T회 반복의 목표반복간격에 근거하여 직접 미리 설정하며, 수학식 (20)을 통해 이전 T회 반복의 매번 반복에 대응하는 가중치 업데이트 반복이 완료될 때의 시점을 확인하여 제2 사전판정시점으로 할 필요가 없다. 따라서 인공지능 프로세서 칩의 리소스를 보다 합리적으로 이용되게 한다. 도5a에 도시된 데이터 변동폭 곡선은 T 번째 반복부터 변동폭이 크지 않으며, 훈련의 중, 후기에서는 번 마다 양자화 파라미터를 다시 확인할 필요가 없으며, T 번째 반복 또는 T+1 번째 반복에서 현재 반복에 대응하는 양자화하기 전의 데이터 및 양자화한 후의 데이터를 이용하여 양자화 오차를 확정하고, 양자화 오차에 따라 데이터 비트폭을 조정할지 여부 및 조정방법을 확정하며, 또 수학식 (20)에 따라 목표반복간격을 확정해야 한다. 확인한 목표반복간격이 55회 반복이면, T 번째 반복 또는 T+1 번째 반복 후 55회 반복을 사이로 대응하는 시점을 제1 사전판정시점으로 하고 데이터 비트폭을 조정할지 여부 및 조정방법을 다시 판정하며, 수학식 (20)에 따라 다음 목표반복간격을 확정하고, 동일한 주기(epoch) 내에서 모든 반복 연산이 완료될 때까지 다음의 제1 사전판정시점을 확정한다. 이를 바탕으로, 각 주기(epoch) 후에, 데이터 비트폭 또는 양자화 파라미터에 대하여 적응성을 다시 조정하며, 최종적으로 양자화된 후의 데이터를 사용하여 정밀도가 기대에 해당한 신경망을 획득한다.
특히, 도5a에 도시된 가중치 데이터 변동폭 곡선도에 근거하여 T의 값을 130으로 확정하면(이 수치는 도5a와 대응되지 않으며, 설명의 편의를 위해, 단지 T의 값이 130이라고 가정할 뿐이며, 가정 값에 한정되지 않는다. ), 훈련과정 중 제130회 반복이 제2 사전판정시점으로 되고, 현재의 제1 사전판정시점이 훈련과정 중 제100회 반복이며, 제100회 반복에서, 수학식 (20)에 따라 확정한 목표반복간격이 35회 반복이다. 당해 목표반복간격 내에서 제130회 반복까지 훈련하여 제2 사전판정시점에 도달하며, 이 때에는 제130회 반복에 대응하는 시점에서 데이터 비트폭을 조정할지 여부 및 조정방법을 확정하고, 수학식 (20)에 근거하여 목표반복간격도 확정해야 한다. 이 경우 확정한 목표반복간격이 42회 반복이면, 제130회 반복부터 제172회 반복까지를 목표반복간격으로 하며, 목표반복간격이 35회 반복일 때 확정한 제1 사전판정시점에 대응하는 제135회 반복이 목표반복간격인 42회 반복 내에 있고, 제135회 반복에서는 수학식 (20)에 따라 데이터 비트폭을 조정할지 여부 및 조정방법을 다시 판정할 수 있다. 또한 제135회 반복에서 평가 및 사전판정을 하지 않고, 직접 제172회 반복으로 이동하고 데이터 비트폭을 조정할지 여부의 평가 및 조정방법을 다시 실행할 수도 있다. 요약하면, 제135회 반복에서 평가 및 사전판정할지 여부는 모두 본 기술방안에 적합하다.
이상과 같이, 데이터 변동폭 곡선에 따라 사전에 제2 사전판정시점을 미리 설정하며, 훈련 또는 미조정의 초기에서는 인공지능 프로세서 칩의 리소스를 소비햐여 목표반복간격을 확정할 필요가 없으며, 미리 설정된 제2 사전판정시점에서 직접 양자화 오차에 근거하여 데이터 비트폭을 조정하고, 조정된 데이터 비트폭을 이용하여 현재 반복에 관련된 양자화 대상 데이터를 양자화한다. 훈련 또는 미조정의 중, 후기에서는 수학식 (20)에 따라 목표반복간격을 획득하고, 따라서 대응하는 제1 사전판정시점을 확정하며, 각 제1 사전판정시점에서 데이터 비트폭을 조정할지 여부 및 조정방법 확정한다. 이러한 방식으로 신경망 연산에 필요한 부동 소수점 연산의 정밀도를 충족시킴과 동시에 합리적으로 인공지능 프로세서 칩의 리소스를 이용할 수 있으며, 양자화할 때의 효율을 대폭으로 향상시킬 수 있다.
실제로는 보다 정확한 데이터 비트폭의 목표반복간격을 획득하기 위해, 점 위치 파라미터의 변화추세 값
Figure pat00312
뿐만 아니라, 점 위치 파라미터의 변화추세 값
Figure pat00313
및 데이터 비트폭의 변화추세 값
Figure pat00314
를 동시에 고려할 수 있다. 도7에 도시된 바와 같이, 목표반복간격을 확정하는 방법의 제2 흐름도이다. 상기 목표반복간격의 확정단계는 다음과 같은 단계를 포함한다.
단계701): 사전판정시점에서, 가중치 반복과정에서 상기 양자화 대상 데이터에 대응하는 점 위치 파라미터의 변화추세 값, 데이터 비트폭의 변화추세 값을 확정한다. 여기에서, 상기 사전판정시점은 상기 데이터 비트폭을 조정할 필요가 있는지 여부를 판정하기 위한 시점이며, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응한다.
한편, 도6에 도시된 점 위치 파라미터의 변화추세 값에 근거하여 데이터 비트폭의 목표반복간격을 확정하는 기술방안의 내용은 도7에 도시된 기술방안에 적용되어, 여기에서 다시 언급하지 않는다.
본 단계에서 수학식 (21)에 따라 대응하는 상기 양자화 오차를 이용하여 상기 데이터 비트폭의 변화추세 값을 확정한다.
Figure pat00315
(21)
수학식 (21)에서
Figure pat00316
는 하이퍼 파라미터이고,
Figure pat00317
는 양자화 오차이며,
Figure pat00318
는 데이터 비트폭의 변화추세 값이다.
Figure pat00319
는 양자화할 때 채용하는 데이터 비트폭 n의 변화추세를 가늠하며,
Figure pat00320
가 크면 클 수록 고정 소수점의 비트폭을 업데이트해야 할 가능성이 높아지고 간격이 보다 짧은 업데이트 빈도가 필요하게 된다.
도7에 관련된 점 위치 파라미터의 변화추세 값은 여전히 수학식 (18)에 따라 획득할 수 있으며, 수학식 (18) 중
Figure pat00321
는 수학식 (19)에 따라 획득한다.
Figure pat00322
는 점 위치 파라미터
Figure pat00323
의 변화추세를 가늠하며, 점 위치 파라미터
Figure pat00324
의 변화가 현재 양자화 대상 데이터 중 데이터 최대 값
Figure pat00325
의 변화상황도 다르게 구현하기 때문에
Figure pat00326
가 크면 클 수록 수치범위변화가 급히 변함을 의미하며, 간격이 보다 짧은 업데이트 빈도가 필요하게 된다. 즉 목표반복간격이 보다 작아진다.
단계702): 상기 점 위치 파라미터의 변화추세 값과 상기 데이터 비트폭의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정한다.
본 기술방안에서는 수학식 (22)에 따라 목표반복간격을 확정한다. 목표반복간격에 대해서는, 동일한 목표반복간격 내 양자화 과정에서 동일한 상기 데이터 비트폭을 채용하며, 상이한 목표반복간격 내 양자화 과정에서 채용한 데이터 비트폭은 같을 수도 다를 수도 있다.
Figure pat00327
(22)
수학식 (22)에서
Figure pat00328
는 목표반복간격이다.
Figure pat00329
,
Figure pat00330
는 하이퍼 파라미터이다.
Figure pat00331
는 점 위치 파라미터의 변화추세 값이다.
Figure pat00332
는 데이터 비트폭의 변화추세 값이다.
Figure pat00333
,
Figure pat00334
는 경험 값이며, 가변 하이퍼 파라미터일 수도 있다. 통상의 하이퍼 파라미터의 최적화방법은 모두
Figure pat00335
,
Figure pat00336
에도 적합하며, 여기에서는 하이퍼 파라미터의 최적화방안에 대하여 다시 언급하지 않는다.
본 기술방안인 경우,
Figure pat00337
는 점 위치 파라미터
Figure pat00338
의 변화상황을 가늠하는 데 사용되나 데이터 비트폭 n의 변화에 의해 초래되는 점 위치 파라미터
Figure pat00339
의 변화는 무시해야 한다. 이것은
Figure pat00340
에서 데이터 비트폭 n의 변화가 이미 반영되었기 때문이다.
Figure pat00341
에서 이 무시 작업을 수행하지 않으면 수학식 (22)에 따라 확정하는 목표반복간격
Figure pat00342
가 부정확하여 제1 사전판정시점을 너무 많게하며, 훈련 또는 미조정과정에서 데이터 비트폭 n의 업데이트 여부 및 업데이트 방법에 대한 작업을 빈번하게 수행히기 쉬워 인공지능 프로세서 칩의 리소스가 합리적으로 이용되지 않게 한다.
상술한 설명에 따라
Figure pat00343
Figure pat00344
에 의해 확정된다. t-1 번째의 사전판정시점에 대응하는 데이터 비트폭이 n1이고, 대응하는 점 위치 파라미터가
Figure pat00345
이며, 점 위치 파라미터가 훈련 및 반복에 따라 증가되는 이동평균 값이
Figure pat00346
이라고 가정한다. 데이터 비트폭 n1을 이용하여 양자화 대상 데이터를 양자화하며, 양자화된 후의 고정 소수점 수를 획득한다. 양자화하기 전의 데이터와 대응하는 양자화된 후의 데이터에 근거하여 양자화 오차
Figure pat00347
를 확정하며, 양자화 오차
Figure pat00348
와 한계 값의 비교결과게 근거하여 데이터 비트폭
Figure pat00349
Figure pat00350
에 조정하며, 데이터 비트폭은
Figure pat00351
비트 조정되고, t 번째의 사전판정시점에서 양자화할 때 사용하는 데이터 비트폭이
Figure pat00352
이다. 데이터 비트폭의 변화에 의해 초래되는 점 위치 파라미터의 변화를 무시하기 위해,
Figure pat00353
을 확정할 때 다음 두 가지 최적화방식 중 한 가지를 선택하면 된다. 첫 번째 방식은 데이터 비트폭이
Figure pat00354
비트 증가되면,
Figure pat00355
의 값은
Figure pat00356
로 되고,
Figure pat00357
의 값은
Figure pat00358
로 되며,
Figure pat00359
,
Figure pat00360
을 수학식 (19)에 대입하여
Figure pat00361
을 획득한다. 즉 t 번째의 사전판정시점에 대응하는 점 위치 파라미터가 훈련 및 반복에 따라 증가되는 이동평균 값이다. 데이터 비트폭이
Figure pat00362
비트 감소되면,
Figure pat00363
의 값은
Figure pat00364
로 되고,
Figure pat00365
의 값은
Figure pat00366
로 되며,
Figure pat00367
,
Figure pat00368
을 수학식 (19)에 대입하여
Figure pat00369
을 획득한다. 즉 t 번째의 사전판정시점에 대응하는 점 위치 파라미터가 훈련 및 반복에 따라 증가되는 이동평균 값이다. 두 번째 방식은 데이터 비트폭이
Figure pat00370
비트 증가되든
Figure pat00371
비트 감소되든,
Figure pat00372
의 값은
Figure pat00373
이고,
Figure pat00374
의 값은
Figure pat00375
이며,
Figure pat00376
,
Figure pat00377
을 수학식 (19)에 대입하여
Figure pat00378
을 획득한다. 데이터 비트폭이
Figure pat00379
비트 증가할 때,
Figure pat00380
에서
Figure pat00381
을 감산하며, 데이터 비트폭이
Figure pat00382
비트 감소할 때,
Figure pat00383
Figure pat00384
을 가산하며, 결과를 t 번째의 사전판정시점에 대응하는 점 위치 파라미터가 훈련 및 반복에 따라 증가되는 이동평균 값으로 한다. 이 두 가지 방식은 등가적이며, 모두 데이터 비트폭의 변화에 의해 초래되는 점 위치 파라미터의 변화를 무시할 수 있고, 보다 정확한 목표반복간격을 획득하여 인공지능 프로세서 칩의 리소스 활용율을 향상시킬 수 있다.
실제 응용에서, 데이터 비트폭 n과 점 위치 파라미터
Figure pat00385
는 양자화 정밀도에 큰 영향을 주며, 양자화 파라미터 중 제2 스케일 팩터
Figure pat00386
및 오프셋
Figure pat00387
는 양자화 정밀도에 큰 영향을 주지 않는다. 제1 스케일 팩터
Figure pat00388
인 경우, 위에서 이미 언급하였는 바, 두 번째 경우에 속하면
Figure pat00389
를 전체적으로 제1 스케일 팩터
Figure pat00390
로 간주하며, 점 위치 파라미터
Figure pat00391
가 양자화 정밀도에 큰 영향을 주기 때문에, 이 경우 제1 스케일 팩터
Figure pat00392
은 양자화에 큰 영향을 준다. 따라서, 본 기술방안에서, 데이터 비트폭 n의 변화 여부와 점 위치 파라미터
Figure pat00393
의 가변 여부에 관계없이 점 위치 파라미터
Figure pat00394
의 목표반복간격을 확정하는 것도 매우 의미있는 것이며, 도6에 도시된 기술방안의 사상은 점 위치 파라미터
Figure pat00395
의 목표반복간격을 확정하는 데 적용할 수 있다. 따라서, 점 위치 파라미터
Figure pat00396
의 목표반복간격을 확정하는 방법은 도8A에 도시된 바와 같이 다음과 같은 단계를 포함한다.
단계801): 사전판정시점에서, 가중치 반복과정에 관련된 양자화 대상 데이터에 대응하는 점 위치 파라미터의 변화추세 값을 확정한다. 여기에서, 상기 사전판정시점은 상기 양자화 파라미터에 대해 조정할 필요가 있는지 여부를 판정하기 위한 시점이고, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응한다.
단계802): 상기 점 위치 파라미터의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정한다.
또한, 도6에 도시된 점 위치 파라미터의 변화추세 값에 근거하여 양자화 파라미터의 목표반복간격을 확정하는 기술방안의 내용은 도8A에 도시된 기술방안에 적용되어, 여기에서 다시 언급하지 않는다. 도8A에 도시된 기술방안인 경우, 양자화 파라미터는 점 위치 파라미터인 것이 바람직하다.
설명할 필요가 있는 것은, 상술한 데이터 비트폭의 목표반복간격과 양자화 파라미터의 목표반복간격을 확정하는 것은 모두 예로서 모든 상황이 아니라 일부 상황만 열거할 뿐이며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명 기술방안의 본질을 이해한 뒤에 본 발명의 기술방안을 기반으로 다른 변형 또는 변환을 이룰 수 있다. 예를 들어, 데이터 비트폭의 목표반복간격을 확정하는 동안에 양자화 파라미터의 목표반복간격을 확정하는 것도 도6, 도7 및 도8A에 도시된 기술방안에 적용된다. 그러나, 그 실현된 기능 및 달성한 기술적 효과가 본 발명과 유사하면, 모두 본 발명의 보호범위에 속하는 것이다.
본 기술방안을 이용하여 양자화 파라미터를 확정하고, 양자화 오차에 근거하여 데이터 비트폭 또는 양자화 파라미터를 조정하며, 데이터 비트폭 또는 양자화 파라미터에 대해 조정할지 여부의 목표반복간격을 확정하였고, 신경망 연산과정에서 적절한 시점에서 데이터 비트폭 또는 양자화 파라미터에 대한 조정을 달성하여 적절한 반복시점에서 적절한 양자화 파라미터를 사용하게 하며, 인공지능 프로세서 칩이 신경망 연산을 실행하는 속도를 고정 소수점 연산의 속도에 달하게 하고 , 인공지능 프로세서 칩의 피크 연산력을 향상시킴과 동시에 연산에 필요한 부동 소수점 연산의 정밀도를 충족시킨다.
설명할 필요가 있는 것은, 상술한 각 방법 실시예에 대하여, 간단히 설명하기 위해 이들을 동작의 일련 조합으로서 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명은 설명된 동작의 순서에 의해 한정되지 않는다는 것을 인식해야 한다. 본 발명에 따르면, 특정 단계는 다른 순서를 채용하거나 동시에 수행할 수 있기 때문이다. 따라서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 명세서에서 설명된 실시예는 모두 선택할 수 있는 실시예에 속하며, 관련되는 동작과 모듈은 반드시 본 발명에 필수적인 것이 아니라는 것도 인식해야 한다.
또한, 여기서 양자화 파라미터는 미리 설정한 양자화 파라미터(즉, 오프라인 양자화 파라미터)일 수도 있고, 양자화 대상 데이터를 처리하여 획득한 양자화 파라미터(즉, 온라인 양자화 파라미터)일 수도 있다는 것이 이해될 것이다. 신경망의 추론, 훈련 및 미조정과정에서, 목표데이터를 오프라인 양자화 또는 온라인 양자화할 수 있다. 여기에서, 오프라인 양자화는 양자화 파라미터를 이용하여 양자화 대상 데이터를 오프라인 처리하는 것일 수 있다. 온라인 양자화는 양자화 파라미터를 이용하여 양자화 대상 데이터를 온라인 처리하는 것일 수 있다. 예를 들어, 신경망이 인공지능 칩상에서 가동하며, 양자화 대상 데이터와 양자화 파라미터를 인공지능 칩 외의 연산장치에 송신하여 오프라인 양자화를 수행하거나, 인공지능 칩 외의 연산장치를 이용하여 미리 획득한 양자화 대상 데이터와 양자화 파라미터를 오프라인 양자화하거나 할 수 있다. 한편, 인공지능 칩이 신경망을 가동하는 과정에서, 인공지능 칩은 양자화 대상 데이터에 대하여 양자화 파라미터를 이용하여 온라인 양자화할 수 있다. 신경망에 복수의 양자화 대상 층이 포함되는 경우, 각 양자화 대상 층은 각각 온라인 양자화와 오프라인 양자화를 수행할 수 있다. 본 발명에서는 각 양자화 대상 층의 양자화 과정이 온라인일지 오프라인일지에 대하여 한정하지 않는다.
본 발명의 실시예에 따르면, 데이터 비트폭을 조정하기 위한 방법을 제공하고 있다. 이하, 도8B 내지 도8V를 참조하여 설명한다. 도8B는 본 발명의 일 실시예에 있어서 데이터 비트폭 조정방법(800B)의 흐름도를 도시한다. 당해 방법은 다음과 같은 단계를 포함할 수 있다.
S114, 상기 현재 검사 반복의 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정한다. 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 현재 검사 반복의 양자화 대상 데이터에 대해 양자화하는 것을 통해 획득한다.
바람직하게는, 상술한 프로세서는 초기 데이터 비트폭을 채용하여 양자화 대상 데이터를 양자화하며, 상술한 양자화 데이터를 획득할 수 있다. 당해 현재 검사 반복의 초기 데이터 비트폭은 하이퍼 파라미터일 수도 있고, 당해 현재 검사 반복의 초기 데이터 비트폭은 당해 현재 검사 반복하기 전의 이전 검사 반복의 양자화 대상 데이터에 근거하여 확정될 수도 있다.
구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 현재 검사 반복의 양자화 데이터에 근거하여 중간표현 데이터를 확정할 수 있다. 바람직하게는, 상기 중간표현 데이터는 상술한 양자화 대상 데이터의 표현형식과 일치하다. 예를 들어, 프로세서는 상술한 양자화 데이터에 대해 역 양자화를 수행하여 양자화 대상 데이터의 표현형식과 이치한 중간표현 데이터를 획득할 수 있다. 여기에서, 역 양자화는 양자화의 반대과정을 의미한다. 예를 들어, 당해 양자화 데이터는 수학식 23을 채용하여 획득할 수 있으며, 프로세서는 수학식 24에 따라 양자화 데이터에 대해 역 양자화를 수행하고, 대응하는 중간표현 데이터를 획득하며, 양자화 대상 데이터와 중간표현 데이터에 근거하여 양자화 오차를 확정할 수 있다.
Figure pat00397
(23)
Figure pat00398
(24)
또한, 프로세서는 양자화 대상 데이터 및 그에 대응하는 중간표현 데이터에 근거하여 계산을 통해 양자화 오차를 획득할 수 있다. 현재 검사 반복의 양자화 대상 데이터를
Figure pat00399
=[
Figure pat00400
]로 가정하고, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터를
Figure pat00401
=[
Figure pat00402
]로 가정한다. 프로세서는 당해 양자화 대상 데이터
Figure pat00403
및 그에 대응하는 중간표현 데이터
Figure pat00404
에 근거하여 오차항을 확정하며, 당해 오차항에 근거하여 양자화 오차를 확정할 수 있다.
바람직하게는, 프로세서는 중간표현 데이터
Figure pat00405
중 각 요소들의 합, 및 양자화 대상 데이터
Figure pat00406
중 각 요소들의 합에 근거하여 상술한 오차항을 확정할 수 있으며, 당해 오차항은 중간표현 데이터
Figure pat00407
중 각 요소들의 합과 양자화 대상 데이터
Figure pat00408
중 각 요소들의 합의 차이 값일 수 있다. 그리고, 프로세서는 당해 오차항에 근거하여 양자화 오차를 확정할 수 있다. 구체적인 양자화 오차는 다음과 같은 수학식에 따라 확정할 수 있다.
Figure pat00409
수학식(25)
여기에서,
Figure pat00410
는 양자화 대상 데이터 중의 요소이고,
Figure pat00411
은 중간표현 데이터
Figure pat00412
의 요소이다.
바람직하게는, 프로세서는 양자화 대상 데이터 중 각 요소와 중간표현 데이터
Figure pat00413
중 대응하는 요소의 차이 값을 각각 계산하여, m 개의 차이 값을 획득하며, 당해 m 개의 차이 값의 합을 오차항으로 할 수 있다. 그리고, 프로세서는 당해 오차항에 근거하여 양자화 오차를 확정할 수 있다. 구체적인 양자화 오차는 다음과 같은 수학식에 따라 확정할 수 있다.
Figure pat00414
수학식(26)
여기에서,
Figure pat00415
는 양자화 대상 데이터 중의 요소이고,
Figure pat00416
은 중간표현 데이터
Figure pat00417
의 요소이다.
바람직하게는, 상술한 양자화 대상 데이터 중 각 요소와 중간표현 데이터
Figure pat00418
중 대응하는 요소의 차이 값은 대략
Figure pat00419
과 같을 수 있기 때문에 상술한 양자화 오차는 다음과 같은 수학식에 따라 확정할 수도 있다.
Figure pat00420
수학식(27)
여기에서, m은 목표데이터에 대응하는 중간표현 데이터
Figure pat00421
의 수이며, s는 점 위치이고,
Figure pat00422
는 양자화 대상 데이터 중의 요소이다.
바람직하게는, 상기 중간표현 데이터는 상술한 양자화 데이터의 데이터 표현형식과 일치하고, 당해 중간표현 데이터와 양자화 데이터에 근거하여 양자화 오차를 확정할 수도 있다. 예를 들어, 양자화 대상 데이터는
Figure pat00423
로 표달할 수 있으며, 중간표현 데이터
Figure pat00424
를 확정할 수 있고, 당해 중간표현 데이터
Figure pat00425
는 상술한 양자화 데이터와 동일한 데이터 표현형식을 가질 수 있다. 이 때 프로세서는 중간표현 데이터
Figure pat00426
과 상술한 수학식 (23)에 따라 계산하여 획득한
Figure pat00427
에 근거하여 양자화 오차를 확정할 수 있다. 구체적인 양자화 오차확정방식은 상술한 수학식 (25) ~ 수학식 (27)을 참조할 수 있다.
S115, 상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정한다.
구체적으로는, 프로세서는 당해 양자화 오차에 근거하여, 자기 적응적으로 현재 검사 반복에 대응하는 데이터 비트폭을 조정하여 당해 현재 검사 반복이 조정된 후의 목표데이터 비트폭을 확정할 수 있다. 당해 양자화 오차가 미리 설정된 조건을 충족하는 경우, 현재 검사 반복에 대응하는 데이터 비트폭을 변하지 않도록 유지할 수 있다. 즉 당해 현재 검사 반복의 목표데이터 비트폭은 초기 데이터 비트폭과 같을 수 있다. 양자화 오차가 미리 설정된 조건을 충족하지 않는 경우, 프로세서는 현재 검사 반복의 양자화 대상 데이터에 대응하는 데이터 비트폭을 조정하여 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득할 수 있다. 프로세서가 당해 목표데이터 비트폭을 채용하여 현재 검사 반복의 양자화 대상 데이터를 양자화할 때 양자화 오차가 상술한 미리 설정된 조건을 충족한다. 바람직하게는, 상술한 미리 설정된 조건은 사용자가 설정한 미리 설정한 한계 값이여도 좋다.
바람직하게는, 도8C는 본 발명의 다른 실시예에 있어서 데이터 비트폭 조정방법(800C)의 흐름도를 도시한다. 도8C에 도시된 바와 같이, 상술한 작업(S115)은 다음과 같은 단계를 포함할 수 있다.
S1150, 프로세서는 상술한 양자화 오차가 제1 미리 설정된 한계 값 이상인지 판정할 수 있다.
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 작업(S1151)을 수행하여 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가시켜 현재 검사 반복의 목표데이터 비트폭을 획득할 수 있다. 양자화 오차가 제1 미리 설정된 한계 값보다도 작으면, 현재 검사 반복의 데이터 비트폭을 변하지 않도록 유지할 수 있다.
더 바람직하게는, 프로세서는 1회 조정을 경유하여 상술한 목표데이터 비트폭을 획득할 수 있다. 예를 들어, 현재 검사 반복의 초기 데이터 비트폭이 n1인 경우, 프로세서는 1회 조정을 경유하여 당해 목표데이터 비트폭 n2=n1+t를 확정할 수 있다, 여기에서, t는 데이터 비트폭의 조정 값이다. 여기에서, 당해 목표데이터 비트폭 n2를 채용하여 현재 검사 반복의 양자화 대상 데이터를 양자화할 때, 획득한 양자화 오차는 상기 제1 미리 설정된 한계 값보다도 작을 수 있다.
더 바람직하게는, 프로세서는 양자화 오차가 제1 미리 설정된 한계 값 미만이 될 때까지 여러 번의 조정을 경유하여 목표데이터 비트폭을 획득하고, 당해 양자화 오차가 제1 미리 설정된 한계 값 미만인 경우 데이터 비트폭을 목표데이터 비트폭으로 할 수 있다. 구체적으로는, 상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 제1 미리 설정된 비트폭 스텝에 근거하여 제1 중간 데이터 비트폭을 확정하며, 그 다음에 프로세서는 당해 제1 중간 데이터 비트폭에 근거하여 현재 검사 반복의 양자화 대상 데이터를 양자화하여 양자화 데이터를 획득하고, 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제1 미리 설정된 한계 값 미만이 될 때까지 양자화 오차를 확정할 수 있다. 프로세서는 당해 양자화 오차가 제1 미리 설정된 한계 값 미만인 경우에 대응하는 데이터 비트폭을 당해 목표데이터 비트폭으로 할 수 있다.
예를 들어, 현재 검사 반복의 초기 데이터 비트폭이 n1인 경우, 프로세서는 당해 초기 데이터 비트폭 n1을 채용하여 현재 검사 반복의 양자화 대상 데이터 A를 양자화하여 양자화 데이터 B1을 획득하고, 당해 양자화 대상 데이터 A와 양자화 데이터 B1에 근거하여 계산을 통해 양자화 오차 C1을 획득할 수 있다. 양자화 오차 C1이 제1 미리 설정된 한계 값 이상인 경우, 프로세서는 제1 중간 데이터 비트폭 n2=n1+t1을 확정한다. 여기에서, t1은 제1 미리 설정된 비트폭 스텝이다. 그 다음에는, 프로세서는 당해 제1 중간 데이터 비트폭 n2에 근거하여 현재 검사 반복의 양자화 대상 데이터를 양자화하여 현재 검사 반복의 양자화 데이터 B2를 획득하고, 당해 양자화 대상 데이터 A와 양자화 데이터 B2에 근거하여 계산을 통해 양자화 오차 C2를 획득할 수 있다. 당해 양자화 오차 C2가 제1 미리 설정된 한계 값 이상인 경우, 프로세서는 제1 중간 데이터 비트폭 n2=n1+t1+t1을 확정하며, 그 다음에는 당해 새로운 제1 중간 데이터 비트폭에 근거하여 현재 검사 반복의 양자화 대상 데이터 A를 양자화하고, 양자화 오차가 제1 미리 설정된 한계 값 미만이 될 때까지 대응하는 양자화 오차를 계산한다. 양자화 오차 C1이 제1 미리 설정된 한계 값 미만이면, 당해 초기 데이터 비트폭 n1을 변하지 않도록 유지할 수 있다.
또한, 상술한 제1 미리 설정된 비트폭 스텝은 일정한 값일 수 있다. 예를 들어, 양자화 오차가 제1 미리 설정된 한계 값보다도 클 때 마다 프로세서는 현재 검사 반복에 대응하는 데이터 비트폭을 같은 비트폭 값 만큼 증가시킬 수 있다. 바람직하게는, 상술한 제1 미리 설정된 비트폭 스텝은 가변 값일 수도 있다. 예를 들어, 프로세서는 양자화 오차와 제1 미리 설정된 한계 값의 차이 값을 계산할 수 있다. 당해 양자화 오차와 제1 미리 설정된 한계 값의 차이 값이 작으면 작을 수록 제1 미리 설정된 비트폭 스텝의 값이 작아진다.
바람직하게는, 도8D는 본 발명의 또 다른 실시예에 있어서 데이터 비트폭 조정방법(800D)의 흐름도를 도시한다. 도8D에 도시된 바와 같이, 상술한 작업(S115)은 다음과 같은 단계를 더 포함할 수 있다.
S1152, 프로세서는 상술한 양자화 오차가 제2 미리 설정된 한계 값 이하인지 여부를 판정할 수 있다.
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 작업(S1153)을 수행하여 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소시키고 현재 검사 반복의 목표데이터 비트폭을 획득할 수 있다. 양자화 오차가 제2 미리 설정된 한계 값보다도 클 경우, 현재 검사 반복의 데이터 비트폭을 변하지 않도록 유지할 수 있다.
더 바람직하게는, 프로세서는 1회 조정을 경유하여 상술한 목표데이터 비트폭을 획득할 수 있다. 예를 들어, 현재 검사 반복의 초기 데이터 비트폭이 n1인 경우, 프로세서는 1회 조정을 경유하여 당해 목표데이터 비트폭 n2=n1-t를 확정할 수 있다. 여기에서, t는 데이터 비트폭의 조정 값이다. 여기에서, 당해 목표데이터 비트폭 n2를 채용하여 현재 검사 반복의 양자화 대상 데이터를 양자화할 때, 획득한 양자화 오차가 상기 제2 미리 설정된 한계 값보다도 클 수 있다.
더 바람직하게는, 프로세서는 양자화 오차가 제2 미리 설정된 한계 값보다 클 때까지 여러 번 조정을 통해 목표데이터 비트폭을 획득하고, 당해 양자화 오차가 제2 미리 설정된 한계 값보다 클 때의 데이터 비트폭을 목표데이터 비트폭으로 할 수 있다. 구체적으로는, 상기 양자화 오차가 제1 미리 설정된 한계 값 이하이면, 제2 미리 설정된 비트폭 스텝에 의해 제2 중간 데이터 비트폭을 확정한다. 그 다음에는 프로세서는 당해 제2 중간 데이터 비트폭에 근거하여 현재 검사 반복의 양자화 대상 데이터를 양자화하여 양자화 데이터를 획득하고, 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 양자화 오차를 확정할 수 있다. 프로세서는 당해 양자화 오차가 제2 미리 설정된 한계 값보다 큰 경우에 대응하는 데이터 비트폭을 당해 목표데이터 비트폭으로 할 수 있다.
예를 들어, 현재 검사 반복의 초기 데이터 비트폭이 n1인 경우, 프로세서는 당해 초기 데이터 비트폭 n1을 채용하여 현재 검사 반복의 양자화 대상 데이터 A를 양자화하여 양자화 데이터 B1을 획득하고, 당해 양자화 대상 데이터 A와 양자화 데이터 B1에 근거하여 계산을 통해 양자화 오차 C1을 획득할 수 있다. 양자화 오차 C1이 제2 미리 설정된 한계 값 이하인 겨우, 프로세서는 제2 중간 데이터 비트폭 n2=n1-t2를 확정한다. 여기에서, t2는 제2 미리 설정된 비트폭 스텝이다. 그 다음에는, 프로세서는 당해 제2 중간 데이터 비트폭 n2에 근거하여 현재 검사 반복의 양자화 대상 데이터를 양자화하여 현재 검사 반복의 양자화 데이터 B2를 획득하고, 당해 양자화 대상 데이터 A와 양자화 데이터 B2에 근거하여 계산을 통해 양자화 오차 C2를 획득할 수 있다. 당해 양자화 오차 C2가 제2 미리 설정된 한계 값 이하인 경우, 프로세서는 제2 중간 데이터 비트폭 n2=n1-t2-t2를 확정한다. 그 다음에는 당해 새로운 제2 중간 데이터 비트폭에 근거하여 현재 검사 반복의 양자화 대상 데이터 A를 양자화하며, 양자화 오차가 제2 미리 설정된 한계 값보다 클 때까지 대응하는 양자화 오차를 계산한다. 양자화 오차 C1이 제2 미리 설정된 한계 값보다 크면, 당해 초기 데이터 비트폭 n1을 변하지 않도록 유지할 수 있다.
또한, 상술한 제2 미리 설정된 비트폭 스텝은 일정한 값일 수 있다. 예를 들어, 양자화 오차가 제2 미리 설정된 한계 값 미만인 경우, 프로세서는 현재 검사 반복에 대응하는 데이터 비트폭을 동일한 비트폭 값으로 감소시킬 수 있다. 바람직하게는, 상술한 제2 미리 설정된 비트폭 스텝은 가변 값일 수도 있다. 예를 들어, 프로세서는 양자화 오차와 제2 미리 설정된 한계 값의 차이 값을 계산할 수 있다. 당해 양자화 오차와 제2 미리 설정된 한계 값의 차이 값이 작으면 작을 수록 제2 미리 설정된 비트폭 스텝의 값은 작아진다.
바람직하게는, 도8E는 본 발명의 또 하나의 실시예에 있어서 데이터 비트폭 조정방법(800E)의 흐름도를 도시한다. 도8E에 도시된 바와 같이, 프로세서는 양자화 오차가 제1 미리 설정된 한계 값보다 작고, 또 양자화 오차가 제2 미리 설정된 한계 값보다 큼을 확정한 경우, 현재 검사 반복의 데이터 비트폭이 변하지 않도록 유지할 수 있다. 여기에서, 제1 미리 설정된 한계 값은 제2 미리 설정된 한계 값보다 크다. 즉 현재 검사 반복의 목표데이터 비트폭은 초기 데이터 비트폭과 같을 수 있다. 여기에서, 도8E에서는 열거의 방식으로 본 발명의 일 실시예의 데이터 비트폭 확정방식을 설명하였지만, 도8E 중 각 작업의 순서는 적응적으로 조정할 수 있으며, 여기에서는 구체적으로 한정하지 않는다.
도8F는 본 발명 실시예에 따른 신경망의 양자화방법(800F)의 흐름도를 도시한다. 도8F에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 포함한다.
단계(S10), 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하며, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함한다.
단계(S20), 대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 한다.
단계(S30), 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 상기 목표데이터의 양자화 오차를 확정하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
목표데이터에 대응하는 양자화 데이터와 목표데이터 사이의 오차에 근거하여 목표데이터의 양자화 오차를 확정할 수 있다. 설정한 오차 계산방법, 예를 들어 표준차 계산방법, 평균제곱근 오차 계산방법 등을 이용하여 목표데이터의 양자화 오차를 계산할 수 있다.
양자화 파라미터에 근거하여 목표데이터에 대응하는 양자화 데이터를 역 양자화한 후에 역 양자화 데이터를 얻으며, 역 양자화 데이터와 목표데이터 사이의 오차에 근거하여, 목표데이터의 양자화 오차를 확정할 수도 있다.
양자화 파라미터가 점 위치를 포함하는 경우, 수학식 (28)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00428
를 얻을 수 있다.
Figure pat00429
수학식(28)
여기에서, round는 반올림에 따른 정수연산이고,
Figure pat00430
는 목표데이터의 역 양자화 데이터이며, s는 목표데이터에 대응하는 점 위치이다.
양자화 파라미터가 스케일 팩터를 포함하는 경우, 수학식 (29)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00431
를 얻을 수 있다.
Figure pat00432
수학식(29)
여기에서,
Figure pat00433
는 반올림에 따른 정수연산이다.
Figure pat00434
는 목표데이터의 역 양자화 데이터이고,
Figure pat00435
는 스케일 팩터이다.
양자화 파라미터가 오프셋을 포함하는 경우, 수학식 (30)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00436
를 얻을 수 있다.
Figure pat00437
수학식(30)
여기에서,
Figure pat00438
는 반올림에 따른 정수연산이다.
Figure pat00439
는 목표데이터의 역 양자화 데이터이고,
Figure pat00440
는 스케일 팩터이다.
양자화 파라미터가 점 위치와 스케일 팩터를 포함하는 경우, 수학식 (31)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00441
를 얻을 수 있다.
Figure pat00442
수학식(31)
양자화 파라미터가 점 위치와 오프셋을 포함하는 경우, 수학식 (32)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00443
를 얻을 수 있다.
Figure pat00444
수학식(32)
양자화 파라미터가 스케일 팩터와 오프셋을 포함하는 경우, 수학식 (33)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00445
를 얻을 수 있다.
Figure pat00446
수학식(33)
양자화 파라미터가 점 위치, 스케일 팩터, 및 오프셋을 포함하는 경우, 수학식 (34)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00447
를 얻을 수 있다.
Figure pat00448
수학식(34)
양자화 간격의 계산에 관한 방법을 통해, 예를 들어 수학식 (35)를 통해 계산하여 목표데이터와 목표데이터에 대응하는 역 양자화 데이터 사이의 오차 diffbit를 얻을 수 있다.
Figure pat00449
수학식(35)
여기에서, p는 목표데이터 중 각 요소의 수이고, s는 목표데이터의 점 위치이다. A의 값은 양자화 파라미터에 근거하여 확정할 수 있다. 양자화 파라미터가 점 위치 s를 포함하는 경우, A=
Figure pat00450
이고, 양자화 파라미터가 점 위치 s와 스케일 팩터 f를 포함하는 경우,
Figure pat00451
이다.
2개 데이터의 균치 사이의 차이를 계산하는 방법을 통해, 예를 들어 수학식 (36)을 통해 계산하여 목표데이터와 목표데이터에 대응하는 역 양자화 데이터 사이의 오차 diffbit를 얻을 수도 있다.
Figure pat00452
수학식(36)
2개 데이터의 차이 사이의 균치를 계산하는 방법을 통해, 예를 들어 수학식 (37)을 통해 계산하여 목표데이터와 목표데이터에 대응하는 역 양자화 데이터 사이의 오차 diffbit를 얻을 수도 있다.
Figure pat00453
수학식(37)
단계(S40), 상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻는다.
경험 값에 근거하여 오차 한계 값을 확정할 수 있다. 오차 한계 값은 양자화 오차에 대한 기대 값을 표현하는 데 사용할 수 있다. 양자화 오차가 오차 한계 값 이상인 경우, 목표수에 대응하는 데이터 비트폭을 조정하여 목표데이터에 대응하는 조정 비트폭을 얻을 수 있다. 양자화 정밀도를 향상 또는 저하되게 하기 위해 데이터 비트폭을 더 긴 비트폭 또는 더 짧은 비트폭으로 조정할 수 있다.
허용 가능한 최대 오차에 근거하여 오차 한계 값을 확정할 수 있다. 양자화 오차가 오차 한계 값보다 클 경우, 양자화 정밀도가 기대에 달하지 않은 것을 설명하며, 데이터 비트폭을 더 긴 비트폭으로 조정할 필요가 있다. 비교적 높은 양자화 정밀도에 근거하여 하나의 비교적 작은 오차 한계 값을 확정할 수도 있다. 양자화 오차가 오차 한계 값보다 작은 경우, 양자화 정밀도가 비교적 높은 것을 설명하며, 신경망의 가동효율이 영향을 받으며, 데이터 비트폭을 더 짧은 비트폭으로 적당히 조정하여 양자화 정밀도를 적당히 저하시키고 신경망의 가동효율을 향상시킬 수 있다.
데이터 비트폭을 고정의 비트 스텝에 따라 조정할 수 있고, 양자화 오차와 오차 한계 값 사이의 차이 값의 다름에 따라 가변 조정 스텝에 의해 데이터 비트폭을 조정할 수도 있다. 본 발명은 이에 대해 한정하지 않는다.
단계(S50), 상기 목표데이터에 대응하는 데이터 비트폭을 상기 조정 비트폭으로 업데이트하고, 상기 목표데이터와 상기 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 상기 신경망이 상기 조정 양자화 파라미터에 근거하여 양자화하도록 한다.
조정 비트폭을 확정한 후, 목표데이터에 대응하는 데이터 비트폭을 조정 비트폭으로 업데이트할 수 있다. 예를 들어, 목표데이터의 업데이트 전의 데이터 비트폭이 8비트이고, 조정 비트폭이 12비트이면, 업데이트한 후 목표데이터에 대응하는 데이터 비트폭은 12비트이다. 조정 비트폭과 목표데이터에 근거하여 계산을 통해 목표데이터에 대응하는 조정 양자화 파라미터를 얻을 수 있다. 양자화 정밀도가 보다 높거나 보다 낮은 양자화 데이터을 얻기 위해, 목표데이터에 대응하는 조정 양자화 파라미터에 근거하여 목표데이터를 다시 양자화하여 양자화 대상 층으로 하여금 양자화 정밀도와 처리효율 사이에서 균형을 이루게 할 수 있다.
신경망의 추론, 훈련 및 미조정과정에서, 각 층 사이의 양자화 대상 데이터는 일정한 관련성을 가진다고 간주할 수 있다. 예를 들어, 각 층의 양자화 대상 데이터 사이의 균치 사이의 차이가 설정된 균치 한계 값보다 작고, 각 층의 양자화 대상 데이터 사이의 최대 값 사이의 차이 값도 설정된 차이 값 한계 값보다 작은 경우, 양자화 대상 층의 조정 양자화 파라미터를 후속의 하나 또는 복수의 층의 조정 양자화 파라미터로 하여 양자화 대상 층의 후속의 하나 또는 복수의 층의 양자화 대상 데이터를 양자화하는 데 사용할 수 있다. 신경망의 훈련 및 미조정과정에서, 양자화 대상 층에서 현재 반복에 의해 얻은 조정 양자화 파라미터를 후속의 반복에서 양자화 대상 층에 대한 양자화에 사용할 수도 있다.
가능한 실현방식에서, 상기 방법은 다음과 같은 단계를 더 포함한다.
상기 양자화 대상 층 다음의 한 층 또는 여러 층에서 상기 양자화 대상 층의 양자화 파라미터를 채용한다.
신경망은 조정 양자화 파라미터에 근거하여 양자화하며, 양자화 대상 층에서만 조정 양자화 파라미터를 이용하여 양자화 대상 데이터를 다시 양자화하는 것을 포함하고, 새로 얻은 양자화 데이터를 양자화 대상 층의 연산에 사용할 수 있다. 양자화 대상 층에서 조정 양자화 파라미터를 사용하여 양자화 대상 데이터를 다시 양자화하는 것이 아니라, 양자화 대상 층의 후속의 하나 또는 복수의 층에서 조정 양자화 파라미터를 사용하여 양자화하는 것, 및/또는 후속의 반복에서 양자화 대상 층에서 조정 양자화 파라미터를 사용하여 양자화하는 것을 포함할 수도 있다. 양자화 대상 층에서 조정 양자화 파라미터를 사용하여 다시 양자화하며, 새로 얻은 양자화 데이터를 양자화 대상 층의 연산에 사용하고, 양자화 대상 층의 후속의 하나 또는 복수의 층에서 조정 양자화 파라미터를 사용하여 양자화하는 것, 및/또는 후속의 반복에서 양자화 대상 층에서 조정 양자화 파라미터를 사용하여 양자화하는 것을 더 포함할 수 있다. 본 발명은 이에 대해 한정하지 않는다.
본 실시예에서, 목표데이터와 목표데이터에 대응하는 양자화 데이터에 근거하여 목표데이터의 양자화 오차를 확정하며, 목표데이터는 임의의 한 가지 양자화 대상 데이터이고; 상기 양자화 오차와 오차 한계 값에 대하여, 목표데이터에 대응하는 데이터 비트폭을 조정하여 목표데이터에 대응하는 조정 비트폭을 얻으며; 목표데이터에 대응하는 데이터 비트폭을 조정 비트폭으로 업데이트하고, 목표데이터와 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 신경망으로 하여금 조정 양자화 파라미터에 근거하여 양자화하게 한다. 목표데이터와 양자화 데이터 사이의 오차에 근거하여 데이터 비트폭을 조정하며, 조정 후의 데이터 비트폭에 근거하여 계산을 통해 조정 양자화 파라미터를 얻는다. 서로 다른 오차 한계 값을 설정하는 것을 통해 서로 다른 조정 양자화 파라미터를 얻을 수 있으며, 양자화 정밀도의 향상이나 가동효율의 향상 등 다양한 양자화 요구사항을 달성할 수 있다. 목표데이터와 목표데이터의 양자화 데이터에 근거하여 계산을 통해 얻은 조정 양자화 파라미터는, 목표데이터 자체의 데이터 특징에 보다 적합하고, 목표데이터 자체의 요구에 보다 적합한 양자화 결과를 달성하며, 양자화 정밀도와 처리효율 사이가 보다 좋은 균형을 달성하도록 할 수도 있다.
도8G는 본 발명 실시예에 따른 신경망의 양자화방법(800G)의 흐름도를 도시한다. 도8G에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S40)는 다음과 같은 단계를 포함한다.
단계(S41), 상기 양자화 오차가 상기 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는다.
허용 가능한 최대 양자화 오차에 근거하여 제1 오차 한계 값을 확정할 수 있다. 양자화 오차를 제1 오차 한계 값과 비교할 수 있다. 양자화 오차가 제1 오차 한계 값보다 클 경우, 양자화 오차가 허용되지 않는 것으로 간주 할 수 있다. 양자화 정밀도를 향상할 필요가 있는 경우, 목표데이터에 대응하는 데이터 비트폭을 증가하는 방식으로 목표데이터의 양자화 정밀도를 향상할 수 있다.
목표데이터에 대응하는 데이터 비트폭을 고정된 조정 스텝에 따라 증가하여 조정 비트폭을 얻을 수 있다. 고정된 조정 스텝은 N비트일 수 있으며 , N은 정의 정수이다. 데이터 비트폭을 조정할 때마다 N비트 증가시킬 수 있다. 매번 증가한 후의 데이터 비트폭=원래 데이터 비트폭+N비트이다.
목표데이터에 대응하는 데이터 비트폭을 가변의 조정 스텝에 따라 증가하여 조정 비트폭을 얻을 수 있다. 예를 들어, 양자화 오차와 오차 한계 값 사이의 차이 값이 제1 한계 값보다 클 경우, 조정 스텝 M1에 따라 데이터 비트폭을 조정할 수 있으며, 양자화 오차와 오차 한계 값 사이의 차이 값이 제1 한계 값보다 작은 경우, 조정 스텝 M2에 따라 데이터 비트폭을 조정할 수 있고, 여기에서, 제1 한계 값은 제2 한계 값보다 크며, M1>M2이다. 필요에 따라 각 가변의 조정 스텝을 확정할 수 있다. 본 발명은 데이터 비트폭의 조정 스텝 및 조정 스텝이 가변인지 여부에 대해 한정하지 않는다.
목표데이터를 조정 비트폭에 따라 계산을 통해 조정 후의 양자화 파라미터를 얻을 수 있다. 조정 후의 양자화 파라미터를 이용하여 목표데이터를 다시 양자화한 다음에 얻은 양자화 데이터는, 조정하기 전의 양자화 파라미터를 이용하여 양자화하여 얻은 양자화 데이터보다도 양자화 정밀도가 높다.
도8H는 본 발명 실시예에 따른 신경망의 양자화방법(800H)의 흐름도를 도시한다. 도8H에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다.
단계(S42), 상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산한다.
단계(S43), 상기 조정 후의 양자화 오차와 상기 제1 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산하여 얻은 조정 후의 양자화 오차가 상기 제1 오차 한계 값 이하로 될 때까지 상기 조정 비트폭을 계속 증가한다.
양자화 오차에 근거하여 목표데이터에 대응하는 데이터 비트폭을 증가할 때, 비트폭을 1회 조정한 후 조정 비트폭을 얻으며, 조정 비트폭에 근거하여 계산을 통해 조정 후의 양자화 파라미터를 얻고, 조정 후의 양자화 파라미터에 근거하여 목표데이터를 양자화하여 조정 후의 양자화 데이터를 얻으며, 또 조정 후의 양자화 데이터와 목표데이터에 근거하여 계산을 통해 목표데이터 조정 후의 양자화 오차를 얻고, 조정 후의 양자화 오차는 여전히 제1 오차 한계 값보다 클 가능성이 있다. 즉 1회 조정된 데이터 비트폭에 따라서는 조정목적을 충족할 수 없는 가능성이 있다. 조정 후의 양자화 오차가 여전히 제1 오차 한계 값보다 클 때, 조정 후의 데이터 비트폭을 계속 조정할 수 있다. 즉 최종적으로 얻는 조정 비트폭과 목표데이터에 근거하여 얻은 조정 후의 양자화 오차가 제1 오차 한계 값보다 작을 때까지 목표데이터에 대응하는 데이터 비트폭을 여러번 증가한다.
여러번 증가되는 조정 스텝은 고정된 조정 스텝일 수 있고, 가변의 조정 스텝일 수도 있다. 예를 들어, 최종적인 데이터 비트폭=원래 데이터 비트폭+A*N비트이다. 여기에서 N은 매번 증가하는 고정된 조정 스텝이고, A는 데이터 비트폭의 증가회수이다. 최종적인 데이터 비트폭=원래 데이터 비트폭+M1+M2+…+Mm이다. 여기에서, M1, M2...Mm은 매번 증가되는 가변의 조정 스텝이다.
본 실시예에서, 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는다. 제1 오차 한계 값과 조정 스텝을 설정하여 데이터 비트폭을 증가함으로써, 조정 후의 데이터 비트폭이 양자화의 요구사항을 충족시킬 수 있도록 할 수 있다. 1회 조정이 조정의 요구사항을 충족시킬 수 없는 경우, 데이터 비트폭에 대하여 여러번 조정할 수도 있다. 제1 오차 한계 값과 조정 스텝의 설정은 양자화 파라미터를 양자화 요구사항에 따라 유연히 조정할 수 있도록 하며, 다양한 양자화 요구사항을 충족시켜 양자화 정밀도를 자체의 데이터 특징에 따라 자기 적응적으로 조정할 수 있도록 한다.
도8I는 본 발명 실시예에 따른 신경망의 양자화방법(800I)의 흐름도를 도시한다. 도8I에 도시된 바와 같이, 상기 신경망의 양자화방법 중 단계(S40)는 다음과 같은 단계를 포함한다.
단계(S44), 상기 양자화 오차가 상기 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하며, 상기 제2 오차 한계 값은 상기 제1 오차 한계 값보다 작다.
허용 가능한 양자화 오차와 소망의 신경망의 가동효율에 따라 제2 오차 한계 값을 확정할 수 있다. 양자화 오차를 제2 오차 한계 값과 비교할 수 있다. 양자화 오차가 제2 오차 한계 값보다 작은 경우, 양자화 오차가 기대를 초과한다고 간주할 수 있으나 가동효율이 너무 낮아 이미 허용할 수 없다. 양자화 정밀도를 저하시켜 신경망의 가동효율을 향상시킬 수 있고, 목표데이터에 대응하는 데이터 비트폭을 감소하는 방식을 통해 목표데이터의 양자화 정밀도를 저하시킬 수 있다.
목표데이터에 대응하는 데이터 비트폭을 고정된 조정 스텝에 따라 감소시켜 조정 비트폭을 얻을 수 있다. 고정된 조정 스텝은 N비트일 수 있으며, N은 정의 정수이다. 매번 조정에서 데이터 비트폭은 N비트 감소할 수 있다. 증가 후의 데이터 비트폭=원래 데이터 비트폭-N비트이다.
목표데이터에 대응하는 데이터 비트폭을 가변의 조정 스텝에 따라 감소시켜 조정 비트폭을 얻을 수 있다. 예를 들어, 양자화 오차와 오차 한계 값 사이의 차이 값이 제1 한계 값보다 클 경우, 조정 스텝 M1에 따라 데이터 비트폭을 조정할 수 있으며, 양자화 오차와 오차 한계 값 사이의 차이 값이 제1 한계 값보다 작은 경우, 조정 스텝 M2에 따라 데이터 비트폭을 조정할 수 있고, 여기에서, 제1 한계 값은 제2 한계 값보다 크며, M1>M2이다. 필요에 따라 각 가변의 조정 스텝을 확정할 수 있다. 본 발명은 데이터 비트폭의 조정 스텝 및 조정 스텝이 가변인지 여부에 대해 한정하지 않는다.
목표데이터를 조정 비트폭에 따라 계산을 통해 조정 후의 양자화 파라미터를 얻을 수 있다. 조정 후의 양자화 파라미터를 이용하여 목표데이터를 다시 양자화한 다음에 얻은 양자화 데이터는, 조정하기 전의 양자화 파라미터를 이용하여 양자화하여 얻은 양자화 데이터보다도 양자화 정밀도가 낮다.
도8J는 본 발명 실시예에 따른 신경망의 양자화방법(800J)의 흐름도를 도시한다. 도8J에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다.
단계(S45), 상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산한다.
단계(S46), 상기 조정 후의 양자화 오차와 상기 제2 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산을 통해 얻은 조정 후의 양자화 오차가 상기 제2 오차 한계 값 이상이 될 때까지 상기 조정 비트폭을 계속 감소한다.
양자화 오차에 근거하여 목표데이터에 대응하는 데이터 비트폭을 증가할 때, 비트폭을 1회 조정한 후 조정 비트폭을 얻으며, 조정 비트폭에 근거하여 계산을 통해 조정 후의 양자화 파라미터를 얻고, 조정 후의 양자화 파라미터에 근거하여 목표데이터를 양자화하여 조정 후의 양자화 데이터를 얻으며, 또 조정 후의 양자화 데이터와 목표데이터에 근거하여 계산을 통해 목표데이터 조정 후의 양자화 오차를 얻고, 조정 후의 양자화 오차는 여전히 제2 오차 한계 값보다 작을 가능성이 있다. 즉 1회 조정된 데이터 비트폭에 따라서는 조정목적을 충족할 수 없는 가능성이 있다. 조정 후의 양자화 오차가 여전히 제2 오차 한계 값보다 작은 경우, 조정 후의 데이터 비트폭을 계속 조정할 수 있다. 즉 최종적으로 얻은 조정 비트폭과 목표데이터에 근거하여 얻은 조정 후의 양자화 오차가 제2 오차 한계 값보다 클 때까지 목표데이터에 대응하는 데이터 비트폭를 여러번 감소한다.
여러번 감소하는 조정 스텝은 고정된 조정 스텝일 수 있고, 가변의 조정 스텝일 수도 있다. 예를 들어, 최종적인 데이터 비트폭=원래 데이터 비트폭-A*N비트이다. 여기에서 N은 매번 증가하는 고정된 조정 스텝이고, A는 데이터 비트폭의 증가회수이다. 최종적인 데이터 비트폭=원래 데이터 비트폭-M1-M2-...-Mm이다. 여기에서, M1, M2 ...Mm은 매번 감소하는 가변의 조정 스텝이다.
본 실시예에서, 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는다. 제2 오차 한계 값과 조정 스텝을 설정하여 데이터 비트폭을 감소하는 것을 통해 조정 후의 데이터 비트폭이 양자화의 요구사항을 충족시킬 수 있도록 할 수 있다. 1회 조정이 조정의 요구사항을 충족시킬 수 없는 경우, 데이터 비트폭에 대하여 여러번 조정할 수도 있다. 제2 오차 한계 값과 조정 스텝의 설정은 양자화 파라미터를 양자화 요구사항에 따라 유연히 자기 적응적으로 조정할 수 있도록 하며, 다양한 양자화 요구사항을 충족시켜 양자화 정밀도를 조정 가능하게 하며, 양자화 정밀도와 신경망의 가동효율 사이의 균형을 잡을 수 있도록 한다.
가능한 실현방식에서, 상기 방법은 다음과 같은 단계를 더 포함한다.
상기 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하며, 상기 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는다.
2개의 오차 한계 값을 동시에 설정할 수도 있다. 여기에서, 제1 오차 한계 값은 양자화 정밀도가 지나치게 낮음을 나타내기 위한 것이고, 데이터 비트폭의 비트 수를 증가할 수 있으며, 제2 오차 한계 값은 양자화 정밀도가 지나치게 높음을 나타내기 위한 것이고, 데이터 비트폭의 비트 수를 감소할 수 있다. 제1 오차 한계 값은 제2 오차 한계 값보다도 크며, 목표데이터의 양자화 오차를 2개의 오차 한계 값과 동시에 비교하여, 양자화 오차가 제1 오차 한계 값보다 클 경우, 데이터 비트폭의 비트 수를 증가하고, 양자화 오차가 제2 오차 한계 값보다 작은 경우, 데이터 비트폭의 비트 수를 감소할 수 있다. 양자화 오차가 제1 오차 한계 값과 제2 오차 한계 값 사이에 위치할 때, 데이터 비트폭은 변하지 않도록 유지될 수 있다.
본 실시예에서, 양자화 오차를 제1 오차 한계 값 및 제2 오차 한계 값과 동시에 비교함으로써, 비교결과에 따라 데이터 비트폭을 증가 또는 감소할 수 있고, 제1 오차 한계 값과 제2 오차 한계 값을 이용하여 보다 유연하게 데이터 비트폭을 조정할 수 있다. 따라서 데이터 비트폭의 조정결과를 양자화 수요사하에 보다 적합하게 한다.
또한, 신경망의 훈련(Training)은 신경망(당해 신경망의 가중치는 난수일 수 있다)에 대해 여러번 반복연산(iteration)을 수행하여 신경망의 가중치가 미리 설정된 조건을 충족할 수 있게 하는 과정이라는 것이 분명해야 한다. 여기에서, 1회 반복연산은 일반적으로 1회 순방향 연산, 1회 역방향 연산 및 1회 가중치 업데이트 연산을 포함한다. 순방향 연산은 신경망의 입력 데이터에 근거하여 순방향 추론을 수행하여 순방향 연산결과를 획득하는 과정을 의미한다. 역방향 연산은 순방향 연산결과와 미리 설정된 기준 값에 근거하여 손실 값을 확정하고, 당해 손실 값에 근거하여 가중치 그래디언트 값 및/또는 입력 데이터 그래디언트 값을 확정하는 과정을 의미한다. 가중치 업데이트 연산은 가중치 그래디언트 값에 근거하여 신경망의 가중치를 조정하는 과정을 의미한다. 구체적으로는, 신경망의 훈련과정은 다음과 같다. 프로세서는 가중치가 난수인 신경망을 채용하여 입력 데이터에 대해 순방향 연산을 수행하여 순방향 연산결과를 획득할 수 있다. 그 다음에는 프로세서는 당해 순방향 연산결과와 미리 설정된 기준 값에 근거하여 손실 값을 확정하고, 당해 손실 값에 근거하여 가중치 그래디언트 값 및/또는 입력 데이터 그래디언트 값을 확정한다. 마지막으로, 프로세서는 가중치 그래디언트 값에 근거하여 신경망의 그래디언트 값을 업데이트하여 새로운 가중치를 획득하여 1회 반복연산을 완료할 수 있다. 프로세서는 신경망의 순방향 연산결과가 미리 설정된 조건을 충족할 때까지 반복연산을 여러번 루프 실행한다. 예를 들어, 신경망의 순방향 연산결과가 미리 설정된 기준 값에 수렴되면 훈련이 종료된다. 또는, 신경망의 순방향 연산결과와 미리 설정된 기준 값이 확정한 손실 값이 미리 설정된 정밀도 이하인 경우 훈련이 종료된다.
미조정은 신경망(당해 신경망의 가중치는 이미 수렴상태에 있으며 난수가 아니다)에 대해 여러번 반복연산을 수행하여 신경망의 정밀도가 미리 설정된 요구사항을 충족시킬 수 있도록 하는 과정을 의미한다. 당해 미조정과정과 상술한 훈련과정은 기본적으로 일치하며, 수렴상태에 있는 신경망을 다시 훈련하는 과정이라고 간주할 수 있다. 추론(Inference)은 가중치가 미리 설정된 조건을 충족하는 신경망을 채용하여 순방향 연산을 수행하여 식별 또는 분류 등 기능을 실현하는 과정을 의미한다. 예를 들어 신경망을 채용하여 화상식별 등을 수행한다.
본 발명 실시예에서는, 상술한 신경망의 훈련 또는 미조정과정에서, 신경망 연산의 상이한 단계에서 상이한 양자화 파라미터를 채용하여 신경망의 연산 데이터를 양자화하며, 양자화 후의 데이터에 근거하여 반복연산을 수행할 수 있다. 따라서 신경망 연산과정에서의 데이터 저장공간을 감소시키고, 데이터 액세스 효율 및 연산효율을 향상시킬 수 있다. 도8K에 도시된 바와 같이, 본 발명의 일 실시예의 양자화 파라미터 조정방법(800K)의 흐름도를 나타내며, 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
S100, 양자화 대상 데이터의 데이터 변동폭을 획득한다.
바람직하게는, 프로세서는 당해 양자화 대상 데이터의 데이터 변동폭을 직접 읽어 낼 수 있으며, 당해 양자화 대상 데이터의 데이터 변동폭은 사용자가 입력할 수 있다 .
바람직하게는, 프로세서는 현재 반복의 양자화 대상 데이터와 이력 반복의 양자화 대상 데이터에 근거하여 계산을 통해 상술한 양자화 대상 데이터의 데이터 변동폭을 획득할 수도 있다. 여기에서 현재 반복은 현재 실행하는 반복연산을 의미하고, 이력 반복은 현재 반복 전에 실행한 반복연산을 의미한다. 예를 들어, 프로세서는 현재 반복의 양자화 대상 데이터 중 요소의 최대 값과 요소의 평균 값, 및 각 이력 반복의 양자화 대상 데이터 중 요소의 최대 값과 요소의 평균 값을 획득하고, 매번 반복 중 요소의 최대 값과 요소의 평균 값에 근거하여 양자화 대상 데이터의 변동폭을 확정할 수 있다. 현재 반복의 양자화 대상 데이터 중 요소의 최대 값이 미리 설정된 수의 이력 반복의 양자화 대상 데이터 중 요소의 최대 값에 가까울 경우, 또 현재 반복의 양자화 대상 데이터 중 요소의 평균 값이 미리 설정된 수의 이력 반복의 양자화 대상 데이터 중 요소의 평균 값에 가까울 경우, 상술한 양자화 대상 데이터의 데이터 변동폭이 작다고 확정할 수 있다. 그렇지 않을 경우, 양자화 대상 데이터의 데이터 변동폭이 크다고 확정할 수 있다. 한편, 당해 양자화 대상 데이터의 데이터 변동폭은 양자화 대상 데이터의 이동평균 값 또는 분산 등을 채용하여 표현할 수 있으며, 여기에서는 구체적으로 한정하지 않는다.
본 발명 실시예에서, 당해 양자화 대상 데이터의 데이터 변동폭은 양자화 대상 데이터의 양자화 파라미터를 조정할 필요가 있는지 여부를 확정하는 데 사용할 수 있다. 예를 들어, 양자화 대상 데이터의 데이터 변동폭이 비교적 크면 양자화 정밀도를 보장하기 위해 양자화 파라미터를 제때에 조정할 필요가 있는 것을 설명할 수 있다. 양자화 대상 데이터의 데이터 변동폭이 비교적 작으면 현재 검사 반복 및 그 다음의 일정 수의 반복에서 이력 반복의 양자화 파라미터를 계속하여 사용할 수 있으며, 양자화 파라미터의 빈번한 조정을 회피할 수 있고 양자화 효율을 향상시킬 수 있다.
여기에서, 매번 반복은 적어도 하나의 양자화 대상 데이터에 관련되며, 당해 양자화 대상 데이터는 부동 소수점으로 표현하는 연산 데이터일 수 있고, 고정 소수점으로 표현하는 연산 데이터일 수도 있다. 바람직하게는, 매번 반복의 양자화 대상 데이터는 뉴런데이터, 가중치 데이터 또는 그래디언트 데이터 중 적어도 한 가지일 수 있으며, 그래디언트 데이터는 뉴런 그래디언트 데이터와 가중치 그래디언트 데이터 등을 포함할 수도 있다.
S200, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써 당해 목표반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 조정한다. 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하며, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다. 여기에서, 양자화 파라미터는 데이터 폭을 포함할 수 있다. 따라서, 여기에서는 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써 당해 목표반복간격에 근거하여 신경망 연산 중의 데이터 폭을 조정할 수 있고, 상기 목표반복간격은 적어도 1회 반복을 포함한다.
바람직하게는, 당해 양자화 파라미터는 상술한 점 위치 및/또는 스케일 팩터를 포함할 수 있다. 여기에서, 스케일 팩터는 제1 스케일 팩터와 제2 스케일 팩터를 포함할 수 있다. 구체적인 점 위치 계산방법, 스케일 팩터의 계산방법은 위에서 설명한 수학식을 참조할 수 있으며, 여기에서 다시 언급하지 않는다. 바람직하게는, 당해 양자화 파라미터는 오프셋을 포함할 수 있으며, 당해 오프셋의 계산방법은 위에서 설명한 수학식을 참조할 수 있다. 또한, 프로세서는 위에서 설명한 다른 수학식에 따라 점 위치나 스케일 팩터를 확정할 수도 있다. 본 발명 실시예에서, 프로세서는 확정한 목표반복간격에 근거하여 상술한 점 위치, 스케일 팩터 또는 오프셋 중의 적어도 한 가지를 업데이트하여 당해 신경망 연산 중의 양자화 파라미터를 조정할 수 있다. 즉, 당해 신경망 연산 중의 양자화 파라미터는 신경망 연산 중 양자화 대상 데이터의 데이터 변동폭에 근거하여 업데이트함으로써 양자화 정밀도를 보장할 수 있다.
또한, 신경망의 훈련 또는 미조정과정에서 연산 데이터의 변화추세를 통계 및 분석하는 것을 통해 양자화 대상 데이터의 데이터 변동곡선을 얻을 수 있음을 이해할 수 있다. 도8L에 도시된 바와 같이, 당해 데이터 변동곡선(800L)에 따라 신경망의 훈련 또는 미조정 초기에서, 상이한 반복의 양자화 대상 데이터의 데이터 변동이 격렬하며, 훈련 또는 미조정 연산이 진행함에 따라 상이한 반복의 양자화 대상 데이터의 데이터 변동이 점차 평탄해지는 경향이 있음을 알 수 있다. 따라서, 신경망 훈련 또는 미조정의 초기에서, 양자화 파라미터를 비교적 빈번하게 조정할 수 있다. 신경망 훈련 또는 미조정의 중기 및 후기에서, 여러번 반복 또는 훈련주기 간격으로 양자화 파라미터를 다시 조정할 수 있다. 본 발명의 방법은 적절한 반복간격을 확정함으로써 양자화 정밀도와 양자화 효율의 균형을 달성하는 것이다.
구체적으로는, 프로세서는 양자화 대상 데이터의 데이터 변동폭을 통해 목표반복간격을 확정하여, 당해 목표반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 조정할 수 있다. 바람직하게는, 당해 목표반복간격은 양자화 대상 데이터의 데이터 변동폭의 감소에 따라 증가할 수 있다. 즉, 당해 양자화 대상 데이터의 데이터 변동폭이 크면 클 수록 당해 목표반복간격이 작아지며, 양자화 파라미터의 조정이 빈번해 진다는 것을 나타낸다. 당해 양자화 대상 데이터의 데이터 변동폭이 작으면 작을 수록 당해 목표반복간격이 커지며, 양자화 파라미터의 조정이 빈번하지 않은 것을 나타낸다. 물론, 다른 실시예에서, 상술한 목표반복간격은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 목표반복간격은 사용자 자신의 이해에 따라 설정될 수 있다.
바람직하게는, 상술한 가중치 데이터, 뉴런 데이터 및 그래디언트 데이터 등 각종 양자화 대상 데이터는 서로 다른 반복간격을 가질 수 있다. 이에 대응하여, 프로세서는 각종 양자화 대상 데이터에 대응하는 데이터 변동폭을 각각 획득하여 각 종류의 양자화 대상 데이터의 데이터 변동폭에 근거하여 대응 종류의 양자화 대상 데이터에 대응하는 목표반복간격을 각각 확정할 수 있다. 즉, 각종 양자화 대상 데이터의 양자화 과정은 비동기적으로 수행할 수 있다. 본 발명 실시예에서, 서로 다른 종류의 양자화 대상 데이터 사이에는 차이가 있어서 서로 다른 양자화 대상 데이터의 데이터 변동폭을 채용하여 대응하는 목표반복간격을 확정하고, 대응하는 목표반복간격에 근거하여 대응하는 양자화 파라미터를 각각 확정할 수 있다. 따라서 양자화 대상 데이터의 양자화 정밀도를 보장하고, 신경망의 연산결과의 정확성도 보장할 수 있다.
물론, 다른 실시예에서, 서로 다른 종류의 양자화 대상 데이터에 대하여, 동일한 목표반복간격을 확정하여 당해 목표반복간격에 근거하여 대응하는 양자화 대상 데이터에 대응하는 양자화 파라미터를 조정할 수도 있다. 예를 들어, 프로세서는 각종 양자화 대상 데이터의 데이터 변동폭을 각각 획득하고, 최대의 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하며, 당해 목표반복간격에 근거하여 각종 양자화 대상 데이터의 양자화 파라미터를 각각 확정할 수 있다. 또한, 서로 다른 종류의 양자화 대상 데이터는 동일한 양자화 파라미터를 채용할 수도 있다.
더 바람직하게는, 상술한 신경망은 적어도 하나의 연산층을 포함할 수 있으며, 당해 양자화 대상 데이터는 각 연산층에 관련된 뉴런 데이터, 가중치 데이터 또는 그래디언트 데이터 중의 적어도 한 가지일 수 있다. 이 때, 프로세서는 현재 연산층에 관련된 양자화 대상 데이터를 획득하고, 상술한 방법에 따라 현재 연산층 중 각종 양자화 대상 데이터의 데이터 변동폭 및 대응하는 목표반복간격을 확정할 수 있다.
바람직하게는, 프로세서는 매번 반복연산과정에서 모두 상술한 양자화 대상 데이터의 데이터 변동폭을 한번 확정하고, 대응하는 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 한번 확정할 수 있다. 즉, 프로세서는 매번 반복할 때마다 목표반복간격을 한번 계산할 수 있다. 구체적인 목표반복간격의 계산방식은 다음의 설명을 참조할 수 있다. 또한, 프로세서는 미리 설정된 조건에 따라 각 반복에서 검사 반복을 선정하고, 각 검사 반복에서 양자화 대상 데이터의 변동폭을 확정하며, 검사 반복에 대응하는 목표반복간격에 근거하여 양자화 파라미터 등의 업데이트를 조정할 수 있다. 이 때, 당해 반복이 선정된 검사 반복이 아닌 경우, 프로세서는 당해 반복에 대응하는 목표반복간격을 무시할 수 있다.
바람직하게는, 각 목표반복간격은 하나의 검사 반복에 대응할 수 있고, 당해 검사 반복은 당해 목표반복간격의 처음 반복일 수 있으며, 당해 목표반복간격의 종료 반복일 수도 있다. 프로세서는 각 목표반복간격의 검사 반복에서 신경망의 양자화 파라미터를 조정하여 목표반복간격에 따른 신경망 연산의 양자화 파라미터의 조정을 실현할 수 있다. 여기에서, 검사 반복은 현재 양자화 파라미터가 양자화 대상 데이터의 요구사항을 충족하는지 여부를 검증하기 위한 시점일 수 있다. 당해 조정하기 전의 양자화 파라미터는 조정 후의 양자화 파라미터와 같을 수 있고, 조정 후의 양자화 파라미터와 다를 수도 있다. 바람직하게는, 인접하는 검사 반복 사이의 간격은 하나의 목표반복간격 이상일 수 있다.
예를 들어, 당해 목표반복간격은 현재 검사 반복으로부터 반복회수를 계산할 수 있으며, 당해 현재 검사 반복은 당해 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제100회 반복, 제101회 반복 및 제102회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 프로세서는 당해 제100회 반복에서 신경망 연산 중의 양자화 파라미터를 조정할 수 있다. 여기에서, 현재 검사 반복은 프로세서가 현재 양자화 파라미터 업데이트의 조정을 실행하는 경우에 대응하는 반복연산이다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있고, 당해 현재 검사 반복은 현재 검사 반복 이전의 이전 반복간격의 종료 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제101회 반복, 제102회 반복 및 제103회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 프로세서는 당해 제100회 반복과 제103회 반복에서 신경망 연산 중의 양자화 파라미터를 조정할 수 있다. 본 발명은 목표반복간격의 확정방식에 대하여 특히 한정하지 않는다.
일 실시예에서, 상술한 점 위치, 스케일 팩터 및 오프셋의 계산 수학식으로부터 알 수 있는 바와 같이, 양자화 파라미터는 종종 양자화 대상 데이터와 관련되며, 따라서, 상술한 작업(S100)에서, 양자화 대상 데이터의 데이터 변동폭은 양자화 파라미터의 변동폭을 통해 간접적으로 확정할 수도 있고, 당해 양자화 대상 데이터의 데이터 변동폭은 양자화 파라미터의 변동폭을 통해 특성화할 수 있다. 구체적으로는, 도8M에 도시된 바와 같이, 본 발명의 일 실시예의 파라미터 조정방법에서 목표반복간격의 확정방법(800M)의 흐름도를 도시한다. 상술한 작업(S100)은 다음과 같은 단계를 포함할 수 있다.
S110, 점 위치의 변동폭을 획득한다. 여기에서, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용할 수 있으며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있다.
바람직하게는, 점 위치의 변동폭은 간접적으로 양자화 대상 데이터의 변동폭을 반영할 수 있다. 당해 점 위치의 변동폭은 현재 검사 반복의 점 위치와 적어도 1회의 이력 반복의 점 위치에 의해 확정될 수 있다. 여기에서, 현재 검사 반복의 점 위치 및 각 이력 반복의 점 위치는 위에서 설명한 수학식에 따라 확정할 수 있다.
예를 들어, 프로세서는 현재 검사 반복의 점 위치와 이력 반복의 점 위치의 분산 등을 계산하고, 당해 분산에 근거하여 점 위치의 변동폭을 확정할 수도 있다. 또한, 프로세서는 현재 검사 반복의 점 위치와 이력 반복의 점 위치의 평균 값에 근거하여 점 위치의 변동폭을 확정할 수 있다. 구체적으로는, 도8N에 도시된 바와 같이, 도8N은 본 발명의 일 실시예에 있어서 점 위치의 변동폭의 확정방법(800N)의 흐름도를 도시한다. 상술한 작업(S110)은 다음과 같은 단계를 포함한다.
S111, 상기 현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정한다. 여기에서, 전회 검사 반복은 전회에서 상기 양자화 파라미터를 조정하는 경우에 대응하는 반복이며, 전회 검사 반복과 상기 현재 검사 반복 사이에 적어도 하나의 반복간격을 둔다.
바람직하게는, 적어도 1회 이력 반복은 적어도 하나의 반복간격에 각각 속할 수 있으며, 각 반복간격은 대응하여 하나의 검사 반복이 있을 수 있고, 인접한 2개의 검사 반복은 하나의 반복간격을 가질 수 있다. 상술한 작업(S111) 중 전회 검사 반복은 목표반복간격 전의 전회 반복간격에 대응하는 검사 반복일 수 있다.
바람직하게는, 당해 제1 균치는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00454
수학식(38)
여기에서, a1~am은 각 반복의 점 위치에 대응하는 계산 가중치이고,
Figure pat00455
는 전회 검사 반복에 대응하는 점 위치이며,
Figure pat00456
...
Figure pat00457
는 전회 검사 반복 전의 이력 반복에 대응하는 점 위치이고, M1은 상술한 제1 균치이다. 또한, 데이터의 분포특성에 따라, 이력 반복이 당해 전회 검사 반복에서 멀리 떨어질 수록 당해 전회 검사 반복의 근방의 반복의 점 위치의 분포 및 변동폭에 대한 영향이 작으며, 따라서, 상술한 계산 가중치는 a1~am의 순서에 따라 점차 작아질 수 있다.
예를 들어, 전회 검사 반복이 신경망 연산의 제100회 반복이고, 이력 반복이 제1회 반복부터 제99회 반복일 수 있으며, 프로세서는 당해 제100회 반복의 점 위치를 획득할 수 있고(즉
Figure pat00458
), 당해 제100회 반복 전의 이력 반복의 점 위치를 획득한다. 즉
Figure pat00459
는 신경망의 제1회 반복에 대응하는 점 위치일 수 있고......,
Figure pat00460
는 신경망의 제98회 반복에 대응하는 점 위치일 수 있으며,
Figure pat00461
는 신경망의 제99회 반복에 대응하는 점 위치일 수 있다. 또한, 프로세서는 상술한 수학식에 따라 계산을 통해 제1 균치를 획득할 수 있다.
또한, 당해 제1 균치는 각 반복간격에 대응하는 검사 반복의 점 위치에 근거하여 계산할 수 있다. 예를 들어, 당해 제1 균치는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00462
;
여기에서, a1~am은 각 검사 반복의 점 위치에 대응하는 계산 가중치이고,
Figure pat00463
는 전회 검사 반복에 대응하는 점 위치이며,
Figure pat00464
...
Figure pat00465
는 전회 검사 반복 전의 미리 설정된 수의 반복간격의 검사 반복에 대응하는 점 위치이고, M1은 상술한 제1 균치이다.
예를 들어, 전회 검사 반복이 신경망 연산의 제100회 반복이고, 이력 반복이 제1회 반복부터 제99회 반복일 수 있으며, 당해 99회의 이력 반복은 11개의 반복간격에 각각 속할 수 있다. 예를 들어, 제1회 반복 내지 제9회 반복은 첫 번째 반복간격에 속하고, 제10회 반복 내지 제18회 반복은 두 번째 반복간격에 속하며, ......, 제90회 반복 내지 제99회 반복은 열한 번째 반복간격에 속한다. 프로세서는 당해 제100회 반복의 점 위치를 획득할 수 있고(즉
Figure pat00466
), 당해 제100회 반복 전의 반복간격 중 검사 반복의 점 위치를 획득한다. 즉
Figure pat00467
는 신경망의 첫 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있고(예를 들어
Figure pat00468
는 신경망의 제1회 반복에 대응하는 점 위치일 수 있다), ......,
Figure pat00469
는 신경망의 열 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있으며(예를 들어
Figure pat00470
는 신경망의 제81회 반복에 대응하는 점 위치일 수 있다),
Figure pat00471
는 신경망의 열한 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있다(예를 들어,
Figure pat00472
는 신경망의 제90회 반복에 대응하는 점 위치일 수 있다). 또한, 프로세서는 상술한 수학식에 따라 계산을 통해 제1 균치 M1을 획득할 수 있다.
본 발명 실시예에서, 쉽게 예를 들어 설명하기 위해, 당해 반복간격에 포함된 반복회수가 같다고 가정한다. 그러나 실제의 사용과정에서 당해 반복간격에 포함된 반복회수는 다를 수 있다. 바람직하게는, 당해 반복간격에 포함된 반복회수는 반복의 증가에 따라 증가된다. 즉 신경망 훈련 또는 미조정이 진행됨에 따라 반복간격은 갈수록 커질 수 있다.
또한, 계산을 보다 단순화하고, 데이터가 점유하는 저장공간을 저감하기 위해, 상술한 제1 균치 M1은 다음과 같은 수학식을 채용하여 계산할 수 있다.
Figure pat00473
수학식(39)
여기에서,
Figure pat00474
는 전회 검사 반복에 대응하는 점 위치의 계산 가중치이며,
Figure pat00475
는 전회 검사 반복에 대응하는 점 위치이며, M0은 당해 전회 검사 반복 전의 검사 반복에 대응하는 이동평균 값이고, 당해 M0의 구체적 계산방식은 상술한 M1의 계산방식을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
S112, 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정한다. 여기에서, 현재 검사 반복에 대응하는 점 위치는 현재 검사 반복의 목표데이터 비트폭과 양자화 대상 데이터에 근거하여 확정할 수 있다.
바람직하게는, 당해 제2 균치M2는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00476
수학식(40)
여기에서, b1~bm은 각 반복의 점 위치에 대응하는 계산 가중치이고,
Figure pat00477
는 현재 검사 반복에 대응하는 점 위치이며,
Figure pat00478
...
Figure pat00479
는 현재 검사 반복 전의 이력 반복에 대응하는 점 위치이고, M2는 상술한 제2 균치이다. 또한, 데이터의 분포특성에 따라 이력 반복이 당해 현재 검사 반복거리에서 멀리 떨어질 수록 당해 현재 검사 반복의 근방의 반복의 점 위치의 분포 및 변동폭에 대한 영향이 작아진다. 따라서, 상술한 계산 가중치는 b1~bm의 순서에 따라 점차 작아질 수 있다.
예를 들어, 현재 검사 반복이 신경망 연산의 제101회 반복이면, 당해 현재 검사 반복 전의 이력 반복은 제1회 반복 내지 제100회 반복이다. 프로세서는 당해 제101회 반복의 점 위치를 획득할 수 있고(즉
Figure pat00480
), 또 당해 제101회 반복 전의 이력 반복의 점 위치를 획득한다. 즉
Figure pat00481
는 신경망의 제1회 반복에 대응하는 점 위치일 수 있고......,
Figure pat00482
는 신경망의 제99회 반복에 대응하는 점 위치일 수 있으며,
Figure pat00483
는 신경망의 제100회 반복에 대응하는 점 위치일 수 있다. 또한, 프로세서는 상술한 수학식에 따라 계산을 통해 제2 균치 M2를 획득할 수 있다.
바람직하게는, 당해 제2 균치는 각 반복간격에 대응하는 검사 반복의 점 위치에 근거하여 계산할 수 있다. 구체적으로는, 도8O에 도시된 바와 같이, 본 발명의 일 실시예에 있어서 제2 균치의 확정방법(800O)의 흐름도를 도시 한다. 상술한 작업(S112)은 다음과 같은 작업을 포함할 수 있다.
S1121, 미리 설정된 수의 중간 이동평균 값을 획득한다. 여기에서, 각 상기 중간 이동평균 값은 상기 현재 검사 반복하기 전 상기 미리 설정된 수의 검사 반복에 근거하여 확정되며, 상기 검사 반복은 상기 신경망 양자화 과정에서의 파라미터를 조정하는 경우에 대응하는 반복이다.
S1122, 상기 현재 검사 반복의 점 위치 및 상기 미리 설정된 수의 중간 이동평균 값에 근거하여 상기 제2 균치를 확정한다.
예를 들어, 당해 제2 균치는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00484
;
여기에서, b1~bm은 각 반복의 점 위치에 대응하는 계산 가중치이고,
Figure pat00485
는 현재 검사 반복에 대응하는 점 위치이며,
Figure pat00486
...
Figure pat00487
는 현재 검사 반복 전의 검사 반복에 대응하는 점 위치이고, M2는 상술한 제2 균치이다.
예를 들어, 현재 검사 반복이 제100회 반복이고, 이력 반복이 제1회 반복부터 제99회 반복일 수 있으며, 당해 99회의 이력 반복은 11개의 반복간격에 각각 속할 수 있다. 예를 들어, 제1회 반복 내지 제9회 반복은 첫 번째 반복간격에 속하고, 제10회 반복 내지 제18회 반복은 두 번째 반복간격에 속하며, ......, 제90회 반복 내지 제99회 반복은 열한 번째 반복간격에 속한다. 프로세서는 당해 제100회 반복의 점 위치를 획득할 수 있고(즉
Figure pat00488
), 당해 제100회 반복 전의 반복간격 중 검사 반복의 점 위치를 획득한다. 즉
Figure pat00489
는 신경망의 첫 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있고(예를 들어
Figure pat00490
는 신경망의 제1회 반복에 대응하는 점 위치일 수 있다), ......,
Figure pat00491
는 신경망의 열 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있으며(예를 들어
Figure pat00492
는 신경망의 제81회 반복에 대응하는 점 위치일 수 있다),
Figure pat00493
는 신경망의 열한 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있다(예를 들어,
Figure pat00494
는 신경망의 제90회 반복에 대응하는 점 위치일 수 있다). 또한, 프로세서는 상술한 수학식에 따라 계산을 통해 제2 균치 M2를 획득할 수 있다.
본 발명 실시예에서, 쉽게 예를 들어 설명하기 위해, 당해 반복간격에 포함된 반복회수가 같다고 가정한다. 그러나 실제의 사용과정에서 당해 반복간격에 포함된 반복회수는 다를 수 있다. 바람직하게는, 당해 반복간격에 포함된 반복회수는 반복의 증가에 따라 증가된다. 즉 신경망 훈련 또는 미조정이 진행됨에 따라 반복간격은 갈수록 커질 수 있다.
또한, 계산을 단순화하고, 데이터가 점유하는 저장공간을 저감하기 위해, 프로세서는 상기 현재 검사 반복에 대응하는 점 위치 및 상기 제1 균치에 근거하여 상기 제2 균치를 확정할 수 있다. 즉 상술한 제2 균치는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00495
수학식(41)
여기에서,
Figure pat00496
는 현재 검사 반복에 대응하는 점 위치의 계산 가중치이며, M1은 상술한 제1 균치이다.
S113, 상기 제1 균치와 상기 제2 균치에 근거하여 제1 오차를 확정한다. 상기 제1 오차는 상기 현재 검사 반복 및 상기 이력 반복의 점 위치의 변동폭을 특성화하는 데 사용된다.
바람직하게는, 제1 오차는 제2 균치와 상술한 제1 균치 간의 차이 값의 절대치일 수 있다. 구체적으로는, 상술한 제1 오차는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00497
수학식(42)
바람직하게는, 상술한 현재 검사 반복의 점 위치는 현재 검사 반복의 양자화 대상 데이터와 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 확정할 수 있으며, 구체적인 점 위치 계산방식은 위의 수학식을 참조할 수 있다. 여기에서, 상술한 현재 검사 반복에 대응하는 목표데이터 비트폭은 하이퍼 파라미터일 수도 있다. 더 바람직하게는, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 사용자가 자신의 이해에 따라 입력한 것일 수 있다. 바람직하게는, 신경망 훈련 또는 미조정과정에서 양자화 대상 데이터에 대응하는 데이터 비트폭은 일정할 수 있다. 즉 동일한 신경망의 같은 종류의 양자화 대상 데이터는 동일한 데이터 비트폭을 채용하여 양자화된다. 예를 들어, 당해 신경망에 대하여 각 반복 중의 뉴런 데이터는 모두 8비트의 데이터 비트폭을 채용하여 양자화된다.
바람직하게는, 신경망 훈련 또는 미조정과정에서의 양자화 대상 데이터에 대응하는 데이터 비트폭은, 데이터 비트폭이 양자화 대상 데이터의 양자화 요구사항을 충족시킬 수 있게 보장하기 위해 가변적이다. 즉, 프로세서는 양자화 대상 데이터에 근거하여 자기 적응적으로 당해 양자화 대상 데이터에 대응하는 데이터 비트폭을 조정하여 당해 양자화 대상 데이터에 대응하는 목표데이터 비트폭을 획득할 수 있다. 구체적으로는, 프로세서는 먼저 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정할 수 있다. 그 다음, 프로세서는 당해 현재 검사 반복에 대응하는 목표데이터 비트폭 및 당해 현재 검사 반복에 대응하는 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 점 위치를 확정할 수 있다.
본 발명 실시예에서, 현재 검사 반복의 데이터 비트폭이 변화될 때, 점 위치는 그에 따라 변화된다. 이 때 점 위치의 변화는 양자화 대상 데이터의 데이터 변동에 의해 초래된 것이 아니며, 상술한 수학식 (42)이 확정한 제1 오차에 근거하여 계산을 통해 획득한 목표반복간격은 정확하지 않은 경우가 있어 양자화의 정밀도에 영향을 줄 가능성이 있다. 따라서, 현재 검사 반복의 데이터 비트폭이 변화될 때, 상술한 제2 균치를 그것에 따라 조정하여 제1 오차가 점 위치의 변동폭을 정확하게 반영할 수 있게 보장할 수 있으며, 진일보로 목표반복간격의 정확성과 신뢰성을 보장하게 할 수 있다. 구체적으로는, 도8P에 도시된 바와 같이, 본 발명의 다른 실시예에 있어서 제2 균치의 확정방법(800P)의 흐름도를 도시한다. 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
S116, 상기 목표데이터 비트폭에 근거하여 상기 현재 검사 반복의 데이터 비트폭 조정 값을 확정한다.
구체적으로는, 프로세서는 현재 검사 반복의 목표데이터 비트폭과 초기 데이터 비트폭에 근거하여 현재 검사 반복의 데이터 비트폭 조정 값을 확정한다. 여기에서, 당해 데이터 비트폭 조정 값=목표데이터 비트폭-초기 데이터 비트폭이다. 물론, 프로세서는 현재 검사 반복의 데이터 비트폭 조정 값을 직접 획득할 수 있다.
S117, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상술한 제2 균치를 업데이트한다.
구체적으로는, 데이터 비트폭 조정 값이 미리 설정된 파라미터(예를 들어, 당해 미리 설정된 파라미터는 령일 수 있다)보다 클 경우, 즉 현재 검사 반복의 데이터 비트폭이 증가될 때, 프로세서는 이에 대응하여 제2 균치를 감소할 수 있다. 데이터 비트폭 조정 값이 미리 설정된 파라미터(예를 들어, 당해 미리 설정된 파라미터는 령일 수 있다)보다 작은 경우, 즉 현재 검사 반복의 데이터 비트폭이 감소될 때, 프로세서는 이에 대응하여 제2 균치를 증가시킬 수 있다. 데이터 비트폭 조정 값이 미리 설정된 파라미터와 같은 경우, 즉 데이터 비트폭 조정 값이 0인 경우, 이 때 현재 반복에 대응하는 양자화 대상 데이터에 변경이 없으면, 업데이트 후의 제2 균치는 업데이트하기 전의 제2 균치와 같으며, 당해 업데이트 전의 제2 균치는 상술한 수학식 (41)에 따라 계산하여 획득할 수 있다. 바람직하게는, 데이터 비트폭 조정 값이 미리 설정된 파라미터와 같은 경우, 즉 데이터 비트폭 조정 값이 0인 경우, 프로세서는 제2 균치를 업데이트하지 않는다. 즉 프로세서는 상술한 작업(S117)을 실행하지 않을 수 있다.
예를 들어, 업데이트하기 전의 제2 균치
Figure pat00498
이다. 현재 검사 반복에 대응하는 목표데이터 비트폭은 n2=초기 데이터 비트폭 n1+
Figure pat00499
이다, 여기에서,
Figure pat00500
은 데이터 비트폭 조정 값을 나타낸다. 이 때, 업데이트 후의 제2 균치
Figure pat00501
이다. 현재 검사 반복에 대응하는 목표데이터가 비트폭 n2=초기 데이터 비트폭n1-
Figure pat00502
인 경우, 여기에서,
Figure pat00503
은 데이터 비트폭 조정 값을 나타낼 수 있다. 이 때, 업데이트 후의 제2 균치
Figure pat00504
이다. 여기에서,
Figure pat00505
는 현재 검사 반복이 목표데이터 비트폭에 근거하여 확정한 점 위치이다.
또한, 업데이트하기 전의 제2 균치
Figure pat00506
이다. 현재 검사 반복에 대응하는 목표데이터 비트폭 n2=초기 데이터 비트폭 n1+
Figure pat00507
인 경우, 여기에서,
Figure pat00508
은 데이터 비트폭 조정 값이다. 이 때, 업데이트 후의 제2 균치
Figure pat00509
이다. 또한, 현재 검사 반복에 대응하는 목표데이터 비트폭 n2=초기 데이터 비트폭 n1-
Figure pat00510
인 경우, 여기에서,
Figure pat00511
은 데이터 비트폭 조정 값을 표현하며, 이 때, 업데이트 후의 제2 균치
Figure pat00512
이다. 여기에서,
Figure pat00513
는 현재 검사 반복이 목표데이터 비트폭에 근거하여 확정한 점 위치이다.
또한, 상술한 작업(S200)은 다음과 같은 단계를 포함할 수 있다.
점 위치의 변동폭에 근거하여 목표반복간격을 확정할 수 있다, 여기에서, 당해 목표반복간격과 상술한 점 위치의 변동폭은 부의 상관이고. 즉 상술한 점 위치의 변동폭이 클수록 당해 목표반복간격이작아진다. 상술한 점 위치의 변동폭이 작으면 작을 수록 당해 목표반복간격이크다.
상술한 바와 같이, 상술한 제1 오차는 점 위치의 변동폭을 특성화할 수 있다. 상술한 작업은 다음과 같은 것을 포함한다.
프로세서는 상기 제1 오차에 근거하여 상기 목표반복간격을 확정할 수 있으며, 여기에서, 목표반복간격은 상기 제1 오차와 부의 상관이 있다. 즉 제1 오차가 클 수록 점 위치의 변화 폭이 크며, 진일보로 양자화 대상 데이터의 데이터 변동폭이 크다는 것을 설명하며, 이 때, 목표반복간격이 작아진다.
구체적으로는, 프로세서는 이하의 수학식에 따라 계산을 통해 목표반복간격
Figure pat00514
을 얻는다
Figure pat00515
수학식(43)
여기에서, I는 목표반복간격이고,
Figure pat00516
는 상술한 제1 오차를 표현하며,
Figure pat00517
은 하이퍼 파라미터일 수 있다.
또한, 제1 오차는 점 위치의 변동폭을 가늠하는 데 사용되며, 제1 오차가 클 수록 점 위치의 변동폭이 크고, 진일보로 양자화 대상 데이터의 데이터 변동폭이 큰 것을 나타내며, 목표반복간격을 작게 설정할 필요가 있는 것을 이해해야 한다. 즉, 제1 오차가 클 수록 빈번하게 양자화 파라미터를 조정한다.
본 실시예에서, 점 위치의 변동폭(제1 오차)을 계산함으로써, 점 위치의 변동폭에 근거하여 목표반복간격을 확정한다. 양자화 파라미터는 목표반복간격에 근거하여 확정되기 때문에, 양자화 파라미터에 근거하여 양자화하여 얻은 양자화 데이터를 목표데이터의 점 위치의 변동추세에 보다 부합되도록 할 수 있고, 양자화 정밀도를 보장함과 동시에 신경망의 가동효율을 향상시킬 수 있다.
바람직하게는, 프로세서는 현재 검사 반복에서 목표반복간격을 확정한 후, 현재 검사 반복에서 목표반복간격에 대응하는 양자화 파라미터와 데이터 비트폭등 파라미터를 더 확정하여 목표반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 여기에서, 양자화 파라미터는 점 위치 및/또는 스케일 팩터를 포함할 수 있다. 또한, 당해 양자화 파라미터는 오프셋을 포함할 수 있다. 당해 양자화 파라미터의 구체적 계산방식은 위의 설명을 참조할 수 있다. 도8Q에 도시된 바와 같이, 본 발명 다른 실시예의 양자화 파라미터 조정방법(800Q)의 흐름도를 나타내며, 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
S300, 프로세서는 목표반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 조정한다.
구체적으로는, 프로세서는 목표반복간격에 근거하여 검사 반복을 확정하고, 각 검사 반복에서 목표반복간격을 업데이트할 수 있으며, 각 검사 반복에서 양자화 파라미터를 업데이트할 수도 있다. 예를 들어, 신경망 연산에서 데이터 비트폭을 변하지 않게 유지하며, 이 때, 프로세서는 각 검사 반복에서 직접 검사 반복의 양자화 대상 데이터에 근거하여 점 위치 등 양자화 파라미터를 조정할 수 있다. 또한, 신경망 연산에서 데이터 비트폭은 가변적이며, 이 때, 프로세서는 각 검사 반복에서 데이터 비트폭을 업데이트하고, 업데이트 후의 데이터 비트폭과 당해 검사 반복의 양자화 대상 데이터에 근거하여 점 위치 등 양자화 파라미터를 조정할 수 있다.
본 발명 실시예에서, 프로세서는 각 검사 반복에서 양자화 파라미터를 업데이트하여 현재 양자화 파라미터가 양자화 대상 데이터의 양자화 요구사항을 충족하도록 보장한다. 여기에서, 업데이트하기 전의 목표반복간격과 업데이트 후의 목표반복간격은 같을 수도 다를 수도 있다. 업데이트하기 전의 데이터 비트폭과 업데이트 후의 데이터 비트폭은 같을 수도 다를 수도 있다. 즉 상이한 반복간격의 데이터 비트폭은 같을 수도 다를 수도 있다. 업데이트하기 전의 양자화 파라미터와 업데이트 후의 양자화 파라미터는 같을 수도 다를 수도 있다. 즉 상이한 반복간격의 양자화 파라미터는 같을 수도 다를 수도 있다.
바람직하게는, 상술한 작업(S300)에서, 프로세서는 검사 반복에서 목표반복간격 중의 양자화 파라미터를 확정하여 신경망 연산에서의 양자화 파라미터를 조정할 수 있다.
한 가지 상황에서, 당해 신경망 연산에서 각 반복에 대응하는 데이터 비트폭은 모두 변화하지 않는다. 즉 당해 신경망 연산에서 각 반복에 대응하는 데이터 비트폭은 모두 같으며, 이 때, 프로세서는 목표반복간격에서의 점 위치 등 양자화 파라미터를 확정하여 목표반복간격에 근거한 신경망 연산에서의 양자화 파라미터의 조정 목적을 실현할 수 있다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 양자화 파라미터는 일치할 수 있다. 즉, 목표반복간격 중의 각 반복은 모두 동일한 점 위치를 채용하며, 각 검사 반복에서만 점 위치 등 양자화 파라미터를 업데이트 및 확정한다. 따라서 매번 반복에서 모두 양자화 파라미터를 업데이트하여 조정하는 것을 회피하고, 양자화 과정에서의 계산량을 삭감하며, 양자화 작업의 효율을 향상시킬 수 있다.
바람직하게는, 상술한 데이터 비트폭이 변하지 않는 경우에 대하여, 목표반복간격 중 반복에 대응하는 점 위치는 일치하게 유지할 수 있다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 당해 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여, 현재 검사 반복에 대응하는 점 위치를 확정하고, 당해 현재 검사 반복에 대응하는 점 위치를 당해 목표반복간격에 대응하는 점 위치로 할 수 있으며, 당해 목표반복간격 중 반복은 모두 현재 검사 반복에 대응하는 점 위치를 계속 사용한다. 바람직하게는, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 사용자가 이해에 의해 입력한 것이다. 당해 현재 검사 반복에 대응하는 점 위치는 위의 수학식 계산을 참조할 수 있다.
한 가지 상황에서, 당해 신경망 연산에서의 각 반복에 대응하는 데이터 비트폭은 변화할 수 있다. 즉 상이한 목표반복간격에 대응하는 데이터 비트폭은 일치하지 않아도 되지만, 목표반복간격 중 각 반복의 데이터 비트폭은 변하지 않도록 유지된다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 사용자가 자신의 이해에 따라 입력한 것일 수 있다. 한 가지 상황에서, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 프로세서가 계산하여 획득한 것일 수도 있다. 예를 들어, 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하고, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭을 목표반복간격에 대응하는 데이터 비트폭으로 할 수 있다.
이 때, 양자화 과정에서의 계산량을 단순화하기 위해, 당해 목표반복간격에서 대응하는 점 위치 등 양자화 파라미터는 변하지 않도록 유지할 수도 있다. 즉, 목표반복간격 중의 각 반복은 모두 동일한 점 위치를 채용하며, 각 검사 반복에서만 점 위치 등 양자화 파라미터 및 데이터 비트폭을 업데이트 및 확정한다. 따라서 매번 반복에서 모두 양자화 파라미터를 업데이트하여 조정하는 것을 회피하고, 양자화 과정에서의 계산량을 삭감하며, 양자화 작업의 효율을 향상시킬 수 있다.
바람직하게는, 상술한 목표반복간격에 대응하는 데이터 비트폭이 변하지 않는 경우에 대하여, 목표반복간격 중 반복에 대응하는 점 위치는 일치하게 유지할 수 있다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 당해 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여, 현재 검사 반복에 대응하는 점 위치를 확정하고, 당해 현재 검사 반복에 대응하는 점 위치를 당해 목표반복간격에 대응하는 점 위치로 할 수 있으며, 당해 목표반복간격 중 반복은 모두 현재 검사 반복에 대응하는 점 위치를 계속 사용한다. 바람직하게는, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 사용자가 이해에 의해 입력한 것이다. 당해 현재 검사 반복에 대응하는 점 위치는 위의 수학식 계산을 참조할 수 있다.
바람직하게는, 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치할 수 있다. 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 스케일 팩터를 확정하고, 당해 현재 검사 반복에 대응하는 스케일 팩터을 목표반복간격 중 각 반복의 스케일 팩터로 할 수 있다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치하다.
바람직하게는, 목표반복간격 중 반복에 대응하는 오프셋은 일치하다. 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 오프셋을 확정하며, 당해 현재 검사 반복에 대응하는 오프셋을 목표반복간격 중 각 반복의 오프셋으로 할 수 있다. 또한, 프로세서는 양자화 대상 데이터의 모든 요소 중 최소 값과 최대 값을 확정하고, 진일보로 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 상세에 대해서는 위의 설명을 참조할 수 있다. 당해 목표반복간격 중 반복에 대응하는 오프셋은 일치하다.
예를 들어, 당해 목표반복간격은 현재 검사 반복부터 반복회수를 계산할 수 있다. 즉 목표반복간격에 대응하는 검사 반복은 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제100회 반복, 제101회 반복 및 제102회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 또한 프로세서는 제100회 반복에 대응하는 양자화 대상 데이터와 목표데이터 비트폭에 근거하여, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 확정할 수 있고, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 채용하여 제100회 반복, 제101회 반복 및 제102회 반복을 양자화할 수 있다. 이러한 방식으로, 프로세서는 제101회 반복과 제102회 반복에서 점 위치 등 양자화 파라미터을 계산할 필요가 없으며, 양자화 과정에서의 계산량을 삭감하여 양자화 작업의 효율을 향상시킨다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있다. 즉 당해 목표반복간격에 대응하는 검사 반복은 당해 목표반복간격의 종료 반복일 수도 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이다. 프로세서는 당해 목표반복간격이 제101회 반복, 제102회 반복 및 제103회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 따라서 프로세서는 제100회 반복에 대응하는 양자화 대상 데이터와 목표데이터 비트폭에 근거하여, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 확정할 수 있고, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 채용하여 제101회 반복, 제102회 반복 및 제103회 반복을 양자화할 수 있다. 이러한 방식으로, 프로세서는 제102회 반복과 제103회 반복에서 점 위치 등 양자화 파라미터를 계산할 필요가 없으며, 양자화 과정에서의 계산량을 삭감하여 양자화 작업의 효율을 향상시킨다.
본 발명 실시예에서, 동일한 목표반복간격 중 각 반복에 대응하는 데이터 비트폭 및 양자화 파라미터 모두 일치하다. 즉 동일한 목표반복간격 중 각 반복에 대응하는 데이터 비트폭, 점 위치, 스케일 팩터 및 오프셋은 모두 변하지 않도록 유지되며, 신경망의 훈련 또는 미조정과정에서 양자화 대상 데이터의 양자화 파라미터를 빈번하게 조정하는 것을 회피할 있고, 양자화 과정에서의 계산량을 삭감하여 양자화 효율을 향상시킬 수 있다. 또한, 훈련 또는 미조정의 상이한 단계에서 데이터 변동폭에 근거하여 동적으로 양자화 파라미터를 조정함으로써 양자화 정밀도를 보장할 수 있다.
다른 상황에서, 당해 신경망 연산에서의 각 반복에 대응하는 데이터 비트폭은 변화할 수 있으나 목표반복간격 중 각 반복의 데이터 비트폭은 변하지 않게 유지된다. 이 때, 목표반복간격 중 반복에 대응하는 점 위치 등 양자화 파라미터는 일치하지 않을 수도 있다. 프로세서는 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 목표반복간격에 대응하는 데이터 비트폭을 확정할 수도 있다. 여기에서, 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 그 다음, 프로세서는 당해 목표반복간격에 대응하는 데이터 비트폭과 점 위치 반복간격에 근거하여 신경망 연산과정에서의 점 위치 등 양자화 파라미터를 조정할 수 있다. 바람직하게는, 도8R에 도시된 바와 같이, 본 발명의 일 실시예의 양자화 파라미터 조정방법에서 양자화 파라미터를 조정하는 방법(800R)의 흐름도를 나타낸다. 상술한 작업(S300)은 다음과 같은 단계를 포함할 수 있다.
S310, 현재 검사 반복의 양자화 대상 데이터에 근거하여 목표반복간격에 대응하는 데이터 비트폭을 확정한다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 즉, 신경망 연산과정에서의 데이터 비트폭은 하나의 목표반복간격을 사이로 1회 업데이트한다. 바람직하게는, 당해 목표반복간격에 대응하는 데이터 비트폭은 현재 검사 반복의 목표데이터 비트폭일 수 있다. 당해 현재 검사 반복의 목표데이터 비트폭은 위의 작업(S114)과 (S115)을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
예를 들어, 당해 목표반복간격은 현재 검사 반복부터 반복회수를 계산할 수 있다, 즉 목표반복간격에 대응하는 검사 반복은 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정한 반복간격이 6이면, 프로세서는 당해 목표반복간격이 제100회 반복 내지 제105회 반복의 6회 반복을 포함한다는 것을 확정할 수 있다. 이 때, 프로세서는 제100회 반복의 목표데이터 비트폭을 확정하고, 제101회 반복 내지 제105회 반복에서 당해 제100회 반복의 목표데이터 비트폭을 계속 사용할 수 있어 제101회 반복 내지 제105회 반복에서 목표데이터 비트폭을 계산할 필요가 없다. 따라서 계산량을 삭감하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 그 다음에, 제106회 반복은 현재 검사 반복으로 될 수 있고, 상술한 목표반복간격의 확정 및 데이터 비트폭의 업데이트 작업을 되풀이 할 수 있다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있다. 즉 당해 목표반복간격에 대응하는 검사 반복은 당해 목표반복간격의 종료 반복일 수도 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정한 반복간격이 6이다. 따라서 프로세서는 당해 목표반복간격이 제101회 반복 내지 제106회 반복의 6회 반복을 포함한다는 것을 확정할 수 있다. 이 때, 프로세서는 제100회 반복의 목표데이터 비트폭을 확정하고, 제101회 반복 내지 제106회 반복에서 당해 제100회 반복의 목표데이터 비트폭을 계속 사용할 수 있으며, 제101회 반복 내지 제106회 반복에서 목표데이터 비트폭을 계산할 필요가 없다. 따라서 계산량을 삭감하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 그 다음에, 제106회 반복은 현재 검사 반복으로 될 수 있고, 상술한 목표반복간격의 확정 및 데이터 비트폭의 업데이트 작업을 되풀이 할 수 있다.
S320, 프로세서는 획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정함으로써, 상기 신경망 연산에서의 점 위치 등 양자화 파라미터를 조정한다.
여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하며, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치하다. 바람직하게는, 당해 점 위치 반복간격은 하이퍼 파라미터일 수 있다. 예를 들어, 당해 점 위치 반복간격은 사용자가 자체의 이해에 따라 입력한 것일 수 있다.
바람직하게는, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다. 당해 점 위치 반복간격와 상술한 목표반복간격이 같은 경우, 프로세서는 현재 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 동기적으로 업데이트할 수 있다. 더 바람직하게는, 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치할 수 있다. 또한, 목표반복간격 중 반복에 대응하는 오프셋은 일치하다. 이 때, 당해 목표반복간격에서의 반복에 대응하는 데이터 비트폭과 점 위치 등 양자화 파라미터가 모두 같으므로 계산량을 삭감할 수 있어 양자화 효율과 연산효율을 향상시킬 수 있다. 구체적인 실현과정과 상술한 실시예는 기본적으로 일치하며, 위의 설명을 참조할 수 있어 여기에서 다시 언급하지 않는다.
점 위치 반복간격이 상술한 목표반복간격 미만인 경우, 프로세서는 목표반복간격에 대응하는 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 업데이트하고, 당해 점 위치 반복간격이 확정된 서브 검사 반복에서 점 위치 등 양자화 파라미터를 업데이트할 수 있다. 데이터 비트폭이 변하지 않는 경우, 점 위치 등 양자화 파라미터는 양자화 대상 데이터에 근거하여 미조정할 수 있다. 따라서, 동일한 목표반복간격 내에서 점 위치 등 양자화 파라미터를 조정하여 진일보로 양자화 정밀도를 향상시킬 수 있다.
구체적으로는, 프로세서는 현재 검사 반복과 점 위치 반복간격에 근거하여 서브 검사 반복을 확정할 수 있으며, 당해 서브 검사 반복은 점 위치을 조정하는 데 사용되고, 당해 서브 검사 반복은 목표반복간격 중의 반복일 수 있다. 또한, 프로세서는 서브 검사 반복의 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭에 근거하여 목표반복간격 중 반복에 대응하는 점 위치를 조정할 수 있다. 여기에서, 점 위치의 확정방식은 상술한 수학식을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
예를 들어, 현재 검사 반복이 제100회 반복이고, 당해 목표반복간격이 6이며, 당해 목표반복간격에 포함된 반복이 제100회 반복 내지 제105회 반복이다. 프로세서가 획득한 점 위치 반복간격이
Figure pat00518
=3인 경우, 현재 검사 반복부터 3회 반복을 간격으로 점 위치를 1회 조정할 수 있다. 구체적으로는, 프로세서는 제100회 반복을 상술한 서브 검사 반복으로 하고, 당해 제100회 반복에 대응하는 점 위치 s1을 계산하여 획득하며, 제100회 반복, 제101회 반복 및 제102회 반복에서 점 위치 s1을 공통으로 사용하여 양자화할 수 있다. 그 다음, 프로세서은 점 위치 반복간격
Figure pat00519
에 근거하여 제103회 반복을 상술한 서브 검사 반복으로 할 수 있으며, 동시에 프로세서는 제103회 반복에 대응하는 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭 n에 근거하여 두 번째 점 위치 반복간격에 대응하는 점 위치 s2를 확정할 수 있으며, 제103회 반복 내지 제105회 반복에서 상술한 점 위치 s2를 공통으로 사용하여 양자화할 수 있다. 본 발명 실시예에서, 상술한 업데이트하기 전의 점 위치 s1과 업데이트 후의 점 위치 s2의 값은 같을 수도 다를 수도 있다. 또한, 프로세서는 제106회 반복에서 다시 양자화 대상 데이터의 데이터 변동폭에 근거하여 다음 목표반복간격 및 당해 다음 목표반복간격에 대응하는 데이터 비트폭 및 점 위치 등 양자화 파라미터를 확정할 수 있다.
또한, 현재 검사 반복이 제100회 반복이고, 당해 목표반복간격이 6이며, 당해 목표반복간격에 포함된 반복이 제101회 반복 내지 제106회 반복이다. 프로세서가 획득한 점 위치 반복간격이
Figure pat00520
=3인 경우, 현재 검사 반복부터 3회 반복을 간격으로 점 위치를 1회 조정할 수 있다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 현재 검사 반복에 대응하는 목표데이터 비트폭 n1에 근거하여 첫 번째 점 위치 반복간격에 대응하는 점 위치가 s1임을 확정하면, 제101회 반복, 제102회 반복 및 제103회 반복에서 상술한 점 위치 s1을 공통으로 사용하여 양자화할 수 있다. 그 다음, 프로세서는 점 위치 반복간격
Figure pat00521
에 근거하여 제104회 반복을 상술한 서브 검사 반복으로 할 수 있고, 동시에 프로세서는 제104회 반복에 대응하는 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭 n1에 근거하여 두 번째 점 위치 반복간격에 대응하는 점 위치 s2를 확정할 수 있으며, 제104회 반복 내지 제106회 반복에서 상술한 점 위치 s2를 공통으로 사용하여 양자화할 수 있다. 본 발명 실시예에서, 상술한 업데이트하기 전의 점 위치 s1과 업데이트 후의 점 위치 s2의 값은 같을 수도 다를 수도 있다. 또한, 프로세서는 제106회 반복에서 다시 양자화 대상 데이터의 데이터 변동폭에 근거하여 다음 목표반복간격 및 당해 다음 목표반복간격에 대응하는 데이터 비트폭 및 점 위치 등 양자화 파라미터를 확정할 수 있다.
바람직하게는, 당해 점 위치 반복간격은 1과 같을 수 있다. 즉 매번 반복에서 모두 점 위치를 1회 업데이트한다. 바람직하게는, 당해 점 위치 반복간격은 같을 수도 다를 수도 있다. 예를 들어, 당해 목표반복간격에 포함된 적어도 하나의 점 위치 반복간격은 순차적으로 증가될 수 있다. 여기에서는 예시적으로 본 실시예의 실현방식을 설명할 뿐이며, 본 발명을 한정하기 위한 것이 아니다.
바람직하게는, 당해 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치하지 않을 수도 있다. 더 바람직하게는, 당해 스케일 팩터는 상술한 점 위치와 동기적으로 업데이트될 수 있다. 즉, 당해 스케일 팩터에 대응하는 반복간격은 상술한 점 위치 반복간격과 같을 수 있다. 즉 프로세서가 점 위치를 업데이트하고 확정할 때마다, 이에 대응하여 스케일 팩터를 업데이트하고 확정한다.
바람직하게는, 당해 목표반복간격 중 반복에 대응하는 오프셋은 일치하지 않을 수도 있다. 또한, 당해 오프셋은 상술한 점 위치와 동기적으로 업데이트될 수 있다. 즉, 당해 오프셋에 대응하는 반복간격은 상술한 점 위치 반복간격과 같을 수 있다. 즉 프로세서가 점 위치를 업데이트하고 확정할 때마다, 이에 대응하여 오프셋을 업데이트하고 확정한다. 물론, 당해 오프셋은 상술한 점 위치 또는 데이터 비트폭과 비동기적으로 업데이트될 수도 있으며, 여기에서는 구체적으로 한정하지 않는다. 또한, 프로세서는 양자화 대상 데이터의 모든 요소 중 최소 값과 최대 값을 확정하고, 진일보로 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 상세에 대해서는 위의 설명을 참조할 수 있다.
다른 실시예에 있어서, 프로세서는 점 위치의 변동폭과 양자화 대상 데이터의 데이터 비트폭의 변화에 근거하여 양자화 대상 데이터의 데이터 변동폭을 통합적으로 확정하고, 당해 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 수 있다. 여기에서, 당해 목표반복간격은 데이터 비트폭을 업데이트하고 확정하는 데 사용할 수 있다. 즉 프로세서는 각 목표반복간격의 검사 반복에서 데이터 비트폭을 업데이트하고 확정할 수 있다. 점 위치가 고정 소수점 데이터의 정밀도를 반영할 수 있고, 데이터 비트폭이 고정 소수점 데이터의 데이터 표현범위을 반영할 수 있으므로, 점 위치의 변동폭과 양자화 대상 데이터의 데이터 비트폭 변화를 통합함으로써 양자화 후의 데이터가 정밀도를 충족할 수 있을 뿐만 아니라 데이터 표현범위도 충족시킬 수 있도록 보장할 수 있다. 바람직하게는, 점 위치의 변화 폭은 상술한 제1 오차를 채용하여 특성화할 수 있고, 데이터 비트폭의 변화는 상술한 양자화 오차에 근거하여 확정할 수 있다. 구체적으로는, 도8S에 도시된 바와 같이, 본 발명 다른 실시예의 파라미터 조정방법에서 목표반복간격의 확정방법(800S)의 흐름도를 도시하며, 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
S400, 양자화 대상 데이터의 데이터 변동폭을 표현할 수 있는 점 위치의 변동폭을 특성화할 수 있는 제1 오차를 획득한다. 구체적으로는, 상술한 제1 오차의 계산방식은 위 작업(S110)에서의 설명을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
S500, 상기 데이터 비트폭의 변화를 특성화하는 데 사용되는 제2 오차를 획득한다.
바람직하게는, 상술한 제2 오차는 양자화 오차에 근거하여 확정할 수 있으며, 당해 제2 오차는 상술한 양자화 오차와 정의 상관이 있다. 구체적으로는, 도8T에 도시된 바와 같이, 본 발명의 또 다른 실시예의 파라미터 조정방법에서 목표반복간격의 확정방법(800T)의 흐름도를 도시하며, 상술한 작업(S500)은 다음과 같은 단계를 포함할 수 있다.
S510, 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정한다. 여기에서, 상기 현재 검사 반복의 양자화 데이터는 초기 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터에 대해 양자화하여 획득한다. 여기에서, 구체적인 양자화 오차 확정방식은 위 작업(S114)에서의 설명을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
S520, 상기 양자화 오차에 근거하여 상기 제2 오차를 확정하며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있다.
구체적으로는, 제2 오차는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00522
수학식(44)
여기에서,
Figure pat00523
는 상술한 제2 오차를표현하고,
Figure pat00524
는 상술한 양자화 오차를 표현하며,
Figure pat00525
는 하이퍼 파라미터일 수 있다.
도8S에 되돌와서, S600에서는, 상기 제2 오차와 상기 제1 오차에 근거하여 상기 목표반복간격을 확정한다.
구체적으로는, 프로세서는 제1 오차와 제2 오차에 근거하여 계산을 통해 목표오차를 획득하고, 목표오차에 근거하여 목표반복간격을 확정할 수 있다. 바람직하게는, 목표오차는 제1 오차와 제2 오차에 가중치를 부여하고 평균을 계산하여 획득한 것일 수 있다. 예를 들어, 목표오차=K*제1 오차+(1-K)*제2 오차. 여기에서, K는 하이퍼 파라미터이다. 그 다음에는, 프로세서는 당해 목표오차에 근거하여 목표반복간격을 확정할 수 있으며, 목표반복간격은 당해 목표오차와 부의 상관이 있다. 즉 목표오차가 크면 클 수록, 목표반복간격이 작아진다.
바람직하게는, 당해 목표오차는 제1 오차와 제2 오차 중의 최대 또는 최소 값에 근거하여 확정할 수도 있으며, 이 때 제1 오차 또는 제2 오차의 가중치는 0이다. 구체적으로는, 도8T에 도시된 바와 같이, 상술한 작업(S600)은 다음과 같은 단계를 포함할 수 있다.
S610, 상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 한다.
구체적으로는, 프로세서는 제1 오차
Figure pat00526
와 제2 오차
Figure pat00527
의 크기를 비교하며, 제1 오차
Figure pat00528
가 제2 오차
Figure pat00529
보다 클 경우, 당해 목표오차는 제1 오차
Figure pat00530
와 같다. 제1 오차
Figure pat00531
가 제2 오차 미만이면 당해 목표오차는 제2 오차
Figure pat00532
와 같다. 제1 오차
Figure pat00533
가 제2 오차와 같은 경우, 당해 목표오차는 제1 오차
Figure pat00534
또는 제2 오차
Figure pat00535
일 수 있다. 즉 목표오차
Figure pat00536
는 다음과 같은 수학식으로 확정할 수 있다.
Figure pat00537
수학식(45)
여기에서,
Figure pat00538
는 목표오차이고,
Figure pat00539
는 제1 오차이며,
Figure pat00540
는 제2 오차이다.
S620, 상기 목표오차에 근거하여 상기 목표반복간격을 확정한다, 여기에서, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있다. 구체적으로는, 목표반복간격은 다음과 같은 방식으로 확정할 수 있다.
이하의 수학식에 따라 목표반복간격을 얻을 수 있다.
Figure pat00541
수학식(46)
여기에서, I는 목표반복간격을 표현하고,
Figure pat00542
는 상술한 목표오차를 표현하며,
Figure pat00543
Figure pat00544
는 하이퍼 파라미터일 수 있다.
바람직하게는, 상술한 실시예에서, 신경망 연산 중 데이터 비트폭은 가변적이며, 제2 오차를 통해 데이터 비트폭의 변화추세를 가늠할 수 있다. 이런 경우에서, 도8T에 도시된 바와 같이, 프로세서는 목표반복간격을 확정한 후, 작업(S630)을 실행하여 목표반복간격 중 반복에 대응하는 데이터 비트폭을 확정할 수 있다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 목표반복간격에 대응하는 데이터 비트폭을 확정할 수 있다. 즉, 신경망 연산과정에서의 데이터 비트폭은 하나의 목표반복간격을 사이로 1회 업데이트한다. 바람직하게는, 당해 목표반복간격에 대응하는 데이터 비트폭은 현재 검사 반복의 목표데이터 비트폭일 수 있다. 당해 현재 검사 반복의 목표데이터 비트폭은 위의 작업(S114)과 (S115)을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
예를 들어, 당해 목표반복간격은 현재 검사 반복부터 반복회수를 계산할 수 있다. 즉 목표반복간격에 대응하는 검사 반복은 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정한 반복간격이 6이면, 프로세서는 당해 목표반복간격이 제100회 반복 내지 제105회 반복의 6회 반복을 포함한다는 것을 확정할 수 있다. 이 때, 프로세서는 제100회 반복의 목표데이터 비트폭을 확정하고, 제101회 반복 내지 제105회 반복에서 당해 제100회 반복의 목표데이터 비트폭을 계속 사용할 수 있어 제101회 반복 내지 제105회 반복에서 목표데이터 비트폭을 계산할 필요가 없다. 따라서 계산량을 삭감하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 그 다음에는, 제106회 반복은 현재 검사 반복으로 될 수 있고, 상술한 목표반복간격의 확정 및 데이터 비트폭의 업데이트 작업을 되풀이 할 수 있다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있다. 즉 당해 목표반복간격에 대응하는 검사 반복은 당해 목표반복간격의 종료 반복일 수도 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정한 반복간격이 6이다. 따라서 프로세서는 당해 목표반복간격이 제101회 반복 내지 제106회 반복의 6회 반복을 포함한다는 것을 확정할 수 있다. 이 때, 프로세서는 제100회 반복의 목표데이터 비트폭을 확정하고, 제101회 반복 내지 제106회 반복에서 당해 제100회 반복의 목표데이터 비트폭을 계속 사용할 수 있으며, 제101회 반복 내지 제106회 반복에서 목표데이터 비트폭을 계산할 필요가 없다. 따라서 계산량을 삭감하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 그 다음에는, 제106회 반복은 현재 검사 반복으로 될 수 있고, 상술한 목표반복간격의 확정 및 데이터 비트폭의 업데이트 작업을 되풀이 할 수 있다.
또한, 프로세서는 검사 반복에서 목표반복간격 주의 양자화 파라미터를 확정하여 목표반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 조정하도록 할 수 있다. 즉 당해 신경망 연산에서의 점 위치 등 양자화 파라미터는 데이터 비트폭과 동기적으로 업데이트될 수 있다.
한 가지 상황에서, 당해 목표반복간격 중 반복에 대응하는 양자화 파라미터는 일치할 수 있다. 바람직하게는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 당해 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 현재 검사 반복에 대응하는 점 위치를 확정하고, 당해 현재 검사 반복에 대응하는 점 위치를 당해 목표반복간격에 대응하는 점 위치로 할 수 있다. 여기에서 당해 목표반복간격 중 반복에 대응하는 점 위치는 일치하다. 즉, 목표반복간격 중의 각 반복은 모두 현재 검사 반복의 점 위치 등 양자화 파라미터를 계속하여 사용하며, 매번 반복에서 모두 양자화 파라미터를 업데이트하여 조정하는 것을 회피함으로써, 양자화 과정에서의 계산량을 삭감하고, 양자화 작업의 효율을 향상시킨다.
바람직하게는, 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치할 수 있다. 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 스케일 팩터를 확정하고, 당해 현재 검사 반복에 대응하는 스케일 팩터을 목표반복간격 중 각 반복의 스케일 팩터로 할 수 있다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치하다.
바람직하게는, 목표반복간격 중 반복에 대응하는 오프셋은 일치하다. 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 오프셋을 확정하며, 당해 현재 검사 반복에 대응하는 오프셋을 목표반복간격 중 각 반복의 오프셋으로 할 수 있다. 또한, 프로세서는 양자화 대상 데이터의 모든 요소 중 최소 값과 최대 값을 확정하고, 진일보로 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 상세에 대해서는 위의 설명을 참조할 수 있다. 당해 목표반복간격 중 반복에 대응하는 오프셋은 일치하다.
예를 들어, 당해 목표반복간격은 현재 검사 반복부터 반복회수를 계산할 수 있다. 즉 목표반복간격에 대응하는 검사 반복은 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제100회 반복, 제101회 반복 및 제102회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 또한 프로세서는 제100회 반복에 대응하는 양자화 대상 데이터와 목표데이터 비트폭에 근거하여, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 확정할 수 있고, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 채용하여 제100회 반복, 제101회 반복 및 제102회 반복을 양자화할 수 있다. 이러한 방식으로, 프로세서는 제101회 반복과 제102회 반복에서 점 위치 등 양자화 파라미터을 계산할 필요가 없으며, 양자화 과정에서의 계산량을 삭감하여 양자화 작업의 효율을 향상시킨다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있다. 즉 당해 목표반복간격에 대응하는 검사 반복은 당해 목표반복간격의 종료 반복일 수도 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면. 프로세서는 당해 목표반복간격이 제101회 반복, 제102회 반복 및 제103회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 따라서 프로세서는 제100회 반복에 대응하는 양자화 대상 데이터와 목표데이터 비트폭에 근거하여, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 확정할 수 있고, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 채용하여 제101회 반복, 제102회 반복 및 제103회 반복을 양자화할 수 있다. 이러한 방식으로, 프로세서는 제102회 반복과 제103회 반복에서 점 위치 등 양자화 파라미터를 계산할 필요가 없으며, 양자화 과정에서의 계산량을 삭감하여 양자화 작업의 효율을 향상시킨다.
본 발명 실시예에서, 동일한 목표반복간격 중 각 반복에 대응하는 데이터 비트폭 및 양자화 파라미터 모두 일치하다. 즉 동일한 목표반복간격 중 각 반복에 대응하는 데이터 비트폭, 점 위치, 스케일 팩터 및 오프셋은 모두 변하지 않도록 유지되며, 신경망의 훈련 또는 미조정과정에서 양자화 대상 데이터의 양자화 파라미터를 빈번하게 조정하는 것을 회피할 있고, 양자화 과정에서의 계산량을 삭감하여 양자화 효율을 향상시킬 수 있다. 또한, 훈련 또는 미조정의 상이한 단계에서 데이터 변동폭에 근거하여 동적으로 양자화 파라미터를 조정함으로써 양자화 정밀도를 보장할 수 있다.
다른 상황에서, 프로세서는 점 위치 등 양자화 파라미터에 대응하는 점 위치 반복간격에 근거하여 목표반복간격 중의 양자화 파라미터를 확정하여 신경망 연산에서의 양자화 파라미터를 조정하도록 할 수 있다. 즉 당해 신경망 연산에서의 점 위치 등 양자화 파라미터는 데이터 비트폭과 비동기적으로 업데이트될 수 있고, 프로세서는 목표반복간격의 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 업데이트할 수 있으며, 프로세서는 점 위치 반복간격에 근거하여 목표반복간격 중 반복에 대응하는 점 위치를 개별적으로 업데이트할 수도 있다.
구체적으로는, 프로세서는 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 목표반복간격에 대응하는 데이터 비트폭을 확정할 수도 있다. 여기에서, 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 그 다음에는, 프로세서는 당해 목표반복간격에 대응하는 데이터 비트폭과 점 위치 반복간격에 근거하여 신경망 연산과정에서의 점 위치 등 양자화 파라미터를 조정할 수 있다. 즉 도8T에 도시된 바와 같이, 목표반복간격에 대응하는 데이터 비트폭을 확정한 다음에, 프로세서는 작업(S640)을 실행할 수도 있으며, 획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정하여 상기 신경망 연산에서의 점 위치를 조정하도록 한다. 여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하며, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치하다. 바람직하게는, 당해 점 위치 반복간격은 하이퍼 파라미터일 수 있다. 예를 들어, 당해 점 위치 반복간격은 사용자가 자체의 이해에 따라 입력한 것일 수 있다 .
바람직하게는, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다. 당해 점 위치 반복간격와 상술한 목표반복간격이 같은 경우, 프로세서는 현재 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 동기적으로 업데이트할 수 있다. 더 바람직하게는, 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치할 수 있다. 또한, 목표반복간격 중 반복에 대응하는 오프셋은 일치하다. 이 때, 당해 목표반복간격에서의 반복에 대응하는 데이터 비트폭과 점 위치 등 양자화 파라미터가 모두 같으므로 계산량을 삭감할 수 있어 양자화 효율과 연산효율을 향상시킬 수 있다. 구체적인 실현과정과 상술한 실시예는 기본적으로 일치하며, 위의 설명을 참조할 수 있어 여기에서 다시 언급하지 않는다.
점 위치 반복간격이 상술한 목표반복간격 미만인 경우, 프로세서는 목표반복간격에 대응하는 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 업데이트하고, 당해 점 위치 반복간격이 확정된 서브 검사 반복에서 점 위치 등 양자화 파라미터를 업데이트할 수 있다. 데이터 비트폭이 변하지 않는 경우, 점 위치 등 양자화 파라미터는 양자화 대상 데이터에 근거하여 미조정할 수 있다. 따라서, 동일한 목표반복간격 내에서 점 위치 등 양자화 파라미터를 조정하여 진일보로 양자화 정밀도를 향상시킬 수 있다.
구체적으로는, 프로세서는 현재 검사 반복과 점 위치 반복간격에 근거하여 서브 검사 반복을 확정할 수 있으며, 당해 서브 검사 반복은 점 위치을 조정하는 데 사용되고, 당해 서브 검사 반복은 목표반복간격 중의 반복일 수 있다. 또한, 프로세서는 서브 검사 반복의 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭에 근거하여 목표반복간격 중 반복에 대응하는 점 위치를 조정할 수 있다. 여기에서, 점 위치의 확정방식은 상술한 수학식을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
예를 들어, 현재 검사 반복이 제100회 반복이고, 당해 목표반복간격이 6이며, 당해 목표반복간격에 포함된 반복이 제100회 반복 내지 제105회 반복이다. 프로세서가 획득한 점 위치 반복간격이
Figure pat00545
=3인 경우, 현재 검사 반복부터 3회 반복을 간격으로 점 위치를 1회 조정할 수 있다. 구체적으로는, 프로세서는 제100회 반복을 상술한 서브 검사 반복으로 하고, 당해 제100회 반복에 대응하는 점 위치 s1을 계산하여 획득하며, 제100회 반복, 제101회 반복 및 제102회 반복에서 점 위치 s1을 공통으로 사용하여 양자화할 수 있다. 그 다음에는, 프로세서는 점 위치 반복간격
Figure pat00546
에 근거하여 제103회 반복을 상술한 서브 검사 반복으로 할 수 있고, 동시에 프로세서는 제103회 반복에 대응하는 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭 n에 근거하여 두 번째 점 위치 반복간격에 대응하는 점 위치 s2를 확정할 수 있으며, 제103회 반복 내지 제105회 반복에서 상술한 점 위치 s2를 공통으로 사용하여 양자화할 수 있다. 본 발명 실시예에서, 상술한 업데이트하기 전의 점 위치 s1과 업데이트 후의 점 위치 s2의 값은 같을 수도 다를 수도 있다. 또한, 프로세서는 제106회 반복에서 다시 양자화 대상 데이터의 데이터 변동폭에 근거하여 다음 목표반복간격 및 당해 다음 목표반복간격에 대응하는 데이터 비트폭 및 점 위치 등 양자화 파라미터를 확정할 수 있다 .
또한, 현재 검사 반복이 제100회 반복이고, 당해 목표반복간격이 6이며, 당해 목표반복간격에 포함된 반복이 제101회 반복 내지 제106회 반복이다. 프로세서가 획득한 점 위치 반복간격이
Figure pat00547
=3인 경우, 현재 검사 반복부터 3회 반복을 간격으로 점 위치를 1회 조정할 수 있다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 현재 검사 반복에 대응하는 목표데이터 비트폭 n1에 근거하여 첫 번째 점 위치 반복간격에 대응하는 점 위치가 s1임을 확정하면, 제101회 반복, 제102회 반복 및 제103회 반복에서 상술한 점 위치 s1을 공통으로 사용하여 양자화할 수 있다. 그 다음에는, 프로세서는 점 위치 반복간격
Figure pat00548
에 근거하여 제104회 반복을 상술한 서브 검사 반복으로 할 수 있고, 동시에 프로세서는 제104회 반복에 대응하는 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭 n1에 근거하여 두 번째 점 위치 반복간격에 대응하는 점 위치 s2를 확정할 수 있으며, 제104회 반복 내지 제106회 반복에서 상술한 점 위치 s2를 공통으로 사용하여 양자화할 수 있다. 본 발명 실시예에서, 상술한 업데이트하기 전의 점 위치 s1과 업데이트 후의 점 위치 s2의 값은 같을 수도 다를 수도 있다. 또한, 프로세서는 제106회 반복에서 다시 양자화 대상 데이터의 데이터 변동폭에 근거하여 다음 목표반복간격 및 당해 다음 목표반복간격에 대응하는 데이터 비트폭 및 점 위치 등 양자화 파라미터를 확정할 수 있다 .
바람직하게는, 당해 점 위치 반복간격은 1과 같을 수 있다. 즉 매번 반복에서 모두 점 위치를 1회 업데이트한다. 바람직하게는, 당해 점 위치 반복간격은 같을 수도 다를 수도 있다. 예를 들어, 당해 목표반복간격에 포함된 적어도 하나의 점 위치 반복간격은 순차적으로 증가될 수 있다. 여기에서는 예시적으로 본 실시예의 실현방식을 설명할 뿐이며, 본 발명을 한정하기 위한 것이 아니다.
바람직하게는, 당해 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치하지 않을 수도 있다. 더 바람직하게는, 당해 스케일 팩터는 상술한 점 위치와 동기적으로 업데이트될 수 있다. 즉, 당해 스케일 팩터에 대응하는 반복간격은 상술한 점 위치 반복간격과 같을 수 있다. 즉 프로세서가 점 위치를 업데이트하고 확정할 때마다, 대응적으로 스케일 팩터를 업데이트하고 확정한다.
바람직하게는, 당해 목표반복간격 중 반복에 대응하는 오프셋은 일치하지 않을 수도 있다. 또한, 당해 오프셋은 상술한 점 위치와 동기적으로 업데이트될 수 있다. 즉, 당해 오프셋에 대응하는 반복간격은 상술한 점 위치 반복간격과 같을 수 있다. 즉 프로세서가 점 위치를 업데이트하고 확정할 때마다, 이에 대응하여 오프셋을 업데이트하고 확정한다. 물론, 당해 오프셋은 상술한 점 위치 또는 데이터 비트폭과 비동기적으로 업데이트될 수도 있으며, 여기에서는 구체적으로 한정하지 않는다. 또한, 프로세서는 양자화 대상 데이터의 모든 요소 중 최소 값과 최대 값을 확정하고, 진일보로 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 상세에 대해서는 위의 설명을 참조할 수 있다.
다른 바람직한 실시예에서, 점 위치, 스케일 팩터 및 오프셋 3개의 양자화 파라미터 사이는 비동기적일 수도 있다. 즉 점 위치 반복간격, 스케일 팩터 반복간격 및 오프셋 반복간격 중의 하나 또는 3개 모두가 다르다. 여기에서, 점 위치 반복간격과 스케일 팩터 반복간격은 모두 목표반복간격 이하이다. 오프셋 반복간격은 목표반복간격보다 작을 수 있다. 오프셋이 양자화 대상 데이터의 분포에만 관련되기 때문에, 하나의 가능한 실시예에서, 당해 오프셋은 목표반복간격과 완전히 비동기적일 수도 있다. 즉 오프셋 반복간격은 목표반복간격보다 클 수도 있다.
하나의 바람직한 실시예에서, 상술한 방법은 신경망의 훈련 또는 미조정과정에 적용함으로써, 신경망의 미조정 또는 훈련과정에 관련된 연산 데이터의 양자화 파라미터에 대한 조정을 실현하고, 신경망 연산과정에 관련된 연산 데이터의 양자화 정밀도 및 효율을 향상시키도록 한다. 당해 연산 데이터는 뉴런 데이터, 가중치 데이터 또는 그래디언트 데이터 중의 적어도 한 가지이다. 도8L에 도시된 바와 같이, 양자화 대상 데이터의 데이터 변동곡선에 따라, 훈련 또는 미조정의 초기 단계에서, 각 반복의 양자화 대상 데이터 사이의 차이점이 비교적 크고, 양자화 대상 데이터의 데이터 변동폭이 비교적 심하므로, 이 때 목표반복간격의 값을 작게 할 수 있고, 수시로 목표반복간격 중의 양자화 파라미터를 업데이트하여 양자화 정밀도를 보장할 수 있음을 알 수 있다. 훈련 또는 미조정의 중기 단계에서, 양자화 대상 데이터의 데이터 변동폭은 점차 완만해 지는 경향이 있고, 이 때에는 목표반복간격의 값을 증가하여 양자화 파라미터를 빈번하게 업데이트하는 것을 회피하며, 양자화 효율 및 연산효율을 향상하도록 한다. 훈련 또는 미조정의 후기 단계에서, 이 때에는 신경망의 훈련 또는 미조정이 안정해 지는 경향이 있다(즉 신경망의 순방향 연산결과가 미리 설정된 기준 값에 근접하면 당해 신경망의 훈련 또는 미조정이 안정되는 경향이 있다). 이 때에는 목표반복간격의 값을 계속 증가하여 진일보로 양자화 효율 및 연산효율을 향상시킬 수 있다. 상술한 데이터 변동추세에 따라, 신경망의 훈련 또는 미조정의 서로 다른 단계에서 서로 다른 방식을 채용하여 목표반복간격을 확정함으로써, 양자화 정밀도의 보장을 기반으로 양자화 효율 및 연산효율을 향상시킬 수 있다.
구체적으로는, 도8U에 도시된 바와 같이, 본 발명의 또 다른 실시예의 양자화 파라미터 조정방법(800U)의 흐름도를 도시한다. 당해 방법은 신경망의 훈련 또는 미조정과정에 적용되는 경우, 당해 방법은 다음과 같은 단계를 포함할 수 있다.
S710, 프로세서는 현재 반복이 제1 미리 설정된 반복보다 클지 여부를 확정한다.
여기에서, 현재 반복은 프로세서가 현재 실행하고 있는 반복연산을 의미한다. 바람직하게는, 당해 제1 미리 설정된 반복은 하이퍼 파라미터일 수 있고, 당해 제1 미리 설정된 반복은 양자화 대상 데이터의 데이터 변동곡선에 의해 확정할 수 있으며, 당해 제1 미리 설정된 반복은 사용자가 자신의 이해에 따라 설정한 것일 수도 있다. 바람직하게는, 당해 제1 미리 설정된 반복은 한 훈련주기(epoch)에 포함된 총반복회수보다 작을 수 있다. 여기에서, 한 훈련주기는 데이터 세트 중의 모든 양자화 대상 데이터가 모두 1회 순방향 연산과 1회 역방향 연산을 완료한 것을 의미한다.
상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 프로세서는 작업(S711)을 실행할 수 있으며, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 양자화 파라미터를 조정한다.
바람직하게는, 프로세서는 사용자가 입력한 제1 미리 설정된 반복을 판도하고, 당해 제1 미리 설정된 반복과 제1 미리 설정된 반복간격의 대응관계에 근거하여, 제1 미리 설정된 반복간격을 확정할 수 있다. 바람직하게는, 당해 제1 미리 설정된 반복간격은 하이퍼 파라미터일 수 있고, 당해 제1 미리 설정된 반복간격은 사용자가 자신의 이해에 따라 설정한 것일 수도 있다. 이 때, 프로세서는 사용자가 입력한 제1 미리 설정된 반복과 제1 미리 설정된 반복간격을 직접 판독하고, 당해 제1 미리 설정된 반복간격에 근거하여 신경망 연산에서의 양자화 파라미터를 업데이트할 수 있다. 본 발명 실시예에서, 프로세서는 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 필요가 없다.
예를 들어, 사용자가 입력한 제1 미리 설정된 반복이 제100회 반복이고, 제1 미리 설정된 반복간격이 5이면, 현재 반복이 제100회 반복 이하인 경우, 제1 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 프로세서는 신경망의 훈련 또는 미조정의 제1회 반복 내지 제100회 반복을 확정할 수 있고, 매번 5회 반복을 간격으로 양자화 파라미터를 1회 업데이트할 수 있다. 구체적으로는, 프로세서는 제1회 반복에 대응하는 데이터 비트폭 n1 및 점 위치 s1 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n1과 점 위치 s1 등 양자화 파라미터를 채용하여 제1회 반복 내지 제5회 반복의 양자화 대상 데이터를 양자화할 수 있다. 즉 제1회 반복 내지 제5회 반복에서 동일한 양자화 파라미터를 채용할 수 있다. 그 다음에는, 프로세서는 제6회 반복에 대응하는 데이터 비트폭 n2 및 점 위치 s2 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n2와 점 위치 s2 등 양자화 파라미터를 채용하여 제6회 반복 내지 제10회 반복의 양자화 대상 데이터를 양자화할 수 있다. 즉 제6회 반복 내지 제10회 반복은 동일한 양자화 파라미터를 채용할 수 있다. 마찬가지로, 프로세서는 제100회 반복이 완료될 때까지 상술한 양자화 방식에 따를 수 있다. 여기에서, 각 반복간격 중 데이터 비트폭 및 점 위치 등 양자화 파라미터의 확정방식은 위의 설명을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
또한, 사용자가 입력한 제1 미리 설정된 반복이 제100회 반복이고, 제1 미리 설정된 반복간격이 1이며, 현재 반복이 제100회 반복 이하인 경우, 제1 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 프로세서는 신경망의 훈련 또는 미조정의 제1회 반복 내지 제100회 반복을 확정할 수 있고, 매번 반복에서 모두 양자화 파라미터를 업데이트한다. 구체적으로는, 프로세서는 제1회 반복에 대응하는 데이터 비트폭 n1 및 점 위치 s1 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n1과 점 위치 s1 등 양자화 파라미터를 채용하여 제1회 반복의 양자화 대상 데이터를 양자화할 수 있다. 그 다음에는, 프로세서는 제2회 반복에 대응하는 데이터 비트폭 n2 및 점 위치 s2 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n2와 점 위치 s2 등 양자화 파라미터를 채용하여 제2회 반복의 양자화 대상 데이터를 양자화, ……할 수 있다. 마찬가지로, 프로세서는 제100회 반복의 데이터 비트폭 n100 및 점 위치 s100 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n100과 점 위치 s100 등 양자화 파라미터를 채용하여 제100회 반복의 양자화 대상 데이터를 양자화할 수 있다. 여기에서, 각 반복간격 중 데이터 비트폭 및 점 위치 등 양자화 파라미터의 확정방식은 위의 설명을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
상기에서는 데이터 비트폭과 양자화 파라미터가 동기적으로 업데이트되는 방식을 예로 설명하였지만, 다른 바람직한 실시예에서는, 각 목표반복간격에서, 프로세서는 점 위치의 변동폭에 근거하여 점 위치의 반복간격을 확정하고, 당해 점 위치 반복간격에 근거하여 점 위치 등 양자화 파라미터를 업데이트할 수 있다.
바람직하게는, 현재 반복이 제1 미리 설정된 반복보다 큰 경우, 신경망의 훈련 또는 미조정이 중기 단계인 것을 나타낸다. 이 때 이력 반복의 양자화 대상 데이터의 데이터 변동폭을 획득하고, 당해 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 수 있으며, 당해 목표반복간격은 상술한 제1 미리 설정된 반복간격보다 클 수 있으므로 양자화 파라미터의 업데이트 회수를 감소하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 구체적으로는, 상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 프로세서는 작업(S713)을 실행할 수 있으며, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하고 상기 목표반복간격에 근거하여 양자화 파라미터를 조정한다.
위의 예에 계속하여, 사용자가 입력한 제1 미리 설정된 반복이 제100회 반복이고, 제1 미리 설정된 반복간격이 1이며, 현재 반복이 제100회 반복 이하인 경우, 제1 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 프로세서는 신경망의 훈련 또는 미조정의 제1회 반복 내지 제100회 반복을 확정할 수 있고, 매번 반복에서 모두 양자화 파라미터를 업데이트하며, 구체적 실현방식은 위의 설명을 참조할 수 있다. 현재 반복이 제100회 반복보다 큰 경우, 프로세서는 현재 반복의 양자화 대상 데이터 및 그 전의 이력 반복의 양자화 대상 데이터에 근거하여 양자화 대상 데이터의 데이터 변동폭을 확정하고, 당해 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 수 있다. 구체적으로는, 현재 반복이 제100회 반복보다 큰 경우, 프로세서는 현재 반복에 대응하는 데이터 비트폭을 자기 적응적으로 조정하여 당해 현재 반복에 대응하는 목표데이터 비트폭을 획득하고, 당해 현재 반복에 대응하는 목표데이터 비트폭을 목표반복간격의 데이터 비트폭으로 할 수 있다. 여기에서, 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 동시에, 프로세서는 현재 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 근거하여 현재 반복에 대응하는 점 위치를 확정하고, 현재 반복에 대응하는 점 위치에 근거하여 제1 오차를 확정할 수 있다. 프로세서는 현재 반복에 대응하는 양자화 대상 데이터에 근거하여 양자화 오차를 확정하고, 양자화 오차에 근거하여 제2 오차를 확정할 수 있다. 그 다음에는, 프로세서는 제1 오차와 제2 오차에 근거하여 목표반복간격을 확정할 수 있고, 당해 목표반복간격은 상술한 제1 미리 설정된 반복간격보다 클 수 있다. 또한, 프로세서는 목표반복간격 중의 점 위치 또는 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 구체적 확정방식은 위의 설명을 참조할 수 있다.
예를 들어, 현재 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제100회 반복, 제101회 반복 및 제102회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 프로세서는 제100회 반복의 양자화 대상 데이터에 근거하여 양자화 오차를 확정하고, 양자화 오차에 근거하여 제2 오차와 제100회 반복에 대응하는 목표데이터 비트폭을 확정하며, 당해 목표데이터 비트폭을 목표반복간격에 대응하는 데이터 비트폭으로 할 수 있다. 여기에서, 제100회 반복, 제101회 반복 및 제102회 반복에 대응하는 데이터 비트폭은 모두 당해 제100회 반복에 대응하는 목표데이터 비트폭이다. 프로세서는 당해 제100회 반복의 양자화 대상 데이터와 당해 제100회 반복에 대응하는 목표데이터 비트폭에 근거하여 당해 제100회 반복에 대응하는 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수도 있다. 그 다음에는, 당해 제100회 반복에 대응하는 양자화 파라미터를 채용하여 제100회 반복, 제101회 반복 및 제102회 반복을 양자화한다.
또한, 도8V에 도시된 바와 같이, 본 발명의 또 하나의 실시예의 양자화 파라미터 조정방법(800V)의 흐름도를 도시한다. 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
현재 반복이 제1 미리 설정된 반복보다 큰 경우, 프로세서는 작업(S712)을 실행할 수도 있다. 즉 프로세서는 현재 반복이 제2 미리 설정된 반복보다 큰지 여부를 더 확정할 수 있다. 여기에서, 상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 크다. 바람직하게는, 상술한 제2 미리 설정된 반복은 하이퍼 파라미터일 수 있고, 제2 미리 설정된 반복은 적어도 하나의 훈련주기의 총반복수보다도 클 수 있다. 바람직하게는, 제2 미리 설정된 반복은 양자화 대상 데이터의 데이터 변동곡선에 따라 확정할 수 있다. 바람직하게는, 제2 미리 설정된 반복은 사용자가 자신의 이해에 따라 설정한 것일 수도 있다.
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 프로세서는 작업(S714)을 실행할 수 있으며, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 신경망양자화 과정 중의 파라미터를 조정한다. 현재 반복이 제1 미리 설정된 반복보다 크고, 또 현재 반복이 제2 미리 설정된 반복보다 작은 경우, 프로세서는 상술한 작업(S713)을 실행할 수 있으며, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하고 상기 목표반복간격에 근거하여 양자화 파라미터를 조정한다.
바람직하게는, 프로세서는 사용자가 설정한 제2 미리 설정된 반복을 판독하고, 제2 미리 설정된 반복과 제2 미리 설정된 반복간격의 대응관계에 근거하여 제2 미리 설정된 반복간격을 확정할 수 있으며, 당해 제2 미리 설정된 반복간격은 제1 미리 설정된 반복간격보다 크다. 바람직하게는, 상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면, 상기 현재 반복이 제2 미리 설정된 반복 이상이라고 확정한다. 예를 들어, 현재 반복의 순방향 연산결과가 미리 설정된 기준 값에 근접했을 경우, 당해 신경망의 수렴정도가 미리 설정된 조건을 충족시킨다고 확정할 수 있다. 이 때 현재 반복이 제2 미리 설정된 반복 이상이라고 확정할 수 있다. 또는, 현재 반복에 대응하는 손실 값이 미리 설정된 한계 값 이하인 경우, 당해 신경망의 수렴정도가 미리 설정된 조건을 충족시킨다고 확정할 수 있다.
바람직하게는, 상술한 제2 미리 설정된 반복간격은 하이퍼 파라미터일 수 있고, 당해 제2 미리 설정된 반복간격은 적어도 한 훈련주기의 총반복수 이상일 수 있다. 바람직하게는, 당해 제2 미리 설정된 반복간격은 사용자가 자신의 이해에 따라 설정한 것일 수 있다. 프로세서는 사용자가 입력한 제2 미리 설정된 반복과 제2 미리 설정된 반복간격을 직접 판독하고, 당해 제2 미리 설정된 반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 업데이트할 수 있다. 예를 들어, 당해 제2 미리 설정된 반복간격은 한 훈련주기의 총반복수와 같을 수 있다. 즉 각 훈련주기(epoch)에서 양자화 파라미터를 1회 업데이트한다.
또한, 상술한 방법은 다음과 같은 단계를 더 포함한다.
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 프로세서는 매번 검사 반복에서 현재 데이터 비트폭을 조정할 필요가 있는지 여부를 확정할 수도 있다. 현재 데이터 비트폭을 조정할 필요가 있으면, 프로세서는 상술한 작업(S714)에서 작업(S713)으로 전환하여 데이터 비트폭을 다시 확정하며, 데이터 비트폭이 양자화 대상 데이터의 요구사항을 충족시키도록 할 수 있다.
구체적으로는, 프로세서는 상술한 제2 오차에 근거하여 데이터 비트폭을 조정할 필요가 있는지 여부를 확정할 수 있다. 프로세서는 상술한 작업(S715)을 실행할 수 있으며, 제2 오차가 미리 설정된 오차 값보다 큰지 여부를 확정한다. 상기 현재 반복이 제2 미리 설정된 반복 이상이고, 또 상기 제2 오차가 미리 설정된 오차 값보다 큰 경우, 작업(S713)으로 전환하여 실행하며, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 한다. 현재 반복이 제2 미리 설정된 반복 이상이고, 또 제2 오차가 미리 설정된 오차 값 이하이면, 작업(S714)을 계속하여 실행하며, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 신경망양자화 과정 중의 파라미터를 조정한다. 여기에서, 미리 설정된 오차 값은 양자화 오차에 대응하는 미리 설정된 한계 값에 근거하여 확정될 수 있다. 제2 오차가 미리 설정된 오차 값보다 클 경우, 이 때 데이터 비트폭은 진일보로 조정할 필요가 있으며, 프로세서는 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하고, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 할 수 있다.
예를 들어, 제2 미리 설정된 반복간격은 한 훈련주기의 총반복수이다. 현재 반복이 제2 미리 설정된 반복 이상인 경우, 프로세서는 제2 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 각 훈련주기(epoch)에서 양자화 파라미터를 1회 업데이트한다. 이 때, 각 훈련주기의 처음 반복은 하나의 검사 반복으로서, 각 훈련주기의 처음 반복에서, 프로세서는 당해 검사 반복의 양자화 대상 데이터에 근거하여 양자화 오차를 확정할 수 있으며, 양자화 오차에 근거하여 제2 오차를 확정하고, 다음과 같은 수학식에 따라 제2 오차가 미리 설정된 오차 값보다 큰지 여부를 확정한다.
Figure pat00549
여기에서,
Figure pat00550
는 제2 오차이고,
Figure pat00551
는 양자화 오차이며,
Figure pat00552
는 하이퍼 파라미터이고,
Figure pat00553
는 미리 설정된 오차 값이다. 바람직하게는, 당해 미리 설정된 오차 값은 제1 미리 설정된 한계 값을 하이퍼 파라미터로 나눈 것과 같다. 물론, 당해 미리 설정된 오차 값은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 미리 설정된 오차 값은 다음과 같은 수학식
Figure pat00554
=th/10 따라 계산하여 획득할 수 있다. 여기에서, th는 제1 미리 설정된 한계 값이고, 하이퍼 파라미터의 값은 10이다.
제2 오차
Figure pat00555
가 미리 설정된 오차 값
Figure pat00556
보다 크면, 데이터 비트폭이 가능하게 미리 설정된 요구사항을 충족시킬 수 없다는 것을 설명한다. 이 때, 제2 미리 설정된 반복간격을 채용하여 양자화 파라미터를 업데이트하지 않아도 되며, 프로세서는 양자화 대상 데이터의 데이터 변동폭에 따라 목표반복간격을 확정하여 데이터 비트폭이 미리 설정되 요구사항을 충족시키도록 보장할 수 있다. 즉 제2 오차
Figure pat00557
가 미리 설정된 오차 값
Figure pat00558
보다 큰 경우, 프로세서는 상술한 작업(S714)에서 상술한 작업(S713)으로 전환한다.
물론, 다른 실시예에서, 프로세서는 상술한 양자화 오차에 근거하여 데이터 비트폭을 조정할 필요가 있는지 여부를 확정할 수 있다. 예를 들어, 제2 미리 설정된 반복간격은 한 훈련주기의 총반복수이다. 현재 반복이 제2 미리 설정된 반복 이상인 경우, 프로세서는 제2 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 각 훈련주기(epoch)에서 양자화 파라미터를 1회 업데이트한다. 여기에서, 각 훈련주기의 처음 반복은 하나의 검사 반복으로서, 각 훈련주기의 처음 반복에서, 프로세서는 당해 검사 반복의 양자화 대상 데이터에 근거하여 양자화 오차를 확정할 수 있으며, 당해 양자화 오차가 제1 미리 설정된 한계 값 이상인 경우, 데이터 비트폭이 가능하게 미리 설정된 요구사항을 충족시킬 수 없다는 것을 설명한다. 즉 프로세서는 상술한 작업(S714)에서 상술한 작업(S713)으로 전환한다.
하나의 바람직한 실시예에서, 상술한 점 위치, 스케일 팩터 및 오프셋 등 양자화 파라미터는 표시장치를 통해 표시될 수 있다. 이 때, 사용자는 표시장치를 통해 신경망 연산과정에서의 양자화 파라미터를 알 수 있으며, 사용자는 지기 적응적으로 프로세서가 확정한 양자화 파라미터를 수정할 수도 있다. 마찬가지로, 상술한 데이터 비트폭과 목표반복간격 등도 표시장치를 통해 표시될 수 있다. 이 때, 사용자는 표시장치를 통해 신경망 연산과정에서의 목표반복간격과 데이터 비트폭 등 파라미터를 알 수 있고, 또한 사용자는 자기 적응적으로 프로세서가 확정한 목표반복간격과 데이터 비트폭 등 파라미터를 수정할 수도 있다.
설명할 필요가 있는 것은, 상술한 데이터 비트폭의 목표반복간격과 양자화 파라미터의 목표반복간격을 확정하는 것은 모두 예로서 모든 상황이 아니라 일부 상황만 열거할 뿐이며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명 기술방안의 본질을 이해한 뒤에 본 발명의 기술방안을 기반으로 다른 변형 또는 변환을 이룰 수 있다. 예를 들어, 데이터 비트폭의 목표반복간격을 확정하는 동안에 또 양자화 파라미터의 목표반복간격을 확정하는 것도 도6, 도7 및 도8A에 도시된 기술방안에 적용된ㄷ. 그러나, 그 실현된 기능 및 달성한 기술적 효과가 본 발명과 유사하면, 모두 본 발명의 보호범위에 속하는 것이다.
본 기술방안을 이용하여 양자화 파라미터를 확정하고, 양자화 오차에 근거하여 데이터 비트폭 또는 양자화 파라미터를 조정하며, 데이터 비트폭 또는 양자화 파라미터에 대해 조정할지 여부의 목표반복간격을 확정하였고, 신경망 연산과정에서 적절한 시점에서 데이터 비트폭 또는 양자화 파라미터에 대한 조정을 달성하여, 적절한 반복시점에서 적절한 양자화 파라미터를 사용하게 하며, 인공지능 프로세서 칩이 신경망 연산을 실행하는 속도를 고정 소수점 연산의 속도에 달하게 하고, 인공지능 프로세서 칩의 피크 연산력을 향상시킴과 동시에 연산에 필요한 부동 소수점 연산의 정밀도를 충족시킨다.
설명할 필요가 있는 것은, 상술한 각 방법 실시예에 대하여, 설명의 편의를 위해, 이들을 동작의 일련 조합으로서 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명은 설명된 동작의 순서에 의해 한정되지 않는다는 것을 인식해야 한다. 본 발명에 따르면, 특정 단계는 다른 순서를 채용하거나 동시에 수행할 수 있기 때문이다. 따라서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 명세서에서 설명된 실시예는 모두 선택할 수 있는 실시예에 속하며, 관련되는 동작과 모듈은 반드시 본 발명에 필수적인 것이 아니라는 것도 인식해야 한다 .
진일보로 설명할 필요가 있는 것은, 도2, 도6, 도7, 도8A 내지 도8V의 흐름도 중의 각 단계는 화살표의 지시에 따라 순서대로 표시하고 있지만, 이들 단계는 반드시 화살표로 지시한 순서대로 순차적으로 실행되는 것이 아니다. 이 명세서에서 명시적으로 기재되지 않는 한, 이들 단계의 실행에는 엄밀한 순서제한이 없고, 이들 단계는 다른 순서로 실행될 수 있다. 그리고, 도2, 도6, 도7, 도8A 내지 도8V중의 적어도 일부 단계는 복수의 서브 단계 또는복수의 공정을 포함하며, 이들 서브 단계 또는공정은 반드시 동일한 시점으로 실행완료하는 것이 아니라, 다른 시점으로 실행되어도 좋다. 또한 이들 서브 단계 또는 공정의 실행순서도 반드시 순서대로 진행하는 것이 아니라, 다른 단계 또는 다른 단계의 서브 단계 또는 공정의 적어도 일부와 번갈아 또는 교대로 실행할 수 있다.
도9에 도시된 바와 같이, 본 발명에 제안된 신경망의 양자화 파라미터 확정장치의 하드웨어 구성의 블록도이다. 도9에서, 신경망의 양자화 파라미터 확정장치(10)는 프로세서(110)와 메모리(120)를 포함한다. 도9의 신경망의 양자화 파라미터 확정장치(10)에는 본 실시예와 관련된 구성요소만 도시되어 있다. 따라서, 신경망의 양자화 파라미터 확정장치(10)가 도10에 도시된 구성요소와 다른 공통의 구성요소를 더 포함할 수 있다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라에게 자명할 것이다. 예를 들어, 고정 소수점 연산기 등.
신경망의 양자화 파라미터 확정장치(10)는 각종 처리기능을 갖는 계산기기, 예를 들어, 신경망의 생성, 신경망의 훈련 또는 학습, 부동 소수점형 신경망의 고정 소수점형 신경망에의 양자화, 또는 신경망의 재훈련 등 기능에 대응될 수 있다. 예를 들어, 신경망의 양자화 파라미터 확정장치(10)는 각종 유형의 기기, 예를 들어 개인용 컴퓨터(PC), 서버 기기, 모바일 기기 등으로서 실현될 수 있다.
프로세서(110)는 신경망의 양자화 파라미터 확정장치(10)의 모든 기능을 제어한다. 예를 들어, 프로세서(110)는 신경망의 양자화 파라미터 확정장치(10)의 메모리(120)에 저장된 프로그램을 실행함으로써, 신경망의 양자화 파라미터 확정장치(10)의 모든 기능을 제어한다. 프로세서(110)는 신경망의 양자화 파라미터 확정장치(10)에서 제공되는 중앙처리장치(CPU), 그래픽 처리장치(GPU), 애플리케이션 프로세서(AP), 인공지능 프로세서 칩(IPU)등에 의해 실현될 수 있다. 그러나, 본 발명은 이에 한정되지 않는다.
메모리(120)는 신경망의 양자화 파라미터 확정장치(10)에서 처리되는 각종 데이터를 저장하기 위한 하드웨어이다. 예를 들어, 메모리(120)는 신경망의 양자화 파라미터 확정장치(10)에서 처리된 데이터 및 처리될 데이터을 저장할 수 있다. 메모리(120)는 프로세서(110)가 이미 처리한 또는 처리하려는 신경망 연산과정에 관련된 데이터 세트, 예를 들어, 미훈련된 초기 신경망의 데이터, 훈련과정에서 생성된 신경망의 중간 데이터, 모든 훈련이 완료된 신경망의 데이터, 양자화된 신경망의 데이터 등을 저장할 수 있다. 또한, 메모리(120)는 신경망의 양자화 파라미터 확정장치(10)에 의해 구동될 애플리케이션, 드라이버 프로그램 등을 저장할 수 있다. 예를 들어, 메모리(120)는 프로세서(110)에 의해 실행될 신경망의 훈련 알고리즘, 양자화 알고리즘 등에 관련된 각종 프로그램을 저장할 수 있다. 메모리(120)는 DRAM일 수 있지만, 본 발명은 이에 한정되지 않는다. 메모리(120)는 휘발성 메모리 또는 비 휘발성 메모리 중의 적어도 한 가지이다. 비 휘발성 메모리는 읽기 전용 메모리(ROM), 프로그래밍 가능 ROM(PROM), 전기적 프로그래밍 가능 ROM(EPROM), 전기적 소거 가능 프로그래밍 가능 ROM(EEPROM), 플래시 메모리, 상 변화 RAM(PRAM), 자기 RAM(MRAM), 저항 RAM(RRAM), 강유전성 RAM (FRAM) 등을 포함할 수 있다. 휘발성 메모리는 다이나믹 RAM(DRAM), 스태틱 RAM(SRAM), 동기식 DRAM(SDRAM), PRAM, MRAM, RRAM, 강유전성 RAM(FeRAM) 등을 포함할 수 있다. 실시예에서는, 메모리(120)는 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브 (SSD), 고밀도 플래시 메모리 (CF), 보안 디지털 (SD) 카드, 마이크로 보안 디지털 (Micro-SD) 카드, 미니 보안 디지털 (Mini -SD) 카드, 제한 디지털 (xD) 카드, 캐쉬(caches) 또는 메모리 스틱 중 적어도 하나를 포함할 수 있다.
프로세서(110)는 주어진 초기 신경망을 반복적으로 훈련(학습)하여 훈련된 신경망을 생성할 수 있다. 이 상태에서, 신경망의 처리 정확도를 보장한다는 의미에서 초기 신경망의 파라미터는 고정밀도 데이터 표현형식, 예를 들어 32비트 부동 소수점 정밀도를 가진 데이터 표현형식이다. 파라미터는 신경망에(부터) 입력(출력)하는 각종 유형의 데이터, 예를 들어, 신경망의 입력/출력뉴런, 가중치, 바이어스 등을 포함할 수 있다. 고정 소수점 연산과 비교하면, 부동 소수점 연산과정에서는 상대적으로 대량의 연산과 상대적으로 빈번한 메모리 액세스가 필요하다. 구체적으로는, 신경망 처리에 필요한 대부분 연산은 다양한 컨볼루션 연산인 것이 알려져 있다. 따라서, 처리성능이 상대적으로 낮은 모바일 기기(스마트 폰, 태블릿, 웨어러블 디바이스 등, 임베디드 디바이스 등 )에서, 신경망의 고정밀도 데이터 연산은 모바일 기기의 리소스가 충분히 활용되지 않게 한다. 결과적으로, 허용되는 정밀도 손실범위 내에서 신경망 연산을 구동하고, 상술한 기기에서의 연산량을 충분히 감소하기 위해, 신경망 연산과정에 관련된 고정밀도 데이터를 양자화하여 저정밀도의 고정 소수점 수로 변환할 수 있다.
신경망을 전개하는 예를 들어 모바일 기기, 임베디드 디바이스 등 기기의 처리성능을 고려하면, 신경망의 양자화 파라미터 확정장치(10)는 훈련된 신경망의 파라미터를 특정 비트수를 가진 고정 소수점형으로 변환하는 양자화를 실행하며, 또한 신경망의 양자화 파라미터 확정장치(10)는 신경망을 전개하는 기기에 대응하는 양자화 파라미터를 송신하여, 인공지능 프로세서 칩이 훈련, 미조정 등 연산작업을 실행할 때에 고정 소수점 수 연산 작업을 실행하도록 한다. 신경망을 전개하는 기기는 신경망을 사용하여 음성식별, 화상식별 등을 실행하는 자율 차량, 로봇, 스마트 폰, 태블릿 기기, 증강현실(AR) 기기, 사물 인터넷(IoT) 기기 등일 수 있지만, 본 발명은 이에 한정되지 않는다.
프로세서(110)는 메모리(120)부터 신경망 연산과정에서의 데이터를 획득한다. 당해 데이터는 뉴런, 가중치, 바이어스 및 그래디언트 중의 적어도 한 가지 데이터를 포함하며, 도2에 도시된 기술방안을 이용하여 대응하는 양자화 파라미터를 확정하고, 양자화 파라미터를 이용하여 신경망 연산과정에서의 목표데이터를 양자화한다. 양자화 후의 데이터로 신경망 연산작업을 실행한다. 당해 연산작업은 훈련, 미조정, 추론을 포함하지만, 이에 한정되지 않는다.
프로세서(110)는 양자화 오차
Figure pat00559
에 근거하여 데이터 비트폭 n을 조정하며, 또 프로세서(110)는 도6, 도7 및 도8에 도시된 목표반복간격의 방법의 프로그램을 실행하여 데이터 비트폭의 목표반복간격 또는 양자화 파라미터의 목표반복간격을 확정할 수 있다.
이상과 같이, 본 명세서 실시예에 의해 제공되는 신경망의 양자화 파라미터 확정장치에서, 메모리(120)와 프로세서(110)에 의해 실현되는 구체적 기능은, 본 명세서의 전술한 실시예와 비교하여 설명될 수 있으며, 전술항 실시예의 기술적 효과를 달성할 수 있으므로, 여기에서는 다시 언급하지 않는다.
본 실시예에서, 상기 프로세서(110)는 임의의 적절한 방식으로 실현될 수 있다. 예를 들어, 상기 프로세서(110)는, 예를 들어, 마이크로 프로세서 또는 프로세서 및 당해 (마이크로)프로세서에 의해 실행 가능한 컴퓨터 판독 가능 프로그램 코드(예를 들어 소프트웨어 또는 펌웨어)가 저장된 컴퓨터 판독 가능 매체, 로직 게이트, 스위치, 특정용도용 직접회로(Application Specific Integrated Circuit, ASIC), 프로그램 가능 로직 제어기 및 임베디드 마이크로 컨트롤러 등 형식을 채용할 수 있다.
도10에 도시된 바와 같이, 본 발명에 제안된 신경망의 양자화 파라미터 확정장치를 인공지능 프로세서 칩에 적용한 응용 모식도이다. 도10을 참조하면, 상술한 바와 같이, PC, 서버 등 신경망의 양자화 파라미터 확정장치(10)에서, 프로세서(110)가 양자화 작업을 실행하여 신경망 연산과정에서에 관련된 부동 소수점 데이터를 고정 소수점 수로 양자화하고, 인공지능 프로세서 칩의 고정 소수점 연산기가 양자화하여 획득한 고정 소수점 수를 채용하여 훈련, 미조정 또는 추론을 실행한다. 인공지능 프로세서 칩은 신경망을 구동하기 위한 전용 하드웨어이다. 인공지능 프로세서 칩은 상대적으로 낮은 전력 또는 성능으로 실현되므로, 본 기술방안을 이용하여 저정밀도의 고정 소수점 수로 신경망 연산을 실현하는 것은, 고정밀도 데이터에 비해, 저정밀도의 고정 소수점 수를 판독하는 데 필요한 메모리 대역폭이 더 작으며, 인공지능 프로세서 칩의 캐쉬(caches)를 더 잘 사용할 수 있고, 액세스 병목현상을 회피할 수 있다. 동시에, 인공지능 프로세서 칩에서 SIMD 명령을 실행할 때, 한 클록 주기에서 더 많은 계산을 실현하여, 더 빠르게 신경망 연산작업을 실행할 수 있다.
또한, 같은 길이의 고정 소수점 연산과 고정밀도 데이터 연산, 특히 고정 소수점 연산과 부동 소수점 연산 간의 비교에서 알 수 있는 바와 같이, 부동 소수점 연산의 계산모드가 더 복잡하고, 더 많은 논리 디바이스로 부동 소수점 연산기를 구성한다. 이러한 방식으로 부피적으로는, 부동 소수점 연산기의 부피는 고정 소수점 연산기의 부피보다 크다. 또한, 부동 소수점 연산기는 처리를 위해 보다 많은 리소스를 소비해야 하며, 고정 소수점 연산과 부동 소수점 연산 사이의 소비전력 격차가 일반적으로 수십 배가 된다.
이상과 같이, 본 기술방안은 인공지능 프로세서 칩 상의 부동 소수점 연산기를 고정 소수점 연산기에 교환할 수 있으므로, 인공지능 프로세서 칩의 소비전력을 낮게 할 수 있다. 이것은 모바일 기기에 있어서 특히 중요하다. 즉, 본 기술방안은 부동 소수점 계산 코드를 효율적으로 실행할 수 없는 수많은 임베디드 시스템에 대한 문을 열어 사물 인터넷 세계의 광범위한 응용을 가능하게 한다.
본 기술방안에서, 인공지능 프로세서 칩은, 예를 들어, 신경처리유닛(NPU), 덴소루 처리유닛(TPU), 뉴라루 엔진 등에 대응할 수 있으며, 이들은 신경망을 구동하기 위한 전용 칩이지만, 본 발명은 이에 한정되지 않는다.
본 기술방안에서, 인공지능 프로세서 칩은 신경망의 양자화 파라미터 확정장치(10)와 독립적인 별도의 기기에서 실현될 수 있고, 신경망의 양자화 파라미터 확정장치(10)는 인공지능 프로세서 칩의 일부 기능모듈로 실현할 수 있다. 그러나 본 발명은 이에 한정되지 않는다.
본 기술방안에서, 범용 프로세서(예를 들어 CPU)의 운영체제은 본 기술방안을 기반으로 명령을 생성하고, 생성된 명령을 인공지능 프로세서 칩(예를 들어 GPU)에 송신하며, 인공지능 프로세서 칩이 명령을 실행하여 신경망의 양자화 파라미터의 확정 및 양자화 과정을 실현한다. 다른 한 응용에서, 범용 프로세서는 본 기술방안을 기반으로 대응하는 양자화 파라미터를 직접 확정하고, 범용 프로세서가 직접 양자화 파라미터에 근거하여 대응하는 목표데이터를 양자화하며, 인공지능 프로세서 칩이 양자화 후의 데이터를 이용하여 고정 소수점 연산 작업을 실행한다. 또한, 범용 프로세서(예를 들어 CPU)와 인공지능 프로세서 칩(예를 들어 GPU)이 유선형 작업을 하며, 범용 프로세서(예를 들어CPU)의 운영체제가 본 기술방안을 기반으로 명령을 생성하고, 또 목표데이터를 복사함과 동시에 인공지능 프로세서 칩(예를 들어GPU)이 신경망 연산작업을 수행한다. 이러한 방식으로 일정한 시간소비를 은폐할 수 있다. 그러나 본 발명은 이에 한정되지 않는다.
본 실시예에서, 본 발명 실시예는 컴퓨터 프로그램이 저장된 판독 가능한 저장매체도 제공하며, 상기 컴퓨터 프로그램은 실행될 때 상술한 신경망의 양자화 파라미터 확정방법을 실현한다.
이상에서 불 수 있듯이, 신경망 연산과정에서, 양자화할 때 본 발명의 기술방안을 이용하여 양자화 파라미터를 확정하고, 당해 양자화 파라미터는 인공지능 프로세서가 신경망 연산과정에서 데이터를 양자화하는 데 사용되며, 고정밀도 데이터를 저정밀도 고정 소수점 수로 변환하면, 신경망 연산과정에 관련된 데이터의 모든 저장공간의 크기를 감소할 수 있다. 예를 들어, float32를 fix8로 변환하면 모델 파라미터를 4배 감소할 수 있다. 데이터 저장공간이 작아지므로, 신경망 전개시에 보다 작은 공간을 사용하게 되며, 인공지능 프로세서 칩 상의 온 칩 메모리가 보다 많은 데이터를 수용할 수 있고, 인공지능 프로세서 칩의 데이터 액세스를 감소하였으며, 계산성능을 향상시킨다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 순수한 컴퓨터 판독 가능 프로그램 코드방식으로 클라이언트 및 서버를 실현하는 것 외에도, 완전히 방법단계를 논리적으로 프로그램함느로써 클라이언트 및 서버가 로직 게이트, 스위치, 특정용도용 직접회로, 프로그램 가능 로직 제어기 및 임베디드 마이크로 컨트롤러 등의 형식으로 동일한 기능을 실현할 수 있다는 것을 알 수 있다. 따라서 이러한 클라이언트 및 서버는 하드웨어 부품으로 간주할 수 있으며, 그 내부에 포함된 각종 기능을 실현하기 위한 장치도 하드웨어 부품 내의 구조로 간주할 수 있다. 혹은, 각종 기능을 실현하기 위한 장치를 방법을 실현하는 소프트웨어 모듈로 간주할 수도 있고, 하드웨어 부품 내의 구조로 간주할 수도 있다.
도11에 도시된 바와 같이, 본 발명에 제안된 신경망의 양자화 파라미터 확정기기의 기능 블록도이다. 상기 기기는 통계유닛(a)과 양자화 파라미터 확정유닛(b)을 포함한다.
통계유닛(a)은 양자화 대상 데이터를 통계하여 각 종류의 양자화 대상 데이터의 통계결과를 확정는 데 사용된다. 여기에서, 상기 양자화 대상 데이터는 상기 신경망의 뉴런, 가중치 그래디언트, 바이어스 중의 적어도 한 가지 데이터를 포함한다.
양자화 파라미터 확정유닛(b)은 각 종류의 양자화 대상 데이터의 통계결과 및 데이터 비트폭을 이용하여 대응하는 양자화 파라미터를 확정하는 데 사용된다. 여기에서, 상기 양자화 파라미터는 인공지능 프로세서가 신경망 연산과정에서 데이터에 대해 대응하는 양자화를 수행하는 데 사용된다.
본 실시예에서, 바람직하게는, 상기 신경망의 양자화 파라미터 확정기기는 제1 양자화 유닛을 더 포함한다.
제1 양자화 유닛은 대응하는 양자화 파라미터를 이용하여 상기 양자화 대상 데이터를 양자화하는 데 사용된다.
본 실시예에서, 바람직하게는, 상기 신경망의 양자화 파라미터 확정기기는 제2 양자화 유닛을 더 포함한다.
제2 양자화 유닛은 대응하는 양자화 파라미터를 이용하여 목표데이터를 양자화하는 데 사용된다. 여기에서, 상기 목표데이터의 특징은 상기 양자화 대상 데이터의 특징과 유사성이 있다.
본 실시예에서, 상기 신경망 연산과정은 신경망 훈련, 신경망 추론, 신경망 미조정 중의 적어도 한 가지 연산을 포함한다.
본 실시예에서, 상기 통계유닛이 획득한 통계결과는 각 종류의 양자화 대상 데이터 중의 최대 값과 최소 값이다.
본 실시예에서, 상기 통계유닛이 획득한 통계결과는 각 종류의 양자화 대상 데이터 중의 절대치 최대 값이다.
본 실시예에서, 상기 통계유닛은 각 종류의 양자화 대상 데이터 중의 최대 값과 최소 값에 근거하여 상기 절대치 최대 값을 확정한다.
본 실시예에서, 상기 양자화 파라미터 확정유닛은 각 종류의 양자화 대상 데이터 중의 최대 값, 최소 값 및 상기 데이터 비트폭에 근거하여 양자화 파라미터를 확정한다.
본 실시예에서, 상기 양자화 파라미터 확정유닛은 각 종류의 양자화 대상 데이터 중의 절대치 최대 값, 상기 데이터 비트폭에 근거하여 양자화 파라미터를 확정한다.
본 실시예에서, 상기 양자화 파라미터 확정유닛이 확정한 상기 양자화 파라미터는 점 위치 파라미터 또는 제1 스케일 팩터이다.
본 실시예에서, 상기 양자화 파라미터 확정유닛은 점 위치 파라미터와 제2 스케일 팩터에 근거하여 상기 제1 스케일 팩터를 확정한다. 여기에서, 제1 스케일 팩터를 확정할 때 사용한 점 위치 파라미터는 기지의 고정 값, 또는 상기 점 위치 파라미터와 대응하는 상기 제2 스케일 팩터를 곱셈한 결과 전체가 제1 스케일 팩터로서 신경망 연산과정의 데이터 양자화에 응용된다.
본 실시예에서, 상기 양자화 파라미터 확정유닛이 확정한 상기 양자화 파라미터는 점 위치 파라미터와 제2 스케일 팩터를 포함한다.
본 실시예에서, 상기 양자화 파라미터 확정유닛은 상기 점 위치 파라미터, 상기 통계결과, 상기 데이터 비트폭에 근거하여 상기 제2 스케일 팩터를 확정한다.
본 실시예에서, 상기 양자화 파라미터 확정유닛이 확정한 상기 양자화 파라미터는 오프셋도 포함한다.
본 실시예에서, 상기 양자화 파라미터 확정유닛은 각 종류의 양자화 대상 데이터의 통계결과에 근거하여 상기 오프셋을 확정한다.
본 실시예에서, 상기 양자화 파라미터 확정유닛이 사용한 데이터 비트폭을 미리 설정된 값이다.
본 실시예에서, 상기 양자화 파라미터 확정유닛은 조정모듈과 양자화 오차 확정모듈을 포함하며, 여기에서,
상기 조정모듈은 대응하는 양자화 오차에 근거하여 데이터 비트폭을 조정하는 데 사용되고;
상기 양자화 오차 확정모듈은 양자화 후의 데이터와 대응하는 양자화 전의 데이터에 근거하여 상기 양자화 오차를 확정하는 데 사용되다.
본 실시예에서, 상기 조정모듈은 구체적으로, 상기 양자화 오차와 한계 값을 비교하고, 비교결과에 근거하여 상기 데이터 비트폭을 조정한다. 여기에서, 상기 한계 값은 제1 한계 값과 제2 한계 값 중의 적어도 하나를 포함한다.
본 실시예에서, 상기 조정모듈은 제1 조정 서브 모듈을 포함한다. 여기에서, 상기 제1 조정 서브 모듈은 상기 양자화 오차가 상기 제1 한계 값 이상인 경우 상기 데이터 비트폭을 증가하는 데 사용된다.
본 실시예에서, 상기 조정모듈은 제2 조정 서브 모듈을 포함한다. 여기에서, 상기 제2 조정 서브 모듈은 상기 양자화 오차가 상기 제2 한계 값 이하인 경우 상기 데이터 비트폭을 감소하는 데 사용된다.
본 실시예에서, 상기 조정모듈은 제3 조정 서브 모듈을 포함한다. 여기에서, 상기 제3 조정 서브 모듈은 상기 양자화 오차가 상기 제1 한계 값과 상기 제2 한계 값 사이에 있을 때 상기 데이터 비트폭을 변하지 않게 유지하는 데 사용된다.
본 실시예에서, 상기 양자화 오차 확정모듈은 상기 데이터 비트폭에 근거하여 양자화 간격을 확정하기 위한 양자화 간격확정 서브 모듈, 및 상기 양자화 간격, 상기 양자화 후의 데이터의 개수와 대응하는 양자화 전의 데이터에 근거하여 양자화 오차를 확정하기 위한 제1 양자화 오차확정 서브 모듈을 포함한다.
본 실시예에서, 상기 양자화 오차 확정모듈은 양자화 후의 데이터를 역 양자화하여 역 양자화 데이터를 획득하기 위한 역 양자화 데이터 확정 서브 모듈, 및 상기 양자화 후의 데이터 및 대응하는 역 양자화 데이터에 근거하여 양자화 오차를 확정하기 위한 제2 양자화 오차확정 서브 모듈을 포함하며, 여기에서, 상기 역 양자화 데이터의 데이터 형식은 대응하는 양자화 전의 데이터의 데이터 형식과 같다.
본 실시예에서, 상기 양자화 오차 확정모듈이 사용하는 상기 양자화 전의 데이터는 상기 양자화 대상 데이터이다.
본 실시예에서, 상기 양자화 오차 확정모듈이 사용하는 상기 양자화 전의 데이터는 목표반복간격 내의 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터이다. 여기에서, 상기 목표반복간격은 적어도 1회 가중치 업데이트 반복을 포함하며, 또 동일한 목표반복간격 내 양자화 과정에서 동일한 상기 데이터 비트폭을 채용한다.
본 실시예에서, 상기 신경망의 양자화 파라미터 확정기기는 제1 목표반복간격 확정유닛을 더 포함하며; 여기에서, 상기 제1 목표반복간격 확정유닛은,
사전판정시점에서, 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터의 점 위치 파라미터의 변화추세 값을 확정하기 위한 제1 변화추세 값 확정모듈, 및 상기 점 위치 파라미터의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정하기 위한 제1 목표반복간격모듈을 포함하며, 여기에서, 상기 사전판정시점은 상기 데이터 비트폭을 조정할 필요가 있는지 여부를 판정하기 위한 시점이며, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응한다.
본 실시예에서, 상기 제1 목표반복간격 확정유닛은:
사전판정시점에서, 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터의 점 위치 파라미터의 변화추세 값, 데이터 비트폭의 변화추세 값을 확정하기 위한 제2 변화추세 값 확정모듈, 및 상기 점 위치 파라미터의 변화추세 값과 상기 데이터 비트폭의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정하기 위한 제2 목표반복간격모듈을 포함하며,
여기에서, 상기 사전판정시점은 상기 데이터 비트폭을 조정할 필요가 있는지 여부를 판정하기 위한 시점이고, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응한다.
본 실시예에서, 상기 제1 목표반복간격 확정유닛은 제1 사전판정시점 확정유닛을 더 포함하며; 여기에서, 상기 제1 사전판정시점 확정유닛은 상기 목표반복간격에 근거하여 상기 제1 사전판정시점을 확정하는 데 사용된다.
본 실시예에서, 상기 제1 목표반복간격 확정유닛은 포함제2 사전판정시점 확정유닛을 더 포함하며; 여기에서, 상기 제2 사전판정시점 확정유닛은 데이터 변동폭 곡선에 근거하여 제2 사전판정시점을 확정하는 데 사용되고; 여기에서, 상기 데이터 변동폭 곡선은 가중치 업데이트 반복과정 중 데이터 변동폭 상황을 통계하여 획득한 것이다.
본 실시예에서, 상기 제1 변화추세 값 확정모듈과 상기 제2 변화추세 값 확정모듈은 모두 현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값, 이전 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값에 근거하여 상기 점 위치 파라미터의 변화추세 값을 확정한다.
본 실시예에서, 상기 제1 변화추세 값 확정모듈과 상기 제2 변화추세 값 확정모듈은 모두 현재 사전판정시점에 대응하는 점 위치 파라미터, 이전 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값에 근거하여 상기 점 위치 파라미터의 변화추세 값을 확정한다.
본 실시예에서, 상기 제1 변화추세 값 확정모듈과 상기 제2 변화추세 값 확정모듈은 모두
이전 사전판정시점에 대응하는 점 위치 파라미터와 상기 데이터 비트폭의 조정 값에 근거하여 상기 현재 사전판정시점에 대응하는 점 위치 파라미터를 확정하기 위한 현재 사전판정시점에 대응하는 점 위치 파라미터 확정 서브 모듈,
상기 데이터 비트폭의 조정 값에 근거하여 상기 이전 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값을 조정하여 조정결과를 획득하기 위한 조정결과 확정 서브 모듈, 및
상기 현재 사전판정시점에 대응하는 점 위치 파라미터, 상기 조정결과에 근거하여 현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값을 확정하기 위한 제1 이동평균 값 확정 서브 모듈을 포함한다.
본 실시예에서, 상기 제1 변화추세 값 확정모듈과 상기 제2 변화추세 값 확정모듈은 모두
이전 사전판정시점에 대응하는 점 위치 파라미터와 이전 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값에 근거하여 현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값의 중간결과를 확정하기 위한 중간결과 확정 서브 모듈, 및
현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값의 중간결과와 상기 데이터 비트폭의 조정 값에 근거하여 상기 현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값을 확정하기 위한 제2 이동평균 값 확정 서브 모듈을 포함한다.
본 실시예에서, 상기 제2 변화추세 값 확정모듈은 대응하는 상기 양자화 오차에 근거하여 데이터 비트폭의 변화추세 값을 확정한다.
본 실시예에서, 상기 제1 목표반복간격 확정유닛은,
대응하는 양자화 오차를 확정하기 위한 양자화 오차 확정모듈, 및
대응하는 양자화 오차에 근거하여 상기 목표반복간격 내 양자화 과정에서 채용하는 데이터 비트폭을 확정하기 위한 데이터 비트폭 확정모듈을 포함하며, 여기에서, 상기 양자화 오차에 대응하는 양자화 전의 데이터는 상기 사전판정시점에 대응하는 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터이다.
본 실시예에서, 상기 데이터 비트폭 확정모듈은 구체적으로,
상기 양자화 오차와 한계 값을 비교하고, 비교결과에 근거하여 이전 목표반복간격 내 양자화 과정에서 채용하는 데이터 비트폭을 조정하며, 조정결과를 현재 목표반복간격 내 양자화 과정에서 채용하는 데이터 비트폭으로 하는 데 사용된다.
본 실시예에서, 상기 양자화 오차 확정모듈이 사용하는 상기 양자화 전의 데이터는 목표반복간격 내의 가중치 업데이트 반복의 경우에 관련된 양자화 대상 데이터이고; 여기에서, 상기 목표반복간격은 적어도 1회 가중치 업데이트 반복을 포함하며, 동일한 목표반복간격 내 양자화 과정에서 동일한 상기 양자화 파라미터를 채용한다.
본 실시예에서, 상기 신경망의 양자화 파라미터 확정기기는 제2 목표반복간격 확정유닛을 더 포함하며; 여기에서, 상기 제2 목표반복간격 확정유닛은,
사전판정시점에서, 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터의 점 위치 파라미터의 변화추세 값을 확정하기 위한 제3 변화추세 값 확정모듈, 및
상기 점 위치 파라미터의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정하기 위한 제3 목표반복간격모듈을 포함하며,
여기에서, 상기 사전판정시점은 상기 양자화 파라미터에 대해 조정할 필요가 있는지 여부를 판정하기 위한 시점이고, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응한다.
본 실시예에서, 상기 양자화 파라미터 확정유닛은 통계결과와, 상기 데이터 비트폭에 근거하여 상기 점 위치 파라미터를 확정한다.
일 실시예에서, 데이터 비트폭을 조정하는 장치를 제공하는 바, 그 특징은:
양자화 대상 데이터에 대해 양자화 처리를 수행하기 위한 상기 양자화 대상 데이터의 상기 양자화 처리 후 양자화 된 데이터의 비트폭을 나타내는 데이터 비트폭을 회득하기 위한 획득모듈,
상기 데이터 비트폭에 기초하여 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 수행하여 상기 1그룹의 양자화 대상 데이터를 상기 데이터 비트폭을 갖는 1그룹의 양자화 된 데이터로 변환하기 위한 양자화 모듈,
상기 1그룹의 양자화 대상 데이터와 상기 1그룹의 양자화 된 데이터를 비교하여 상기 데이터 비트폭과 관련된 양자화 오차를 확정하기 위한 확정모듈, 및
확정된 상기 양자화 오차에 근거하여 상기 데이터 비트폭을 조정하기 위한 조정모듈을 포함한다.
본 실시예에서, 상기 비교모듈은,
상기 데이터 비트폭에 근거하여 양자화 간격을 확정하기 위한 간격확정모듈, 및
상기 양자화 간격, 상기 1그룹의 양자화 된 데이터 및 상기 1그룹의 양자화 대상 데이터에 근거하여 상기 양자화 오차를 확정하기 위한 오차 확정모듈을 포함한다.
본 실시예에서, 상기 오차 확정모듈은,
상기 양자화 간격에 근거하여 상기 1그룹의 양자화 된 데이터에 대해 역 양자화를 수행하여 1그룹의 역 양자화 데이터를 획득하는 데 사용되고, 상기 1그룹의 역 양자화 데이터의 데이터 형식이 상기 1그룹의 양자화 대상 데이터의 데이터 형식과 같은 양자화 모듈, 및
상기 1그룹의 역 양자화 데이터와 상기 1그룹의 양자화 대상 데이터에 근거하여 양자화 오차를 확정하기 위한 양자화 오차 확정모듈을 포함한다.
본 실시예에서, 상기 조정모듈은,
제1 한계 값과 제2 한계 값 중의 적어도 하나를 포함하는 미리 설정된 한계 값과 상기 양자화 오차를 비교하기 위한 비교모듈, 및
상기 비교의 결과에 근거하여 상기 데이터 비트폭을 조정하기 위한 비트폭 조정모듈을 포함한다.
본 실시예에서, 상기 비트폭 조정모듈은,
상기 양자화 오차가 제1 한계 값 이상임의 확정에 응답하여 상기 데이터 비트폭을 증가하기 위한 증가모듈을 포함한다.
본 실시예에서, 상기 증가모듈은,
제1 미리 설정된 비트폭 스텝에 근거하여 상기 데이터 비트폭을 증가시켜 조정 후 데이터 비트폭을 확정하기 위한 스텝 증가모듈을 포함한다.
본 실시예에서, 상기 양자화 모듈은 진일보로 상기 조정 후 데이터 비트폭에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하여 상기 1그룹의 양자화 대상 데이터를 다른 1그룹의 양자화 된 데이터로 변환하는 데 사용되며, 상기 다른 1그룹의 양자화 된 데이터는 상기 조정 후 데이터 비트폭을 가지며; 및
상기 확정모듈은 진일보로 상기 1그룹의 양자화 대상 데이터와 상기 다른 1그룹의 양자화 된 데이터를 비교하여, 다른 하나의 양자화 오차가 상기 제1 미리 설정된 한계 값보다 작을 때까지 상기 조정 후 데이터 비트폭과 관련되는 다른 하나의 양자화 오차를 확정하는 데 사용된다.
본 실시예에서, 상기 장치는 반복적으로 호출된다.
본 실시예에서, 상기 조정모듈은,
상기 양자화 오차가 상기 제2 한계 값 이하임을 확정하는 것에 응답하여 상기 데이터 비트폭을 감소시키기 위한 감소모듈을 포함한다.
본 실시예에서, 상기 감소모듈은,
제2 미리 설정된 비트폭 스텝에 근거하여 상기 데이터 비트폭을 감소하여 조정 후 데이터 비트폭을 확정하기 위한 스텝 감소모듈을 포함한다.
본 실시예에서, 상기 양자화 모듈은 진일보로 상기 조정 후 데이터 비트폭에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하여 상기 1그룹의 양자화 대상 데이터를 다른 1그룹의 양자화 된 데이터로 변환하는 데 사용되며, 상기 다른 1그룹의 양자화 된 데이터는 상기 조정 후 데이터 비트폭을 가지며; 및
상기 확정모듈은 진일보로 상기 1그룹의 양자화 대상 데이터와 상기 다른 1그룹의 양자화 된 데이터에 근거하여, 다른 하나의 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 상기 조정 후 데이터 비트폭과 관련되는 다른 하나의 양자화 오차를 확정하는 데 사용된다.
본 실시예에서, 상기 장치는 반복적으로 호출된다.
본 실시예에서, 상기 조정모듈은,
상기 양자화 오차가 상기 제1 한계 값과 상기 제2 한계 값 사이에 있음을 확정하는 것에 응답하여 상기 데이터 비트폭을 유지하기 위한 유지모듈을 포함한다.
본 실시예에서, 진일보로,
상기 1그룹의 양자화 대상 데이터와 상기 조정 후 데이터 비트폭에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하기 위한 양자화 파라미터를 업데이트하기 위한 업데이트모듈, 및
진일보로 업데이트한 상기 양자화 파라미터에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하기 위한 상기 양자화 모듈을 포함한다.
본 실시예에서, 변동폭 모듈은 양자화 대상 데이터의 데이터 변동폭을 획득하는 데 사용되며;
간격모듈은 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 데이터 비트폭을 조정하는 데 사용되며, 상기 목표반복간격은 적어도 1회 반복을 포함한다.
본 실시예에서, 상기 변동폭 모듈은,
점 위치의 변동폭을 획득하기 위한 점 위치 모듈을 포함하며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용되며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있다.
본 실시예에서, 상기 점 위치모듈은,
현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정하는 데 사용되며, 상기 전회 검사 반복이 상기 목표반복간격 전의 이전 반복간격에 대응하는 검사 반복인 제1 균치모듈;
상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 데 사용되며; 상기 현재 검사 반복에 대응하는 점 위치가 상기 현재 검사 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 의해 확정되는 제2 균치모듈; 및
상기 제1 균치와 상기 제2 균치에 근거하여 상기 점 위치의 변동폭을 특성화하기 위한 제1 오차를 확정하기 위한 제1 오차모듈을 포함한다.
본 실시예에서, 상기 간격모듈은,
상기 제1 오차에 근거하여 상기 목표반복간격을 확정하기 위한 제1 간격모듈을 포함하며, 상기 목표반복간격은 상기 제1 오차와 부의 상관이 있다.
본 실시예에서, 상기 변동폭 모듈은 진일보로,
상기 데이터 비트폭의 변화추세를 획득하기 위한 추세모듈; 및
상기 점 위치의 변동폭과 상기 데이터 비트폭의 변화추세에 근거하여 상기 양자화 대상 데이터의 데이터 변동폭을 확정하기 위한 데이터 변동폭 모듈을 포함한다.
본 실시예에서, 상기 간격모듈은 진일보로,
획득한 제1 오차와 제2 오차에 근거하여 상기 목표반복간격을 확정하기 위한 반복간격모듈을 포함하며; 상기 제1 오차는 점 위치의 변동폭을 특성화하는 데 사용되고, 상기 제2 오차는 데이터 비트폭의 변화추세를 특성화하는 데 사용된다.
본 실시예에서, 상기 반복간격모듈은,
상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 하기 위한 목표오차모듈; 및
상기 목표오차에 근거하여 상기 목표반복간격을 확정하기 위한 목표반복간격모듈을 포함하며, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있다.
본 실시예에서, 상기 제2 오차는 양자화 오차에 의해 확정되고;
여기에서, 상기 양자화 오차는 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 의해 확정되며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있다.
본 실시예에서, 상기 장치는 신경망의 훈련 또는 미조정에 사용되며, 상기 장치는 진일보로,
상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하고, 상기 목표반복간격에 근거하여 상기 양자화 파라미터를 조정하기 위한 제1 반복모듈을 포함한다.
본 실시예에서, 상기 장치는 진일보로,
상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하기 위한 제2 반복모듈을 포함한다.
본 실시예에서, 상기 장치는 진일보로,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하기 위한 제3 반복모듈을 포함하며;
여기에서, 상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 크다.
본 실시예에서, 상기 장치는 진일보로,
상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면 상기 현재 검사 반복이 제2 미리 설정된 반복 이상임을 확정하기 위한 수렴모듈을 포함한다.
본 실시예에서, 상기 장치는 진일보로,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 또 제2 오차가 미리 설정된 오차 값보다 큰 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 한다.
일 실시예에서, 실행시에 위의 임의의 하나의 기술된 방법을 실현하는 컴퓨터 프로그램이 저장된 것을 특지으로 하는 컴퓨터 판독 가능한 저장매체를 제공한다.
일 실시예에서, 위의 임의의 하나의 데이터를 처리하기 위한 장치를 포함하는 것을 특징으로 하는 인공지능 칩을 제공한다.
일 실시예에서, 위의 인공지능 칩을 포함하는 것을 특징으로 하는 전자기기를 제공한다.
일 실시예에서는, 메모리 디바이스, 인터페이스 장치와 제어 디바이스 및 위에 기재된 인공지능 칩을 포함하며,
그 중, 상기 인공지능 칩은 상기 메모리 디바이스, 상기 제어 디바이스 및 상기 인터페이스 장치와 연결되고;
상기 메모리 디바이스는 데이터를 저장하는 데 사용되고;
상기 인터페이스 장치는 상기 인공지능 칩과 외부기기 사이의 데이터 전송을 실현하는 데 사용되며,
상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다 특징으로 하는 보드 카드를 제공한다.
일 실시예에서, 상기 메모리 디바이스는 복수 그룹의 저장유닛을 포함하며, 각 그룹의 저장유닛은 버스를 통해 상기 인공지능 칩과 연결되고, 상기 저장유닛은 DDR SDRAM이며;
상기 칩은 각 상기 저장유닛의 데이터 전송과 데이터 저장을 제어하기 위한 DDR 컨트롤러를 포함하며;
상기 인터페이스 장치는 표준 PCIE 인터페이스이다.
일 실시예에서, 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정하는 것은,
각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것을 포함한다.
일 실시예에서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터 중의 절대치 최대 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터의 점 위치를 얻는 것을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
일 실시예에서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 것; 및
목표데이터 중의 절대치 최대 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는 것을 포함한다.
일 실시예에서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여, 상기 목표데이터의 점 위치를 얻는 것을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
일 실시예에서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 것;
상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는 것을 포함한다.
일 실시예에서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
목표데이터 중의 최대 값과 최소 값에 근거하여 상기 목표데이터의 오프셋을 얻는 것을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
일 실시예에서, 상기 방법은,
목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 상기 목표데이터의 양자화 오차를 확정하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 것;
상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻는 것; 및
상기 목표데이터에 대응하는 데이터 비트폭을 상기 조정 비트폭으로 업데이트하고, 상기 목표데이터와 상기 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 상기 신경망이 상기 조정 양자화 파라미터에 근거하여 양자화하도록 하는 것을 더 포함한다.
일 실시예에서, 상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻는 것은,
상기 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는 것을 포함한다.
일 실시예에서, 상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하고;
상기 조정 후의 양자화 오차와 상기 제1 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산하여 얻은 조정 후의 양자화 오차가 상기 제1 오차 한계 값 이하로 될 때까지 상기 조정 비트폭을 계속 증가한다.
일 실시예에서, 상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하는 것은,
상기 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하는 것을 포함하며, 상기 제2 오차 한계 값은 상기 제1 오차 한계 값보다 작다.
일 실시예에서, 상기 방법은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하는 것; 및
상기 조정 후의 양자화 오차와 상기 제2 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산을 통해 얻은 조정 후의 양자화 오차가 상기 제2 오차 한계 값 이상이 될 때까지 상기 조정 비트폭을 계속 감소하는 것을 더 포함한다.
일 실시예에서, 상기 신경망 연산의 미조정단계 및/또는 훈련단계에서, 상기 방법은,
현재 반복 및 상기 현재 반복 전의 반복인 이력 반복 중 목표데이터의 데이터 변동폭을 획득하는 것; 및
상기 목표데이터의 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하는 것을 포함하며, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
일 실시예에서, 상기 방법은,
상기 목표데이터의 상기 현재 반복에서의 데이터 비트폭에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭을 확정함으로써, 상기 신경망이 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭에 근거하여 양자화 파라미터를 확정하도록 하는 것을 더 포함한다.
일 실시예에서, 상기 양자화 파라미터 확정모듈은,
각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻기 위한 제2 양자화 파라미터 확정 서브 모듈을 포함한다.
일 실시예에서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터 중의 절대치 최대 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터의 점 위치를 얻기 위한 제1 점 위치 계산유닛을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
일 실시예에서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻기 위한 제1 스케일 팩터 계산유닛를 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이고; 목표데이터 중의 절대치 최대 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는다.
일 실시예에서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여, 상기 목표데이터의 점 위치를 얻기 위한 제2 점 위치 계산유닛을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
일 실시예에서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻기 위한 제2 스케일 팩터 계산유닛을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이고; 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는다.
일 실시예에서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
목표데이터 중의 최대 값과 최소 값에 근거하여 상기 목표데이터의 오프셋을 얻기 위한 오프셋 계산유닛을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
일 실시예에서, 상기 장치는,
목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 상기 목표데이터의 양자화 오차를 확정하는 데 사용되며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 양자화 오차 확정모듈;
상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻기 위한 조정 비트폭 확정모듈; 및
상기 목표데이터에 대응하는 데이터 비트폭을 상기 조정 비트폭으로 업데이트하고, 상기 목표데이터와 상기 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 상기 신경망이 상기 조정 양자화 파라미터에 근거하여 양자화하도록 하기 위한 조정 양자화 파라미터 확정모듈을 포함한다.
일 실시예에서, 상기 조정 비트폭 확정모듈은,
상기 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻기 위한 제1 조정 비트폭 확정 서브 모듈을 포함한다.
일 실시예에서, 상기 조정 비트폭 확정모듈은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하기 위한 제1 조정 양자화 오차 확정 서브 모듈; 및
상기 조정 후의 양자화 오차와 상기 제1 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산하여 얻은 조정 후의 양자화 오차가 상기 제1 오차 한계 값 이하로 될 때까지 상기 조정 비트폭을 계속 증가하기 위한 제1 조정 비트폭 순환 확정 서브 모듈을 더 포함한다.
일 실시예에서, 상기 조정 비트폭 확정모듈은,
상기 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하기 위한 제2 조정 비트폭 확정 서브 모듈을 포함하며, 상기 제2 오차 한계 값은 상기 제1 오차 한계 값보다 작다.
일 실시예에서, 상기 조정 비트폭 확정모듈은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하기 위한 제2 조정 양자화 오차 확정 서브 모듈; 및
상기 조정 후의 양자화 오차와 상기 제2 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산을 통해 얻은 조정 후의 양자화 오차가 상기 제2 오차 한계 값 이상이 될 때까지 상기 조정 비트폭을 계속 감소하기 위한 제2 조정 비트폭 순환 확정 서브 모듈을 더 포함한다.
일 실시예에서, 상기 신경망 연산의 미조정단계 및/또는 훈련단계에서, 상기 장치는,
현재 반복 및 상기 현재 반복 전의 반복인 이력 반복 중 목표데이터의 데이터 변동폭을 획득하기 위한 데이터 변동폭 확정모듈; 및
상기 목표데이터의 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하기 위한 목표반복간격 확정모듈을 더 포함하며, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
일 실시예에서, 상기 장치는,
상기 목표데이터의 상기 현재 반복에서의 데이터 비트폭에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭을 확정함으로써, 상기 신경망이 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭에 근거하여 양자화 파라미터를 확정하도록 하기 위한 제1 목표반복간격 응용모듈을 더 포함한다.
일 실시예에서, 신경망의 양자화 파라미터 조정방법을 제공하는 바, 그 특징은 상기 방법은,
양자화 대상 데이터의 데이터 변동폭을 획득하는 것;
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하는 것을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
일 실시예에서, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 상기 방법은,
현재 검사 반복에 대응하는 목표데이터 비트폭과 상기 현재 검사 반복의 양자화 대상 데이터에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 확정함으로써, 상기 신경망 연산에서의 점 위치를 조정하도록 하는 것을 더 포함하며;
여기에서, 상기 목표반복간격 중 반복에 대응하는 점 위치가 일치하다.
일 실시예에서, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 상기 방법은,
상기 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 상기 목표반복간격에 대응하는 데이터 비트폭을 확정하며, 여기에서, 상기 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치한 것; 및
획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정하여 상기 신경망 연산에서의 점 위치를 조정하도록 하는 것을 더 포함하며;
여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하며, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치하다.
일 실시예에서, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다.
일 실시예에서, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 스케일 팩터를 더 포함한다.
일 실시예에서, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 오프셋을 더 포함한다.
일 실시예에서, 상기 방법은,
상기 현재 검사 반복의 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정하며, 여기에서, 상기 현재 검사 반복의 양자화 데이터가 상기 현재 검사 반복의 양자화 대상 데이터의 양자화에 의해 획득되는 것; 및
상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하는 것을 더 포함한다.
일 실시예에서, 상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하는 것은,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 것; 또는,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 것을 포함한다.
일 실시예에서, 상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 것은,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 제1 미리 설정된 비트폭 스텝에 근거하여 제1 중간 데이터 비트폭을 확정하는 것; 및
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제1 미리 설정된 한계 값 미만이 될 때까지 리턴 실행하여 양자화 오차를 확정하는 것을 포함하며; 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제1 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득된다.
일 실시예에서, 상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하는 것은,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 제2 미리 설정된 비트폭 스텝에 의해 제2 중간 데이터 비트폭을 확정하는 것; 및
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 리턴 실행하여 양자화 오차를 확정하는 것을 포함하며; 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제2 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득된다.
일 실시예에서, 상기 양자화 대상 데이터의 데이터 변동폭을 획득하는 것은,
점 위치의 변동폭을 획득하는 것을 포함하며; 여기에서, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용할 수 있으며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있다.
일 실시예에서, 상기 점 위치의 변동폭을 획득하는 것은,
현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정하며, 여기에서, 상기 전회 검사 반복은 상기 목표반복간격 전의 전회 반복간격에 대응하는 검사 반복인 것;
상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하며; 여기에서, 상기 현재 검사 반복에 대응하는 점 위치는 상기 현재 검사 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 의해 확정된 것; 및
상기 제1 균치와 상기 제2 균치에 근거하여 상기 점 위치의 변동폭을 특성화하기 위한 제1 오차를 확정하는 것을 포함한다.
일 실시예에서, 상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 것은,
미리 설정된 수의 중간 이동평균 값을 획득하며, 여기에서, 각 상기 중간 이동평균 값은 상기 현재 검사 반복하기 전 상기 미리 설정된 수의 검사 반복에 근거하여 확정된 것; 및
상기 현재 검사 반복의 점 위치 및 상기 미리 설정된 수의 중간 이동평균 값에 근거하여 상기 제2 균치를 확정하는 것을 포함한다.
일 실시예에서, 상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 것은,
상기 현재 검사 반복에 대응하는 점 위치 및 상기 제1 균치에 근거하여 상기 제2 균치를 확정하는 것을 포함한다.
일 실시예에서, 상기 방법은,
획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 것을 더 포함하며; 여기에서, 상기 현재 검사 반복의 데이터 비트폭 조정 값은 상기 현재 검사 반복의 목표데이터 비트폭과 초기 데이터 비트폭에 의해 확정된다.
일 실시예에서, 획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 것은,
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 클 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 감소하는 것; 및
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 작은 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 증가하는 것을 포함한다.
일 실시예에서, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하는 것은,
상기 제1 오차에 근거하여 상기 목표반복간격을 확정하는 것을 포함하며, 상기 목표반복간격은 상기 제1 오차와 부의 상관이 있다.
일 실시예에서, 상기 양자화 대상 데이터의 데이터 변동폭을 획득하는 것은,
데이터 비트폭의 변화추세를 획득하는 것; 및
상기 점 위치의 변동폭과 상기 데이터 비트폭의 변화추세에 근거하여 상기 양자화 대상 데이터의 데이터 변동폭을 확정하는 것을 더 포함한다.
일 실시예에서, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하는 것은,
획득한 점 위치의 변동폭을 특성화하기 위한 제1 오차와 데이터 비트폭의 변화추세를 특성화하기 위한제2 오차에 근거하여 상기 목표반복간격을 확정하는 것을 더 포함한다.
일 실시예에서, 획득한 상기 제2 오차와 상기 제1 오차에 근거하여 상기 목표반복간격을 확정하는 것은,
상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 하는 것; 및
상기 목표오차에 근거하여 상기 목표반복간격을 확정하는 것을 포함하며, 여기에서, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있다.
일 실시예에서, 상기 제2 오차는 양자화 오차에 의해 확정되고;
여기에서, 상기 양자화 오차는 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 의해 확정되며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있다.
일 실시예에서, 상기 방법은 신경망의 훈련 또는 미조정에 적용되며, 상기 방법은,
상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하며, 상기 목표반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 더 포함한다.
일 실시예에서, 상기 방법은,
상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 더 포함한다.
일 실시예에서, 상기 방법은,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 더 포함하며;
여기에서, 상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 크다.
일 실시예에서, 상기 방법은,
상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면, 상기 현재 검사 반복이 제2 미리 설정된 반복 이상임을 확정하는 것을 더 포함한다.
일 실시예에서, 상기 방법은,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 또 제2 오차가 미리 설정된 오차 값보다 큰 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 하는 것을 더 포함한다.
일 실시예에서, 상기 양자화 대상 데이터는 뉴런 데이터, 가중치 데이터 또는 그래디언트 데이터 중의 적어도 한 가지이다.
일 실시예에서, 컴퓨터 프로그램이 저장된 메모리, 및 상기 컴퓨터 프로그램을 실행할 때 위의 임의의 한 가지 방법의 단계를 실행하는 프로세서를 포함하는 것을 특징으로 하는 신경망의 양자화 파라미터 조정장치를 제공한다.
일 실시예에서, 상기 컴퓨터 판독 가능한 저장매체에는 컴퓨터 프로그램이 저장되어 있고, 상기 컴퓨터 프로그램은 실행될 때 위의 임의의 한 가지 방법의 단계를 실현한다.
일 실시예에서, 신경망의 양자화 파라미터 조정장치를 제공하며, 그 특징은, 상기 장치는,
양자화 대상 데이터의 데이터 변동폭을 획득하기 위한 획득모듈; 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하기 위한 반복간격 확정모듈을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
일 실시예에서, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 상기 장치는,
현재 검사 반복에 대응하는 목표데이터 비트폭과 상기 현재 검사 반복의 양자화 대상 데이터에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 확정함으로써, 상기 신경망 연산에서의 점 위치를 조정하도록 하기 위한 양자화 파라미터 확정모듈을 더 포함하며;
여기에서, 상기 목표반복간격 중 반복에 대응하는 점 위치가 일치하다.
일 실시예에서, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 상기 장치는,
상기 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 상기 목표반복간격에 대응하는 데이터 비트폭을 확정하는 데 사용되며, 여기에서, 상기 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치한 데이터 비트폭 확정모듈; 및
획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정하여 상기 신경망 연산에서의 점 위치를 조정하도록 하기 위한 양자화 파라미터 확정모듈을 더 포함하며;
여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하고, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치하다.
일 실시예에서, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다.
일 실시예에서, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 스케일 팩터를 더 포함한다.
일 실시예에서, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 오프셋을 더 포함한다.
일 실시예에서, 상기 데이터 비트폭 확정모듈은,
상기 현재 검사 반복의 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정하는 데 사용되며, 여기에서, 상기 현재 검사 반복의 양자화 데이터가 상기 현재 검사 반복의 양자화 대상 데이터의 양자화에 의해 획득되는 양자화 오차 확정유닛; 및
상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하기 위한 데이터 비트폭 확정유닛을 포함한다.
일 실시예에서, 상기 데이터 비트폭 확정유닛은 상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정할 때 구체적으로,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 데; 또는,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 데 사용된다.
일 실시예에서, 상기 데이터 비트폭 확정유닛은 상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득할 때 구체적으로,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 제1 미리 설정된 비트폭 스텝에 근거하여 제1 중간 데이터 비트폭을 확정하며;
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제1 미리 설정된 한계 값 미만이 될 때까지 리턴 실행하여 양자화 오차를 확정하는 데 사용되며; 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제1 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득된다.
일 실시예에서, 상기 데이터 비트폭 확정유닛은 상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득할 때 구체적으로,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 제2 미리 설정된 비트폭 스텝에 의해 제2 중간 데이터 비트폭을 확정하며;
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 리턴 실행하여 양자화 오차를 확정하는 데 사용되며; 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제2 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득된다.
일 실시예에서, 상기 획득모듈은,
점 위치의 변동폭을 획득하기 위한 제1 획득모듈을 포함하며; 여기에서, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용할 수 있으며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있다.
일 실시예에서, 상기 제1 획득모듈은,
현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정하는 데 사용되며, 여기에서, 상기 전회 검사 반복은 상기 목표반복간격 전의 전회 반복간격에 대응하는 검사 반복인 제1 균치 확정유닛;
상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 데 사용되며; 여기에서, 상기 현재 검사 반복에 대응하는 점 위치는 상기 현재 검사 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 의해 확정되는 제2 균치 확정유닛; 및
상기 제1 균치와 상기 제2 균치에 근거하여 상기 점 위치의 변동폭을 특성화하기 위한 제1 오차를 확정하기 위한 제1 오차 확정유닛을 포함한다.
일 실시예에서, 상기 제2 균치 확정유닛은 구체적으로,
미리 설정된 수의 중간 이동평균 값을 획득하며, 여기에서, 각 상기 중간 이동평균 값은 상기 현재 검사 반복하기 전 상기 미리 설정된 수의 검사 반복에 근거하여 확정되고;
상기 현재 검사 반복의 점 위치 및 상기 미리 설정된 수의 중간 이동평균 값에 근거하여 상기 제2 균치를 확정하는 데 사용된다.
일 실시예에서, 상기 제2 균치 확정유닛은 구체적으로 상기 현재 검사 반복에 대응하는 점 위치 및 상기 제1 균치에 근거하여 상기 제2 균치를 확정하는 데 사용된다.
일 실시예에서, 상기 제2 균치 확정유닛은 획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 데 사용되며;
여기에서, 상기 현재 검사 반복의 데이터 비트폭 조정 값은 상기 현재 검사 반복의 목표데이터 비트폭과 초기 데이터 비트폭에 의해 확정된다.
일 실시예에서, 상기 제2 균치 확정유닛은 획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 데 사용될 때 구체적으로,
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 클 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 감소하며;
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 작은 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 증가하는 데 사용된다.
일 실시예에서, 상기 반복간격 확정모듈은 상기 제1 오차에 근거하여 상기 목표반복간격을 확정하는 데 사용되며, 상기 목표반복간격은 상기 제1 오차와 부의 상관이 있다.
일 실시예에서, 상기 획득모듈은,
데이터 비트폭의 변화추세를 획득하고; 상기 점 위치의 변동폭과 상기 데이터 비트폭의 변화추세에 근거하여 상기 양자화 대상 데이터의 데이터 변동폭을 확정하기 위한 제2 획득모듈을 더 포함한다.
일 실시예에서, 획득한 점 위치의 변동폭을 특성화하기 위한 제1 오차와 데이터 비트폭의 변화추세를 특성화하기 위한제2 오차에 근거하여 상기 목표반복간격을 확정하기 위한 상기 반복간격 확정모듈을 더 포함한다.
일 실시예에서, 상기 반복간격 확정모듈은 획득한 제1 오차와 제2 오차에 근거하여 상기 목표반복간격을 확정하는 데 사용될 때 구체적으로,
상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 하고;
상기 목표오차에 근거하여 상기 목표반복간격을 확정하는 데 사용되며, 여기에서, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있다.
일 실시예에서, 상기 제2 오차는 양자화 오차에 의해 확정되고;
여기에서, 상기 양자화 오차는 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 의해 확정되며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있다.
일 실시예에서, 상기 장치는 신경망의 훈련 또는 미조정을 실현하는 데 적용되며; 상기 반복간격 확정모듈은,
상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하며, 상기 목표반복간격에 근거하여 상기 양자화 파라미터를 조정하는 데도 사용된다 .
일 실시예에서, 상기 반복간격 확정모듈은 상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 데도 사용된다.
일 실시예에서, 상기 반복간격 확정모듈은,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 데도 사용되며;
여기에서, 상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면, 상기 현재 검사 반복이 제2 미리 설정된 반복 이상임이 확정되고;
상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 크다.
일 실시예에서, 상기 반복간격 확정모듈은, 상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 또 제2 오차가 미리 설정된 오차 값보다 큰 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 하는 데도 사용된다.
또한, 상술한 장치 실시예는 단지 예시일 뿌이며, 본 발명의 기기는 다른 방식으로 실현될 수 있다는 것을 이해해야 한다. 예를 들어, 상술한 실시예에서 상기 유닛/모듈의 구분은 단지 논리적 기능 구분일 뿐이며, 실제로 실현될 경우에는 다른 구분방식이 있을 수 있다. 예를 들어, 복수의 유닛, 모듈 또는 컴포넌트가 결합될 수 있거나 다른 시스템에 통합되거나 일부 특징을 무시 또는 실행하지 않을 수 있다.
상기 분리부품으로서 설명한 유닛 또는 모듈은 물리적으로 분리될 수도 있고, 물리적으로 분리되지 않을 수도 있다. 유닛 또는 모듈로서 설명한 부품은 물리적 유닛일 수도 있고, 물리적 유닛이 아닐 수도 있다. 즉 하나의 장치에 위치할 수도 있고, 복수의 장치에 분산될 수도 있다. 본 발명에서 실시예의 방안은 실제의 필요에 따라 유닛의 일부 또는 전부를 선택하여 실현할 수 있다.
또한, 특히 명기되지 않는 한, 본 발명 각 실시예의 각 기능 유닛/모듈은 하나의 유닛/모듈에 통합될 수 있고, 각 유닛/모듈이 물리적으로 단독으로 존재할 수도 있으며, 2개 또는 2개 이상의 유닛/모듈이 하나로 통합될 수도 있다. 상술한 통합된 유닛/모듈은 하드웨어의 형식을 채용하여 실현할 수도 있고, 소프트웨어 프로그램 모듈의 형식을 채용하여 실현할 수도 있다.
또한, 상술한 장치 실시예는 단지 예시일 뿐이며, 본 발명의 장치는 다른 방식으로 실현할 수 있다는 것을 이해해야 한다. 예를 들어, 상술한 실시예에서 상기 유닛/모듈의 구분은 단지 논리적 기능 구분일 뿐이며, 실제로 실현될 경우에는 다른 구분방식이 있을 수 있다. 예를 들어, 복수의 유닛, 모듈 또는 컴포넌트가 결합될 수 있거나 다른 시스템에 통합되거나 일부 특징을 무시 또는 실행하지 않을 수 있다.
상기 분리부품으로서 설명한 유닛 또는 모듈은 물리적으로 분리될 수도 있고, 물리적으로 분리되지 않을 수도 있다. 유닛 또는 모듈로서 설명한 부품은 물리적 유닛일 수도 있고, 물리적 유닛이 아닐 수도 있다, 즉 하나의 장치에 위치할 수도 있고, 복수의 장치에 분산될 수도 있다. 본 발명에서 실시예의 방안은 실제의 필요에 따라 유닛의 일부 또는 전부를 선택하여 실현할 수 있다.
또한, 특히 명기되지 않는 한, 본 발명 각 실시예의 각 기능 유닛/모듈은 하나의 유닛/모듈에 통합될 수 있고, 각 유닛/모듈이 물리적으로 단독으로 존재할 수도 있으며, 2개 또는 2개 이상의 유닛/모듈이 하나로 통합될 수도 있다. 상술한 통합된 유닛/모듈은 하드웨어의 형식을 채용하여 실현할 수도 있고, 소프트웨어 프로그램 모듈의 형식을 채용하여 실현할 수도 있다.
상기 통합된 유닛/모듈은 하드웨어의 형식으로 실현하는 경우, 당해 하드웨어는 디지털 회로, 아날로그 회로 등일 수 있다. 하드웨어 구조의 물리적 실현은 트랜지스터, 멤 리스터 등을 포함하지만, 이들에 한정되지 않는다. 특히 명기되지 않는 한, 상기 인공지능 프로세서는 임의의 적절한 하드웨어 프로세서, 예를 들어, CPU, GPU, FPGA, DSP 및 ASIC 등일 수 있다. 특히 명기되지 않는 한, 상기 저장유닛은 임의의 적절한 자기 저장 매체 또는 광 자기 저장 매체, 예를 들어, 저항변화 메모리 RRAM(Resistive Random Access Memory), 다이나믹 랜덤 액세스 메모리 DRAM(Dynamic Random Access Memory), 스태틱 랜덤 액세스 메모리 SRAM(Static Random-Access Memory), 임베디드 다이나믹 랜덤 액세스 메모리 EDRAM(Enhanced Dynamic Random Access Memory), 고대역폭 메모리HBM(High-Bandwidth Memory), 하이브리드 메모리 큐브 HMC(Hybrid Memory Cube) 등일 수 있다.
상기 통합된 유닛/모듈은 소프트웨어 프로그램 모듈의 형식으로 실현되고 독립적인 제품으로 판매되거나 사용될 때 하나의 컴퓨터 판독 가능한 메모리에 저장될 수 있다. 이러한 이해에 따라, 본 발명의 기술방안은 본질적으로 또는 종래기술에 공헌하는 부분 또는 당해 기술방안의 전부 또는 일부는 소프트웨어 제품의 형식으로 구현할 수 있으며, 당해 컴퓨터 소프트웨어 제품은 하나의 메모리에 저장되며, 컴퓨터기기(개인용 컴퓨터, 서버 또는네트워크 기기 등일 수 있다)가 본 발명각 실시예에서 설명한 방법의 전부 또는 일부단계를 실행 하기 위한 복수의 명령을 포함한다. 한편 전술한 메모리는 U 디스크, 읽기 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 모바일 하드 디스크, 자기 디스크 또는 광 디스크 등 각종 프로그램 코드를 저장할 수있는 매체를 포함한다.
본 기술방안에서, 본 발명은 상술한 신경망의 양자화 파라미터 확정기기를 포함하는 인공지능 칩을 포함한다.
본 기술방안에서, 본 발명은 메모리 디바이스, 인터페이스 장치와 제어 디바이스 및 상술한 인공지능 칩을 포함하는 보드 카드도 개시하는 바; 여기에서, 상기 인공지능 칩은 상기 메모리 디바이스, 상기 제어 디바이스 및 상기 인터페이스 장치와 각각 연결되고; 상기 메모리 디바이스는 데이터를 저장하는 데 사용되고; 상기 인터페이스 장치는 상기 인공지능 칩과 외부기기 사이의 데이터 전송을 실현하는 데 사용되며; 상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다.
도12은 본 발명 실시예에 따른 보드 카드를 나타내는 구조 블록도이다. 도12를 참조하면, 상술한 보드 카드는 상술한 칩(389)을 포함하는 외에도 다른 부대부품을 포함할 수 있다. 당해 부대부품은 메모리 디바이스(390), 인터페이스 장치(391) 및 제어 디바이스(392)를 포함할 수 있지만, 이들에 한정되지 않는다.
상기 메모리 디바이스(390)는 데이터를 저장하기 위해 베스를 통해 상기 인공지능 칩과 연결된다. 상기 메모리 디바이스는 복수 그룹의 저장유닛(393)을 포함할 수 있다. 각 그룹의 상기 저장유닛은 버스를 통해 상기 인공지능 칩과 연결된다. 또한, 각 그룹의 상기 저장유닛이 DDR SDRAM(영문: Double Data Rate SDRAM, 2배 속도 동기적 다이나믹 랜덤메모리)일 수 있다는 것을 이해할 수 있다.
DDR은 클록 주파수를 높이지 않고도 SDRAM의 속도를 2배로 할 수 있다. DDR은 클록 펄스의 상승 및 하강 에지에서 데이터를 읽어 내는 것을 허용한다. DDR의 속도는 표준 SDRAM의 2배이다. 일 실시예에서, 상기 저장장치는 4그룹의 상기 저장유닛을 포함할 수 있다. 각 그룹의 상기 저장유닛은 복수의 DDR4 입자(칩)를 포함할 수 있다. 일 실시예에서, 상기 인공지능 칩 내부는 4개의 72비트 DDR4 컨트롤러를 포함할 수 있으며, 상술한 72비트 DDR4 컨트롤러 중 64bit는 데이터 전송에 사용되고, 8bit는 ECC검증에 사용된다. 또한, 각 그룹의 상기 저장유닛에서 DDR4-3200 입자를 채용하는 경우, 데이터 전송의 이론 대역폭은 25600MB/s에 도달할 수 있다고 이해할 수 있다.
일 실시예에서, 각 그룹의 상기 저장유닛은 복수의 병렬로 배치한 2배 속도 동기적 다이나믹 랜덤 메모리를 포함한다. DDR은 한 클록 주기 내에 데이터를 2회 전송할 수 있다. 상기 칩에 DDR을 제어하는 컨트롤러를 배치하여 각 상기 저장유닛의 데이터 전송과 데이터 저장의 제어한다.
상기 인터페이스 장치는 상기 인공지능 칩과 전기적으로 연결된다. 상기 인터페이스 장치는 상기 인공지능 칩과 외부기기(예를 들어 서버 또는 컴퓨터) 사이의 데이터 전송을 실현하는 데 사용된다. 예를 들어 일 실시예에서, 상기 인터페이스 장치는 표준 PCIE 인터페이스일 수 있다. 예를 들어, 처리될 데이터는 서버에서 표준 PCIE 인터페이스를 통해 상기 칩에 전달되어 데이터 이전을 실현한다. 바람직하게, PCIE 3.0 X 16 인터페이스를 채용하여 전송하는 경우, 이론 대역폭은 16000MB/s에 달할 수도 있다. 다른 하나의 실시예에서, 상기 인터페이스 장치는 다른 인터페이스일 수도 있고, 본 발명은 상술한 다른 인터페이스의 구체적인 표현형식을 한정하지 않으며, 상기 인터페이스 유닛은 이전기능을 실현하면 된다. 또한, 상기 인공지능 칩의 계산결과는 여전히 상기 인터페이스 장치에 의해 외부기기(예를 들어 서버)로 다시 전송된다.
상기 제어 디바이스는 상기 인공지능 칩과 전기적으로 연결된다. 상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다. 구체적으로, 상기 인공지능 칩은 SPI 인터페이스를 통해 상기 제어 디바이스와 전기적으로 연결될 수 있다. 상기 제어 디바이스는 단일 칩 마이크로 컴퓨터(Micro Controller Unit, MCU)를 포함할 수 있다. 상기와 같이 인공지능 칩은 복수의 처리 칩, 복수의 처리 코아 또는 복수의 처리회로를 포함하여 복수의 부하를 구동할 수 있다. 따라서, 상기 인공지능 칩은 다부하와 경부하 등 상이한 동작상태에 있을 수 있다. 상기 제어장치를 통해 상기 인공지능 칩 중 복수의 처리 칩, 복수의 처리 코아 또는 복수의 처리회로의 동작상태의 조정 및 제어를 실현할 수 있다.
가능한 실현방식에서, 상술한 인공지능 칩을 포함한 전자기기를 개시한다. 전자기기는 데이터 처리장치, 로봇, 컴퓨터, 프린터, 스캐너, 태블릿, 스마트 단말, 휴대전화, 드라이브 레코더, 네비게이션 장치, 센서, 카메라, 서버, 클라우드 서버, 카메라, 비디오 카메라, 프로젝터, 손목 시계, 헤드폰, 모바일 스토리지, 웨어러블 디바이스, 교통수단, 가전제품, 및/또는 의료기기를 포함한다.
상기 교통수단은 항공기, 선박 및/또는 차량을 포함하며; 상기 가전제품은 텔레비전, 에어컨, 전자렌지, 냉장고, 전기밥솥, 가습기, 세탁기, 전등, 가스 버너, 레인지 푸드를 포함하고; 상기 의료기기는 핵자기 공명 장치, B-초음파진단 장치 및/또는 심전계를 포함한다.
전술한 내용은 다음 조항에 따라 더 잘 이해할 수 있다.
A1.데이터 비트폭을 조정하기 위한 방법에 있어서,
양자화 대상 데이터에 대해 양자화 처리를 수행하기 위한 상기 양자화 대상 데이터의 상기 양자화 처리 후 양자화 된 데이터의 비트폭을 나타내는 데이터 비트폭을 회득하는 것;
상기 데이터 비트폭에 기초하여 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 수행하여 상기 1그룹의 양자화 대상 데이터를 상기 데이터 비트폭을 갖는 1그룹의 양자화 된 데이터로 변환하는 것;
상기 1그룹의 양자화 대상 데이터와 상기 1그룹의 양자화 된 데이터를 비교하여 상기 데이터 비트폭과 관련된 양자화 오차를 확정하는 것; 및
확정된 상기 양자화 오차에 근거하여 상기 데이터 비트폭을 조정하는 것을 포함하는 것을 특징으로 한다.
A2.조항A1에 따른 방법에 있어서, 상기 1그룹의 양자화 대상 데이터와 상기 1그룹의 양자화 된 데이터를 비교하여 상기 데이터 비트폭과 관련된 양자화 오차를 확정하는 것은,
상기 데이터 비트폭에 근거하여 양자화 간격을 확정하는 것; 및
상기 양자화 간격, 상기 1그룹의 양자화 된 데이터 및 상기 1그룹의 양자화 대상 데이터에 근거하여 상기 양자화 오차를 확정하는 것을 포함하는 것을 특징으로 한다.
A3.조항A2에 따른 방법에 있어서, 상기 양자화 간격, 상기 1그룹의 양자화 된 데이터 및 상기 1그룹의 양자화 대상 데이터에 근거하여 상기 양자화 오차를 확정하는 것은,
상기 양자화 간격에 근거하여, 상기 1그룹의 양자화 된 데이터를 역 양자화하여 1그룹의 역 양자화 데이터를 획득하며, 여기에서 상기 1그룹의 역 양자화 데이터의 데이터 형식은 상기 1그룹의 양자화 대상 데이터의 데이터 형식과 같은 것; 및
상기 1그룹의 역 양자화 데이터와 상기 1그룹의 양자화 대상 데이터에 근거하여 양자화 오차를 확정하는 것을 포함하는 것을 특징으로 한다.
A4.조항A1 내지 A3중의 어느 한 항에 따른 방법에 있어서, 확정된 상기 양자화 오차에 근거하여 상기 데이터 비트폭을 조정하는 것은,
제1 한계 값과 제2 한계 값 중의 적어도 하나를 포함하는 미리 설정된 한계 값과 상기 양자화 오차를 비교하는 것; 및
상기 비교의 결과에 근거하여 상기 데이터 비트폭을 조정하는 것을 포함하는 것을 특징으로 한다.
A5.조항A4에 따른 방법에 있어서, 상기 비교의 결과에 근거하여 상기 데이터 비트폭을 조정하는 것은,
상기 양자화 오차가 제1 한계 값 이상임을 확정하는 것에 응답하여 상기 데이터 비트폭을 증가하는 것을 포함하는 것을 특징으로 한다.
A6.조항A5에 따른 방법에 있어서, 상기 데이터 비트폭을 증가하는 것은,
제1 미리 설정된 비트폭 스텝에 근거하여 상기 데이터 비트폭을 증가하여 조정 후 데이터 비트폭을 확정하는 것을 포함하는 것을 특징으로 한다.
A7.조항A6에 따른 방법에 있어서, 진일보로,
상기 조정 후 데이터 비트폭에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하여 상기 1그룹의 양자화 대상 데이터를 상기 조정 후 데이터 비트폭을 갖는 다른 그룹의 양자화 된 데이터로 변환하는 것; 및
상기 1그룹의 양자화 대상 데이터와 상기 다른 그룹의 양자화 된 데이터를 비교하여 상기 다른 하나의 양자화 오차가 상기 제1 미리 설정된 한계 값보다 작을 때까지 상기 조정 후 데이터 비트폭과 관련되는 다른 하나의 양자화 오차를 확정하는 것을 포함하는 것을 특징으로 한다.
A8.조항A7에 따른 방법에 있어서, 상기 방법은 반복적으로 실행되는 것을 특징으로 한다.
A9.조항A4에 따른 방법에 있어서, 상기 비교의 결과에 근거하여 상기 데이터 비트폭을 조정하는 것은:
상기 양자화 오차 상기 제2 한계 값 이하임을 확정하는 것에 응답하여 상기 데이터 비트폭을 감소하는 것을 포함하는 것을 특징으로 한다.
A10.조항A9에 따른 방법에 있어서, 상기 데이터 비트폭을 감소하는 것은,
제2 미리 설정된 비트폭 스텝에 근거하여 상기 데이터 비트폭을 감소하여 조정 후 데이터 비트폭을 확정하는 것을 포함하는 것을 특징으로 한다.
A11.조항A10에 따른 방법에 있어서, 진일보로,
상기 조정 후 데이터 비트폭에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하여 상기 1그룹의 양자화 대상 데이터를 상기 조정 후 데이터 비트폭을 갖는 다른 그룹의 양자화 된 데이터로 변환하는 것; 및
상기 1그룹의 양자화 대상 데이터와 상기 다른 그룹의 양자화 된 데이터에 근거하여, 상기 다른 하나의 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 상기 조정 후 데이터 비트폭과 관련된 다른 하나의 양자화 오차를 확정하는 것을 포함하는 것을 특징으로 한다.
A12.조항A11에 따른 방법에 있어서, 상기 방법은 반복적으로 실행되는 것을 특징으로 한다.
A13.조항A4에 따른 방법에 있어서, 상기 비교의 결과에 근거하여 상기 데이터 비트폭을 조정하는 것은,
상기 양자화 오차가 상기 제1 한계 값과 상기 제2 한계 값 사이에 있음을 확정한 것에 응답하여 상기 데이터 비트폭을 유지하는 것을 포함하는 것을 특징으로 한다.
A14.조항A1 내지 A13중의 어느 한 항에 따른 방법에 있어서, 진일보로,
상기 1그룹의 양자화 대상 데이터와 상기 조정 후 데이터 비트폭에 근거하여 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하기 위한 양자화 파라미터를 업데이트하는 것; 및
업데이트된 상기 양자화 파라미터에 근거하여 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하는 것을 포함하는 것을 특징으로 한다.
A15.조항A1에 따른 방법에 있어서, 진일보로,
양자화 대상 데이터의 데이터 변동폭을 획득하는 것; 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 데이터 비트폭을 조정하는 것을 포함하며, 상기 목표반복간격은 적어도 1회 반복을 포함하는 것을 특징으로 한다.
A16.조항A15에 따른 방법에 있어서, 상기 양자화 대상 데이터의 데이터 변동폭을 획득하는 것은,
점 위치의 변동폭을 획득하는 것을 포함하며, 여기에서 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용되고, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있는 것을 특징으로 한다.
A17.조항A16에 따른 방법에 있어서, 상기 점 위치의 변동폭을 획득하는 것은,
현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정하며, 여기에서, 상기 전회 검사 반복은 상기 목표반복간격 전의 전회 반복간격에 대응하는 검사 반복인 것;
상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하며; 여기에서, 상기 현재 검사 반복에 대응하는 점 위치는 상기 현재 검사 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 의해 확정된 것; 및
상기 제1 균치와 상기 제2 균치에 근거하여 상기 점 위치의 변동폭을 특성화하기 위한 제1 오차를 확정하는 것을 포함하는 것을 특징으로 한다.
A18.조항A15에 따른 방법에 있어서, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하는 것은,
상기 제1 오차에 근거하여 상기 목표반복간격을 확정하는 것을 포함하며, 상기 목표반복간격은 상기 제1 오차와 부의 상관이 있는 것을 특징으로 한다.
A19.조항A15에 따른 방법에 있어서, 상기 양자화 대상 데이터의 데이터 변동폭을 획득하는 것은 진일보로,
상기 데이터 비트폭의 변화추세를 획득하는 것; 및
상기 점 위치의 변동폭과 상기 데이터 비트폭의 변화추세에 근거하여 상기 양자화 대상 데이터의 데이터 변동폭을 확정하는 것을 포함하는 것을 특징으로 한다.
A20.조항A19에 따른 방법에 있어서, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하는 것은 진일보로,
획득한 점 위치의 변동폭을 특성화하기 위한 제1 오차와 데이터 비트폭의 변화추세를 특성화하기 위한제2 오차에 근거하여 상기 목표반복간격을 확정하는 것을 포함하는 것을 특징으로 한다.
A21.조항A20에 따른 방법에 있어서, 획득한 상기 제1 오차와 상기 제2 오차에 근거하여 상기 목표반복간격을 확정하는 것은,
상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 하는 것; 및
상기 목표오차에 근거하여 상기 목표반복간격을 확정하는 것을 포함하며, 여기에서, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있는 것을 특징으로 한다.
A22.조항A20또는 A21에 따른 방법에 있어서, 상기 제2 오차는 양자화 오차에 의해 확정되고;
여기에서, 상기 양자화 오차는 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 의해 확정되며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있는 것을 특징으로 한다.
A23.조항A15 내지 A22 중의 어느 한 항에 따른 방법에 있어서, 상기 방법은 신경망의 훈련 또는 미조정에 적용되며, 상기 방법은 진일보로,
상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하며, 상기 목표반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 더 포함을 포함하는 것을 특징으로 한다.
A24.조항A23에 따른 방법에 있어서, 상기 방법은 진일보로,
상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 포함하는 것을 특징으로 한다.
A25.조항A23또는 A24에 따른 방법에 있어서, 상기 방법은 진일보로,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 포함하며 ;
여기에서, 상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 큰 것을 특징으로 한다.
A26.조항A25에 따른 방법에 있어서, 상기 방법은 진일보로,
상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면, 상기 현재 검사 반복이 제2 미리 설정된 반복 이상임을 확정하는 것을 포함하는 것을 특징으로 한다.
A27, 조항A25에 따른 방법에 있어서, 상기 방법은 진일보로,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 또 제2 오차가 미리 설정된 오차 값보다 큰 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 하는 것을 포함하는 것을 특징으로 한다.
A28.데이터 비트폭을 조정하는 장치에 있어서,
양자화 대상 데이터에 대해 양자화 처리를 수행하기 위한 상기 양자화 대상 데이터의 상기 양자화 처리 후 양자화 된 데이터의 비트폭을 나타내는 데이터 비트폭을 회득하기 위한 획득모듈;
상기 데이터 비트폭에 기초하여 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 수행하여 상기 1그룹의 양자화 대상 데이터를 상기 데이터 비트폭을 갖는 1그룹의 양자화 된 데이터로 변환하기 위한 양자화 모듈;
상기 1그룹의 양자화 대상 데이터와 상기 1그룹의 양자화 된 데이터를 비교하여 상기 데이터 비트폭과 관련된 양자화 오차를 확정하기 위한 확정모듈; 및
확정된 상기 양자화 오차에 근거하여 상기 데이터 비트폭을 조정하기 위한 조정모듈을 포함하는 것을 특징으로 한다.
A29.조항A28에 따른 장치에 있어서, 상기 비교모듈은,
상기 데이터 비트폭에 근거하여 양자화 간격을 확정하기 위한 간격확정모듈, 및
상기 양자화 간격, 상기 1그룹의 양자화 된 데이터 및 상기 1그룹의 양자화 대상 데이터에 근거하여 상기 양자화 오차를 확정하기 위한 오차 확정모듈을 포함하는 것을 특징으로 한다.
A30.조항A29에 따른 장치에 있어서, 상기 오차 확정모듈은,
상기 양자화 간격에 근거하여 상기 1그룹의 양자화 된 데이터에 대해 역 양자화를 수행하여 1그룹의 역 양자화 데이터를 획득하는 데 사용되고, 상기 1그룹의 역 양자화 데이터의 데이터 형식이 상기 1그룹의 양자화 대상 데이터의 데이터 형식과 같은 양자화 모듈, 및
상기 1그룹의 역 양자화 데이터와 상기 1그룹의 양자화 대상 데이터에 근거하여 양자화 오차를 확정하기 위한 양자화 오차 확정모듈을 포함하는 것을 특징으로 한다.
A31.조항A28 내지 A30 중의 어느 한 항에 따른 장치에 있어서, 상기 조정모듈은,
제1 한계 값과 제2 한계 값 중의 적어도 하나를 포함하는 미리 설정된 한계 값과 상기 양자화 오차를 비교하기 위한 비교모듈, 및
상기 비교의 결과에 근거하여 상기 데이터 비트폭을 조정하기 위한 비트폭 조정모듈을 포함하는 것을 특징으로 한다.
A32.조항A31에 따른 장치에 있어서, 상기 비트폭 조정모듈은,
상기 양자화 오차가 제1 한계 값 이상임의 확정에 응답하여 상기 데이터 비트폭을 증가하기 위한 증가모듈을 포함하는 것을 특징으로 한다.
A33.조항A32에 따른 장치에 있어서, 상기 증가모듈은,
제1 미리 설정된 비트폭 스텝에 근거하여 상기 데이터 비트폭을 증가시켜 조정 후 데이터 비트폭을 확정하기 위한 스텝 증가모듈을 포함하는 것을 특징으로 한다.
A34.조항A33에 따른 장치에 있어서,
상기 양자화 모듈은 진일보로 상기 조정 후 데이터 비트폭에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하여 상기 1그룹의 양자화 대상 데이터를 다른 1그룹의 양자화 된 데이터로 변환하는 데 사용되며, 상기 다른 1그룹의 양자화 된 데이터는 상기 조정 후 데이터 비트폭을 가지며; 및
상기 확정모듈은 진일보로 상기 1그룹의 양자화 대상 데이터와 상기 다른 1그룹의 양자화 된 데이터를 비교하여, 다른 하나의 양자화 오차가 상기 제1 미리 설정된 한계 값보다 작을 때까지 상기 조정 후 데이터 비트폭과 관련되는 다른 하나의 양자화 오차를 확정하는 데 사용되는 것을 특징으로 한다.
A35.조항A34에 따른 장치에 있어서, 상기 장치는 반복적으로 호출되는 것을 특징으로 한다.
A36.조항A31에 따른 장치에 있어서, 상기 조정모듈은,
상기 양자화 오차가 상기 제2 한계 값 이하임을 확정하는 것에 응답하여 상기 데이터 비트폭을 감소시키기 위한 감소모듈을 포함하는 것을 특징으로 한다.
A37.조항A36에 따른 장치에 있어서, 상기 감소모듈은,
제2 미리 설정된 비트폭 스텝에 근거하여 상기 데이터 비트폭을 감소하여 조정 후 데이터 비트폭을 확정하기 위한 스텝 감소모듈을 포함하는 것을 특징으로 한다.
A38.조항A37에 따른 장치에 있어서,
상기 양자화 모듈은 진일보로 상기 조정 후 데이터 비트폭에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하여 상기 1그룹의 양자화 대상 데이터를 다른 1그룹의 양자화 된 데이터로 변환하는 데 사용되며, 상기 다른 1그룹의 양자화 된 데이터는 상기 조정 후 데이터 비트폭을 가지며; 및
상기 확정모듈은 진일보로 상기 1그룹의 양자화 대상 데이터와 상기 다른 1그룹의 양자화 된 데이터에 근거하여, 다른 하나의 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 상기 조정 후 데이터 비트폭과 관련되는 다른 하나의 양자화 오차를 확정하는 데 사용되는 것을 특징으로 한다.
A39.조항A38에 따른 장치에 있어서, 상기 장치는 반복적으로 호출되는 것을 특징으로 한다.
A40.조항A31에 따른 장치에 있어서, 상기 조정모듈은,
상기 양자화 오차가 상기 제1 한계 값과 상기 제2 한계 값 사이에 있음을 확정하는 것에 응답하여 상기 데이터 비트폭을 유지하기 위한 유지모듈을 포함하는 것을 특징으로 한다.
A41.조항A28 내지 A40 중의 어느 한 항에 따른 장치에 있어서, 진일보로,
상기 1그룹의 양자화 대상 데이터와 상기 조정 후 데이터 비트폭에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하기 위한 양자화 파라미터를 업데이트하기 위한 업데이트모듈, 및
진일보로 업데이트한 상기 양자화 파라미터에 근거하여, 상기 1그룹의 양자화 대상 데이터에 대해 양자화 처리를 실행하기 위한 상기 양자화 모듈을 포함하는 것을 특징으로 한다.
A42.조항A28에 따른 장치에 있어서, 진일보로,
양자화 대상 데이터의 데이터 변동폭을 획득하기 위한 변동폭 모듈; 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 데이터 비트폭을 조정하기 위한 간격모듈을 포함하며, 상기 목표반복간격은 적어도 1회 반복을 포함하는 것을 특징으로 한다.
A43.조항A42에 따른 장치에 있어서, 상기 변동폭 모듈은,
점 위치의 변동폭을 획득하기 위한 점 위치 모듈을 포함하며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용되며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있는 것을 특징으로 한다.
A44.조항A43에 따른 장치에 있어서, 상기 점 위치모듈은,
현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정하는 데 사용되며, 상기 전회 검사 반복이 상기 목표반복간격 전의 이전 반복간격에 대응하는 검사 반복인 제1 균치모듈;
상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 데 사용되며; 상기 현재 검사 반복에 대응하는 점 위치가 상기 현재 검사 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 의해 확정되는 제2 균치모듈;
상기 제1 균치와 상기 제2 균치에 근거하여 상기 점 위치의 변동폭을 특성화하기 위한 제1 오차를 확정하기 위한 제1 오차모듈을 포함하는 것을 특징으로 한다.
A45.조항A42에 따른 장치에 있어서, 상기 간격모듈은,
상기 제1 오차에 근거하여 상기 목표반복간격을 확정하기 위한 제1 간격모듈을 포함하며, 상기 목표반복간격은 상기 제1 오차와 부의 상관이 있는 것을 특징으로 한다.
A46.조항A42에 따른 장치에 있어서, 상기 변동폭 모듈은 진일보로,
상기 데이터 비트폭의 변화추세를 획득하기 위한 추세모듈; 및
상기 점 위치의 변동폭과 상기 데이터 비트폭의 변화추세에 근거하여 상기 양자화 대상 데이터의 데이터 변동폭을 확정하기 위한 데이터 변동폭 모듈을 포함하는 것을 특징으로 한다.
A47.조항A46에 따른 장치에 있어서, 상기 간격모듈은 진일보로,
획득한 제1 오차와 제2 오차에 근거하여 상기 목표반복간격을 확정하기 위한 반복간격모듈을 포함하며; 상기 제1 오차는 점 위치의 변동폭을 특성화하는 데 사용되고, 상기 제2 오차는 데이터 비트폭의 변화추세를 특성화하는 데 사용되는 것을 특징으로 한다.
A48.조항A47에 따른 장치에 있어서, 상기 반복간격모듈은,
상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 하기 위한 목표오차모듈;
상기 목표오차에 근거하여 상기 목표반복간격을 확정하기 위한 목표반복간격모듈을 포함하며, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있는 것을 특징으로 한다.
A49.조항A47 또는 A48에 따른 장치에 있어서, 상기 제2 오차는 양자화 오차에 의해 확정되고;
여기에서, 상기 양자화 오차는 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 의해 확정되며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있는 것을 특징으로 한다.
A50.조항A42 내지 A49 중의 어느 한 항에 따른 장치에 있어서, 상기 장치는 신경망의 훈련 또는 미조정에 사용되며, 상기 장치는 진일보로,
상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하고, 상기 목표반복간격에 근거하여 상기 양자화 파라미터를 조정하기 위한 제1 반복모듈을 포함하는 것을 특징으로 한다.
A51.조항A50에 따른 장치에 있어서, 상기 장치는 진일보로,
상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하기 위한 제2 반복모듈을 포함하는 것을 특징으로 한다.
A52.조항A50 또는 A51에 따른 장치에 있어서, 상기 장치는 진일보로,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하기 위한 제3 반복모듈을 포함하며 ;
여기에서, 상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 큰 것을 특징으로 한다.
A53.조항A52에 따른 장치에 있어서, 상기 장치는 진일보로,
상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면 상기 현재 검사 반복이 제2 미리 설정된 반복 이상임을 확정하기 위한 수렴모듈을 포함하는 것을 특징으로 한다.
A54, 조항A52에 따른 장치에 있어서, 상기 장치는 진일보로,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 또 제2 오차가 미리 설정된 오차 값보다 큰 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 하는 것을 특징으로 한다.
A55.컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장매체에 있어서, 상기 프로그램은 실행시에 조항A1-A27 중의 어느 한 항에 따른 방법을 실현하는 것을 특징으로 한다.
A56.조항A28 내지 A54 중의 어느 한 항에 따른 데이터를 처리하기 위한 장치를 포함하는 것을 특징으로 하는 인공지능 칩.
A57.조항56에 따른 인공지능 칩을 포함하는 것을 특징으로 하는 전자기기.
A58.메모리 디바이스, 인터페이스 장치와 제어 디바이스 및 조항56에 따른 인공지능 칩을 포함하는 것을 특징으로 하는 보드 카드에 있어서;
그 중, 상기 인공지능 칩은 상기 메모리 디바이스, 상기 제어 디바이스 및 상기 인터페이스 장치와 연결되고;
상기 메모리 디바이스는 데이터를 저장하는 데 사용되고;
상기 인터페이스 장치는 상기 인공지능 칩과 외부기기 사이의 데이터 전송을 실현하는 데 사용되며,
상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용되는 것을 특징으로 한다.
A59.조항A58에 따른 보드 카드에 있어서,
상기 메모리 디바이스는 복수 그룹의 저장유닛을 포함하며, 각 그룹의 저장유닛은 버스를 통해 상기 인공지능 칩과 연결되고, 상기 저장유닛은 DDR SDRAM이며;
상기 칩은 각 상기 저장유닛의 데이터 전송과 데이터 저장을 제어하기 위한 DDR 컨트롤러를 포함하며;
상기 인터페이스 장치는 표준 PCIE 인터페이스인 것을 특징으로 한다.
신경망의 양자화 문제를 해결하기 위해, 다음과 같은 방안(201910505239.7)을 제안 하였다. 구체적으로는, 신경망의 양자화방법과 장치 및 관련제품을 제공하였다.
본 발명은 인공지능 기술분야에 관한 것이며, 특히 신경망의 양자화방법과 장치 및 관련제품에 관한 것이다.
인공지능 기술의 지속적인 발전에 따라 그 응용분야는 점점 넓어져, 화상식별, 음성식별, 자연언어 처리 등 분야에서 잘 응용되고 있다. 그러나, 인공지능 알고리즘의 복잡성이 증가함에 따라 처리 해야할 데이터 량과 데이터 차원이 지속적으로 증가하고 있으며, 인공지능 분야에서 연산효율과 연산결과의 정확도 간의 균형을 맞추는 방법이 시급히 해결해야할 문제이다.
이를 고려하여, 본 발명은 신경망 양자화 기술방안을 제안한다.
본 발명의 일 측면에 따르면, 신경망의 양자화방법을 제공하는 바, 상기 신경망에서 임의의 한 층의 양자화 대상 층에 대하여, 상기 방법은,
상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하며, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함하는 것; 및
대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 하는 것을 포함한다.
본 발명의 다른 측면에 따르면, 신경망 양자화장치를 제공하는 바, 상기 장치는 상기 신경망에서 임의의 한 층의 양자화 대상 층을 양자화하는 데 적용되며, 상기 장치는,
상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하는 데 사용되고, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함하는 양자화 파라미터 확정모듈; 및
대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 하기 위한 양자화 모듈을 포함한다.
본 발명의 다른 측면에 따르면, 인공지능 칩을 제공하는 바, 상기 칩은 상술한 신경망 양자화장치를 포함한다.
본 발명의 다른 측면에 따르면, 전자기기를 제공하는 바, 상기 전자기기는 상술한 바와 같은 인공지능 칩을 포함한다.
본 발명의 다른 측면에 따르면, 보드 카드를 제공하는 바, 상기 보드 카드는 메모리 디바이스, 인터페이스 장치와 제어 디바이스 및 상술한 바와 같은 인공지능 칩을 포함하며; 여기에서, 상기 인공지능 칩은 상기 메모리 디바이스, 상기 제어 디바이스 및 상기 인터페이스 장치와 각각 연결되고; 상기 메모리 디바이스는 데이터를 저장하는 데 사용되고; 상기 인터페이스 장치는 상기 인공지능 칩과 외부기기 사이의 데이터 전송을 실현하는 데 사용되며; 상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다.
본 발명 실시예에서, 상기 신경망에서 임의의 한 층의 양자화 대상 층에 대하여, 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하며, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함하고; 대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 한다. 각 층양자화 대상 데이터에 적합한 양자화 파라미터를 채용하여 각 양자화 대상 층을 양자화하는 것에 의해, 각 층의 연산결과의 정밀도를 보장한다는 전제하에서 각 층의 연산효율을 향상시킬 수 있다. 또한 신경망 전체의 연산결과의 정밀도를 보장한다는 전제하에서 신경망 전체의 연산효율을 향상시킬 수 있다.
첨부된 도면을 참조하여 예시적인 실시예에 대한 다음의 상세한 설명에 따르면, 본 발명의 다른 특징 및 측면이 명확해 질 것이다.
명세서에 포함되고 명세서의 일부를 구성하는 도면은 명세서와 함께 본 발명의 예시적인 실시예, 특징 및 측면을 예시하며, 본 발명의 원리를 설명하기 위해 사용된다.
도13은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도14는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도15은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도16는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도17는 본 발명 실시예에 따른 신경망의 양자화방법 중 양자화 파라미터가 오프셋을 포함하지 않을 때 양자화 전후의 데이터를 나타내는 대응 모식도이다.
도18은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도19은 본 발명 실시예에 따른 신경망의 양자화방법 중 양자화 파라미터가 오프셋을 포함할 때 양자화 전후의 데이터를 나타내는 대응 모식도이다.
도20은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도21는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도22은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도23은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도24는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도25은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도26는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도27는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도28은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도29은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도30은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도31는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도32은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도33은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도34는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도35은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도36는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도37는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다.
도38은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도39은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도40은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도41은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도42은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다.
도43은 본 발명 실시예에 따른 보드 카드를 나타내는 구조 블록도이다.
신경망의 양자화 문제를 해결하기 위해, 다음과 같은 방안(201910505239.7)을 제안하였다. 이하, 본 발명 실시예에 따른 도면을 참조하여 본 발명 실시예에 따른 기술방안을 명확하고 완전하게 설명한다. 물론, 설명되는 실시예는 본 발명의 일부 실시예이고, 모든 실시예가 아니다. 본 발명의 실시예를 기반으로, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 창조적인 노력 없이 획득한 모든 다른 실시예는 모두 본 발명의 보호범위에 속한다.
또한, 본 발명의 청구항, 명세서 및 도면 중의 "제1", "제2", "제3 " 및 "제4" 등 용어는 특정 순서를 설명하기보다는 다를 대상을 구별하는 데 사용된다는 것을 이해해야 한다. 본 발명의 명세서와 청구범위에서 사용한 “포함한다” 및 “가진다” 등 용어는 설명하는 특징, 전체, 단계, 작업, 요소 및/또는 컴포넌트의 존재를 나타내지만, 하나 또는 복수의 다른 특징, 전체, 단계, 작업, 요소, 컴포넌트 및/또는 이들 컬렉션의 존재 또는 추가를 배제하지 않는다.
여기에서 본 발명 명세서에서 사용한 용어는 특정 실시예를 설명할 목적 뿐이며, 본 발명을 한정하는 것을 의도하지 않는 것도 이해해야 한다. 본 발명 명세서 및 청구범위에서 사용된 바와 같이, 문매이 다른 상황을 명확히 명시하지 않는 한, 단수 형식의 “하나”, “한 개” 및 “당해”는 복수 형식을 포함하도록 의도된다. 또한, 본 발명 명세서 및 청구범위에서 사용한 “및/또는 ” 용어는 관련하여 열거한 항목 중의 하나 또는 복수의 의 임의의 조합 및 모든 가능한 조합을 의미하며, 또한 이들 조합을 포함하는 것이 이해되어야 한다.
여기에서 "예시적"이라는 전용 단어는 "예, 실시예 또는 설명성"으로서 사용되는 것을 의미한다. 여기에서 "예시적"으로 설명한 임의의 실시예는 다른 실시예보다 우수하거나 더 나은 것으로 해석될 필요는 없다.
또한, 본 발명을 더 잘 설명하기 위해, 이하 구체적인 실시예에서 많은 구체적인 세부사항이 제공된다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 특정한 세부사항 없이도 본 발명는 동일하게 실시 가능한 것을 이해해야 한다. 일부 예에서, 본 발명의 요지를 강조하기 위해 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 숙지하고 있는 방법, 수단, 소자 및 회로에 대하여 상세하게 설명되지 않고 있다.
신경망에서 연산되는 데이터는 일반적으로 부동 소수점 데이터 형식 또는 정밀도가 높은 고정 소수점 데이터 형식이며, 신경망을 탑재한 칩에서 신경망을 실행하면, 부동 소수점 데이터 형식 또는 정밀도가 높은 고정 소수점 데이터 형식의 각종 연산되는 데이터는, 신경망 운영의 연산량과 액세스 오버 헤드가 상대거으로 크다. 연산효율을 높이기 위해, 신경망의 연산 대상 데이터를 양자화할 수 있으며, 양자화 후의 데이터 형식은 일반적으로 비트폭이 짧고, 정밀도가 낮은 고정 소수점 데이터 형식이다. 정밀도가 낮은 양자화 된 데이터를 이용하여 신경망의 연산을 실행하면, 연산량과 액세스 얄을 저감할 수 있다. 양자화 후의 데이터 형식은 비트폭이 비교적 짧은 고정 소수점 데이터 형식일 수 있다. 부동 소수점 데이터 형식의 연산 대상 데이터를 고정 소수점 데이터 형식의 연산 대상 데이터로 양자화할 수 있고, 정밀도가 높은 고정 소수점 형식의 연산 대상 데이터를 정밀도가 낮은 고정 소수점 형식의 연산 대상 데이터로 양자화할 수도 있다.
또한, 양자화 정밀도 즉 양자화 된 데이터는 양자화 전 데이터와의 오차 크기를 의미함을 이해할 수 있다. 양자화 정밀도는 신경망 연산결과의 정확도에 영향을 줄 수 있다. 양자화 정밀도가 높을 수록 연산결과의 정밀도가 높게 되지만, 연산량이 더 커지고, 액세스 오버 헤드도 더 커진다. 비트폭이 짧은 양자화 된 데이터에 비해 비트폭이 긴 양자화 된 데이터의 양자화 정밀도가 보다 높으며, 신경망을 실행하기 위한 연산시의 정밀도도 보다 높아진다. 그러나 신경망의 연산에 이용할 때, 비트폭이 긴 양자화 된 데이터 연산량이 더 크고, 액세스 오버 헤드도 크며, 연산효율이 비교적 낮다. 마찬가지로, 동일한 양자화 대상 데이터에 대하여, 상이한 양자화 파라미터를 채용하여 얻은 양자화 된 데이터는 상이한 양자화 정밀도를 가지며, 상이한 양자화 결과가 생성되어, 연산효율과 연산결과의 정밀도에도 다른 영향을 준다. 신경망을 양자화하여 연산효율과 연산결과의 정밀도 간의 균형을 맞추기 위해 연산 대상 데이터의 데이터 특징에 더 적합한 양자화 된 데이터 비트폭과 양자화 파라미터를 채용할 수 있다.
신경망에서의 연산 대상 데이터는 가중치, 뉴런, 바이어스, 그래디언트를 포함할 수 있다. 종래의 신경망에서의 연산 대상 데이터에 대해 양자화를 수행할 때, 일반적으로 신경망 전체에 대하여 동일한 양자화 파라미터를 설정한다. 예를 들어, 신경망에는 4개의 컨벌루션 층과 2개의 완전연결층이 포함되고, 연산 대상 데이터가 뉴런(일반적으로 입력 뉴런)이면, 신경망의 양자화를 위해 일련의 양자화 파라미터 A를 설정할 수 있으며, 양자화 파라미터 A를 이용하여 4개의 컨벌루션 층과 2개의 완전연결층의 뉴런에 대해 양자화를 수행할 수 있다. 신경망 각 층의 뉴런이 다르기 때문에 각 층에서 사용되는 알고리즘도 다르며, 동일한 양자화 파라미터를 이용하여 각 층에 대해 양자화를 수행하는 경우, 양자화 파라미터는 각 층의 뉴런의 특징에 적을할 수 없으므로 신경망의 전체 양자화 정밀도가 낮게 되어, 연산결과의 정밀도가 낮다. 또한, 신경망에 대해 일련의 양자화 파라미터를 설정할 때, 연산결과의 정밀도를 고려하여 양자화 정밀도를 높이기 위해 일련의 비트폭이 긴 양자화 후 비트폭을 설정하면, 신경망의 연산효율이 저하된다. 따라서, 종래의 신경망의 양자화방법은 양자화 정밀도의 향상과 연산효율 향상 사이의 효과적인 균형을 잡을 수 없었다.
도13은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 당해 신경망의 양자화방법은 범용 프로세서(예를 들어 중앙처리장치 CPU, 그래픽처리장치 GPU)와 전용 프로세서(예를 들어 인공지능 프로세서, 과학적 계산 프로세서 또는 디지털 신호 프로세서 등 )에 응용할 수 있으며, 본 발명에서는 신경망의 양자화방법에서 응용하는 프로세서의 유형을 제한하지 않는다.
도13에 도시된 바와 같이, 상기 신경망에서 임의의 한 층의 양자화 대상 층에 대하여, 상기 신경망의 양자화방법은 다음과 같은 단계를 포함한다.
단계(S10), 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하며, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함한다.
신경망에서 양자화 대상 층은 신경망 중 임의의 한 층일 수 있다. 요구사항에 근거하여 신경망 중의 일부 층 또는 전체 층을 양자화 대상 층으로 확정할 수 있다. 신경망에 복수의 양자화 대상 층이 포함될 때, 각 양자화 대상 층은 연속적일 수도 있고, 불연속적일 수도 있다. 신경망의 다름에 따라 양자화 대상 층의 종류도 다를 수 있다. 예를 들어 양자화 대상 층은 컨벌루션 층, 완전연결층 등일 수 있으며, 본 발명은 양자화 대상 층의 수 및 유형에 대하여 한정하지 않는다.
가능한 실현방식에서, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중의 적어도 한 가지를 포함한다.
양자화 대상 층의 연산을 실행하기 위한 연산 데이터는 뉴런, 가중치, 바이어스 및 그래디언트를 포함할 수 있다. 요구사항에 따라 양자화 대상 층의 뉴런, 가중치, 바이어스, 그래디언트 중의 적어도 한 가지를 양자화 대상 데이터로 할 수 있다. 양자화 대상 층에 여러 가지 양자화 대상 데이터가 있을 때, 각 종류의 양자화 대상 데이터에 대하여 본 발명에서의 양자화방법을 채용하여 양자화한 후, 각 종류의 양자화 대상 데이터에 대응하는 양자화 데이터을 얻으며, 각종 양자화 데이터와 양자화할 필요가 없는 연산 데이터를 이용하여 양자화 대상 층의 연산을 실행할 수 있다. 진일보로, 요구사항에 따라 양자화 대상 층 중 각종 연산 데이터 중의 전부 데이터 또는 부분 데이터를 양자화 대상 데이터로 확정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
신경망 연산의 추론단계는 태스크 설정을 완료하기 위해 훈련된 신경망을 전방 연산하는 단계를 포함할 수 있다. 신경망의 추론단계에서, 뉴런, 가중치, 바이어스 및 그래디언트 중의 적어도 한 가지를 양자화 대상 데이터로 하고, 본 발명 실시예에서의 방법에 따라 양자화한 후, 양자화 후의 데이터를 이용하여 양자화 대상 층의 연산을 완료할 수 있다.
신경망 연산의 미조정단계는 훈련된 신경망을 미리 설정된 수반복의 전방 연산과 역방향 연산하여 파라미터의 미조정을 하며 설정 태스크에 적응하게 하는 단계를 포함할 수 있다. 신경망 연산의 미조정 단계에서, 뉴런, 가중치, 바이어스, 그래디언트 중의 적어도 한 가지를 본 발명 실시예에서의 방법에 따라 양자화한 후, 양자화 후의 데이터를 이용하여 양자화 대상 층의 전방 연산 또는 역방향 연산을 완료할 수 있다.
신경망 연산의 훈련단계는 초기화의 신경망을 반복훈련하여 훈련된 신경망을 얻는 단계를 포함할 수 있으며, 훈련된 신경망은 특정 태스크를 실행할 수 있다. 신경망의 훈련단계에서, 뉴런, 가중치, 바이어스, 그래디언트 중의 적어도 한 가지를 본 발명 실시예에서의 방법에 따라 양자화한 후, 양자화 후의 데이터를 이용하여 양자화 대상 층의 전방 연산 또는 역방향 연산을 완료할 수 있다.
양자화 대상 층에 대응하는 양자화 파라미터는 하나의 양자화 파라미터일 수 있고, 복수의 양자화 파라미터일 수도 있다.
양자화 파라미터는 점 위치 등 양자화 대상 데이터에 대해 양자화를 수행하기 위한 파라미터을 포함할 수 있다. 점 위치는 양자화 된 데이터에서 소수점의 위치를 확정하는 데 사용될 수 있다. 양자화 파라미터는 스케일 팩터, 오프셋 등을 포함할 수 있다. 신경망에 복수의 양자화 대상 층이 포함될 때, 각 양자화 대상 층은 모두 대응하는 양자화 파라미터를 가질 수 있고, 각 양자화 대상 층에 대응하는 양자화 파라미터는 다를 수도 같을 수도 있으며, 본 발명은 이에 대해 한정하지 않는다.
양자화 대상 층 중 상이한 양자화 대상 데이터에 대하여, 상이한 양자화 파라미터가 대응할 수 있다. 예를 들어, 양자화 대상 층1의 뉴런이 양자화 파라미터1에 대응하고, 양자화 대상 층1의 가중치는 양자화 파라미터2에 대응할 수 있다. 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정하는 방식은, 미리 설정한 양자화 파라미터를 검색하여 직접 양자화 파라미터를 확정하는 방식, 대응관계를 검색하여 양자화 파라미터를 확정하는 방식, 또는 양자화 대상 데이터에 근거하여 계산하여 양자화 파라미터를 얻는 방식을 포함할 수있다. 예를 들어,
신경망에서의 양자화 대상 층에 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 설정할 수 있다. 설정된 양자화 파라미터를 설정한 저장공간에 저장할 수 있다. 설정한 저장공간은 온칩 또는 오프 칩의 저장공간일 수 있다. 예를 들어, 설정된 양자화 파라미터를 층 식별로 구별하여 설정한 저장공간에 저장할 수 있다. 각 양자화 대상 층은 양자화할 때 설정한 저장공간에서 대응하는 양자화 파라미터를 추출한 후 양자화를 수행할 수 있다. 경험 값에 의해 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 설정할 수 있다. 요구사항에 근거하여 설정된 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 업데이트할 수도 있다. 예를 들어 이전 층의 양자화 파라미터에 근거하여 다음 층의 양자화 파라미터를 업데이트할 수 있다.
각 양자화 대상 층 중의 양자화 대상 데이터의 데이터 특징 또는 양자화 대상 층의 층 특징에 근거하여, 데이터 특징과 양자화 파라미터의 대응관계를 검색, 또는 층 특징과 양자화 파라미터의 대응관계를 검색함으로써 양자화 파라미터를 확정할 수 있다. 예를 들어, 양자화 대상 데이터의 데이터 분포가 희박하고 조밀할 때 각각 다른 양자화 파라미터에 대응할 수 있다. 대응관계를 검색함으로써 양자화 대상 데이터의 데이터 분포에 대응하는 양자화 파라미터를 확정할 수 있다. 또한, 양자화 대상 층이 컨벌루션 층 또는 완전연결층일 때 각각 다른 양자화 파라미터에 대응하게 할 수 있으며, 양자화 대상 층이 컨벌루션 층인 경우 컨벌루션 층에 대응하는 양자화 파라미터를 검색할 수 있다.
각 양자화 대상 층 중의 양자화 대상 데이터에 근거하여 설정한 양자화 파라미터 계산방법에 따라, 각 양자화 대상 층에 대응하는 양자화 파라미터를 계산하여 얻을 수도 있다. 예를 들어, 양자화 대상 데이터의 절대치 최대 값과 미리 설정한 데이터 비트폭에 근거하여, 정수 올림 알고리즘을 이용하여 계산을 통해 양자화 파라미터 중의 점 위치를 얻을 수 있다.
단계(S20), 대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 한다.
설정한 양자화 알고리즘을 이용하여, 양자화 파라미터에 근거하여 양자화 대상 데이터을 양자화하여 양자화 데이터을 얻을 수 있다. 예를 들어, 정수 올림 알고리즘을 양자화 알고리즘으로 이용할 수있고, 데이터 비트폭과 점 위치에 근거하여 양자화 대상 데이터에 대해 정수 올림 양자화하여 양자화 데이터를 얻을 수 있다. 여기에서, 정수 올림 알고리즘은 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 및 반올림 정수 올림 등을 포함할 수 있다. 본 발명은 양자화 알고리즘의 구체적 실현방식에 대해 한정하지 않는다.
신경망에 복수의 양자화 대상 층이 있는 경우, 각 양자화 대상 층 중의 각 종류의 양자화 대상 데이터는 각각 대응하는 양자화 파라미터를 채용하여 양자화할 수 있다. 각 양자화 대상 데이터에 대응하는 양자화 파라미터가 각 양자화 대상 데이터 자체 특징에 더 적합하기 때문에, 각 양자화 대상 층의 각 종류의 양자화 데이터의 양자화 정밀도는 본 층의 연산 요구사항에 더 부합된다. 본 층 연산결과 정밀도를 보장한다는 전제하에서, 본 층의 연산효율을 향상시킬 수 있으며, 본 층의 연산효율과 연산결과 정밀도 사이의 균형을 이룰 수 있다. 전체 신경망에 대해, 각 양자화 대상 층의 연산결과의 정밀도와 연산효율 사이의 균형을 실현하면, 신경망 전체의 연산결과의 정밀도와 연산효율 사이의 균형도 실현하게 된다.
신경망의 추론, 훈련 및 미조정과정에서, 목표데이터에 대해 오프라인 양자화 또는 온라인 양자화를 수행할 수 있다. 여기에서, 오프라인 양자화는 양자화 파라미터를 이용하여 양자화 대상 데이터를 오프라인 처리하는 것일 수 있다. 온라인 양자화는 양자화 파라미터를 이용하여 양자화 대상 데이터를 온라인 처리하는 것일 수 있다. 예를 들어, 신경망이 인공지능 칩에서 가동되고, 양자화 대상 데이터와 양자화 파라미터를 인공지능 칩 외의 연산장치에 송신하여 오프라인 양자화하거나, 또는 인공지능 칩 외의 연산장치를 이용하여 미리 획득한 양자화 대상 데이터와 양자화 파라미터를 오프라인 양자화할 수 있다. 한편, 인공지능 칩이 신경망을 가동하는 과정에서, 인공지능 칩은 양자화 파라미터를 이용하여 양자화 대상 데이터에 대해 온라인 양자화할 수 있다. 신경망에 복수의 양자화 대상 층이 포함되는 경우, 각 양자화 대상 층은 각각 온라인 양자화와 오프라인 양자화를 수행할 수 있다. 본 발명에서는 각 양자화 대상 층의 양자화 과정이 온라인일지 오프라인일지에 대하여 한정하지 않는다.
본 실시예에서, 상기 신경망에서 임의의 한 층의 양자화 대상 층에 대하여, 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하며, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함한다. 대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 한다. 각 층 양자화 대상 데이터에 적합한 양자화 파라미터를 채용하여 각 양자화 대상 층을 양자화하는 것에 의해, 각 층의 연산결과 정밀도를 보장한다는 전제하에서 각 층의 연산효율을 향상시킬 수 있다. 신경망 전체의 연산결과 정밀도를 보장한다는 전제하에서 신경망 전체의 연산효율을 향상시킬 수도 있다.
가능한 실현방식에서, 상기 양자화 파라미터는 점 위치, 스케일 팩터 및 오프셋 중의 적어도 한 가지를 포함한다. 여기에서, 상기 점 위치는 양자화 후 소수점의 위치이고, 상기 스케일 팩터는 양자화 된 데이터의 최대 값과 양자화 대상 데이터의 최대 절대치 사이의 비율이며, 상기 오프셋은 양자화 대상 데이터의 중간 값이다.
가능한 실현방식에서, 양자화 파라미터는 점 위치를 포함할 수 있다. 다음과 같은 수학식 (1)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00560
를 얻을 수 있다.
Figure pat00561
수학식(1)
여기에서, s는 점 위치이고,
Figure pat00562
는 양자화 데이터이며,
Figure pat00563
는 양자화 대상 데이터이고,
Figure pat00564
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(1)중의 반올림의 정수연산을 바꿀 수 있다. 이해할 수 있은 것은, 데이터 비트폭이 일정한 경우, 점 위치에 근거하여 양자화하여 얻은 양자화 데이터에서, 소수점 뒤의 비트 수가 많으면 많을 수록 양자화 데이터의 양자화 정밀도가 높아진다.
가능한 실현방식에서, 양자화 파라미터는 스케일 팩터를 포함할 수 있다. 다음과 같은 수학식 (2)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00565
를 얻을 수 있다.
Figure pat00566
수학식(2)
여기에서,
Figure pat00567
는 스케일 팩터이고,
Figure pat00568
는 양자화 데이터이며,
Figure pat00569
는 양자화 대상 데이터이고,
Figure pat00570
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(2) 중의 반올림의 정수연산을 바꿀 수 있다. 이해할 수 있은 것은, 데이터 비트폭이 일정한 경우, 상이한 스케일 팩터를 채용하면 양자화 된 데이터의 수치범위를 조정할 수 있다.
가능한 실현방식에서, 양자화 파라미터는 오프셋을 포함할 수 있다. 다음과 같은 수학식 (3)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00571
를 얻을 수 있다.
Figure pat00572
수학식(3)
여기에서,
Figure pat00573
는 오프셋이소,
Figure pat00574
는 양자화 데이터이며,
Figure pat00575
는 양자화 대상 데이터이고,
Figure pat00576
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(3) 중의 반올림의 정수연산을 바꿀 수 있다. 이해할 수 있은 것은, 데이터 비트폭이 일정한 경우, 서로 다른 오프셋을 채용하여 양자화 된 데이터의 수치와 양자화 전의 데이터 사이의 오프셋을 조정할 수 있다.
가능한 실현방식에서, 양자화 파라미터는 점 위치와 스케일 팩터를 포함할 수 있다. 다음과 같은 수학식 (4)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00577
를 얻을 수 있다.
Figure pat00578
수학식(4)
여기에서, s는 점 위치이고,
Figure pat00579
는 스케일 팩터이며,
Figure pat00580
는 양자화 데이터이고,
Figure pat00581
는 양자화 대상 데이터이며,
Figure pat00582
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(4) 중의 반올림의 정수연산을 바꿀 수 있다.
가능한 실현방식에서, 양자화 파라미터는 점 위치와 오프셋을 포함할 수 있다. 다음과 같은 수학식 (5)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00583
를 얻을 수 있다.
Figure pat00584
수학식(5)
여기에서, s는 점 위치이고,
Figure pat00585
는 양자화 데이터이고,
Figure pat00586
는 양자화 대상 데이터이며,
Figure pat00587
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(5) 중의 반올림의 정수연산을 바꿀 수 있다.
가능한 실현방식에서, 양자화 파라미터는 점 위치, 스케일 팩터 및 오프셋을 포함할 수 있다. 다음과 같은 수학식 (6)을 이용하여 양자화 대상 데이터를 양자화하여 양자화 데이터
Figure pat00588
를 얻을 수 있다.
Figure pat00589
수학식(6)
여기에서, s는 점 위치이고,
Figure pat00590
는 스케일 팩터이며,
Figure pat00591
는 양자화 데이터이며,
Figure pat00592
는 양자화 대상 데이터이고,
Figure pat00593
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(6)중의 반올림의 정수연산을 바꿀 수 있다.
본 실시예에서, 양자화 파라미터는 점 위치, 스케일 팩터 및 오프셋 중의 적어도 한 가지를 포함한다. 상이한 양자화 파라미터의 조합을 채용하여 양자화 대상 데이터를 양자화하면 상이한 정밀도의 양자화결과를 생성할 수 있다. 요구사항에 따라 양자화 파라미터를 유연히 조합한 후 수요에 따라 사용할 수 있다.
도14는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도14에 도시된 바와 같이, 상기 신경망의 양자화방법 중의 단계(S10)는 다음과 같은 단계를 포함한다.
단계(S11), 양자화 대상 데이터와 양자화 파라미터의 대응관계를 검색하여 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정한다.
가능한 실현방식에서, 각 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터는, 보존한 미리 설정된 값일 수 있다. 신경망을 위해 하나의 양자화 대상 데이터와 양자화 파라미터 사이의 대응관계를 확립할 수 있으며, 당해 대응관계는 각 양자화 대상 층의 각 종류의 양자화 대상 데이터와 양자화 파라미터의 대응관계일 수 있고, 대응관계를 각 층에서 공유 액세스 가능한 저장공간에 보존할 수 있다. 신경망을 위해 복수의 양자화 대상 데이터와 양자화 파라미터 사이의 대응관계를 확립하고, 각 양자화 대상 층은 각각 그 중의 하나의 대응관계에 대응할 수 있다. 각 층의 대응관계를 본 층에서 독점하는 저장공간에 보존할 수 있으며, 각 층의 대응관계를 각 층에서 공유 액세스가 가능한 저장공간에 보존할 수도 있다.
양자화 대상 데이터와 양자화 파라미터 대응관계에서, 복수의 양자화 대상 데이터와 그에 대응하는 복수의 양자화 파라미터 사이의 대응관계를 포함할 수 있다. 예를 들어, 양자화 대상 데이터와 양자화 파라미터 대응관계A에서, 양자화 대상 층1의 뉴런과 가중치 둘의 양자화 대상 데이터를 포함할 수 있으며, 뉴런은 점 위치1, 스케일 팩터1 및 오프셋1의 3개의 양자화 파라미터에 대응되며, 가중치는 점 위치2와 오프셋2의 2개의 양자화 파라미터에 대응된다. 본 발명은 양자화 대상 데이터와 양자화 파라미터의 대응관계의 구체적 형식에 대해 한정하지 않는다.
본 실시예에서, 양자화 대상 데이터와 양자화 파라미터의 대응관계를 검색하여 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정할 수 있다 . 각 양자화 대상 층에 대응하는 양자화 파라미터를 미리 설정하고, 대응관계를 통해 저장한 후, 양자화 대상 층이 검색 후에 사용하도록 할 수 있다. 본 실시예에서 양자화 파라미터의 획득방식은 간단하고 편리하다.
도15은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도15에 도시된 바와 같이, 상기 신경망의 양자화방법 중의 단계(S10)는 다음과 같은 단계를 포함한다.
단계(S12), 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는다.
각 양자화 대상 데이터에 대응하는 데이터 비트폭 n을 미리 설정할 수 있다. 데이터 비트폭 n과 각 양자화 대상 데이터에 근거하여 계산을 통해 각 양자화 대상 데이터에 대응하는 양자화 파라미터를 얻을 수 있다. 양자화 대상 데이터 자체에 근거하여 계산을 통해 얻은 양자화 파라미터는, 양자화 대상 데이터 자체의 특징에 더욱 부합된다.
신경망의 추론, 훈련 및 미조정과정에서, 양자화 대상 데이터는 뉴런, 가중치, 바이어스 중의 적어도 한 가지일 수 있다. 훈련 및 미조정과정에 대하여, 양자화 대상 데이터는 그래디언트를 포함할 수 있다. 신경망의 추론, 훈련 및 미조정과정에서, 온라인으로 획득한 각 양자화 대상 데이터와 이에 대응하는 데이터 비트폭에 근거하여, 각 양자화 대상 데이터에 대응하는 양자화 파라미터를 계산할 수 있다.
본 실시예에서, 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는다 . 온라인 양자화 대상 데이터에 근거하여 계산을 통해 얻은 양자화 파라미터는, 신경망 양자화 대상 층 중 각종 양자화 대상 데이터 자체의 양자화 요구사항에 더 적합할 수 있다.
도16는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도16에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S12)는 다음과 같은 단계를 포함한다.
단계(S121), 상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터 중의 절대치 최대 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터의 점 위치를 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
가능한 실현방식에서, 양자화 파라미터는 복수의 파라미터를 포함할 수 있으며, 양자화 파라미터가 오프셋을 포함하지 않는 경우, 양자화 파라미터는 점 위치와 스케일 팩터 중의 적어도 한 가지를 포함할 수 있다. 양자화 파라미터가 오프셋을 포함하지 않는 경우, 임의의 양자화 대상 데이터를 목표 데이터로 할 수 있다. 목표데이터는 뉴런, 가중치, 바이어스 및 그래디언트 중 임의의 한 가지일 수 있다.
목표데이터는 복수의 요소로 구성된 데이터를 포함할 수 있다. 목표데이터의 각 요소에서 최대 값과 최소 값을 확정하고, 최대 값의 절대치와 최소 값의 절대치에 근거하여 목표데이터 중의 절대치 최대 값을 얻을 수 있다. 목표데이터 중 각 요소의 절대치를 확정하고, 각 요소의 절대치에 근거하여 목표데이터 중의 절대치 최대 값을 얻을 수도 있다.
도17는 본 발명 실시예에 따른 신경망의 양자화방법 중 양자화 파라미터가 오프셋을 포함하지 않을 때 양자화 전후의 데이터를 나타내는 대응 모식도이다. 도17에 도시된 바와 같이, Z1은 목표데이터 중의 절대치 최대 값이고, 목표데이터에 대응하는 데이터 비트폭 n은 8이며, A는 데이터 비트폭 n로 목표데이터를 양자화한 후 표현할 수 있는 최대 값, 즉
Figure pat00594
이다. A는 Z1를 포함할 필요가 있고, 또 Z1
Figure pat00595
보다 커야 하며, 수학식 (7)로 제약할 수 있다.
Figure pat00596
수학식(7)
목표데이터 중의 절대치 최대 값과 데이터 비트폭에 근거하여 계산을 통해 목표데이터의 점 위치를 얻을 수 있다. 예를 들어, 다음과 같은 수학식(8)을 이용하여 계산을 통해 양자화 파라미터가 오프셋을 포함하지 않는 경우, 목표데이터의 점 위치s는 다음과 같다.
Figure pat00597
수학식(8)
여기에서, ceil은 정수로 올림이고, Z1은 목표데이터 중의 절대치 최대 값이며, s는 점 위치이고, n은 목표데이터에 대응하는 데이터 비트폭이다.
본 실시예에서, 상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터 중의 절대치 최대 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터의 점 위치를 얻는다. 목표데이터에 근거하여 계산을 통해 이에 대응하는 점 위치를 얻으면, 목표데이터 자체의 특징에 보다 부합되게 할 수 있어 목표데이터의 양자화 정밀도를 보다 높게 할 수 있다.
도18은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도18에 도시된 바와 같이, 상기 신경망의 양자화방법 중 단계(S12)는 다음과 같은 단계를 포함한다.
단계(S122), 상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
단계(S123), 목표데이터 중의 절대치 최대 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는다.
목표데이터 중의 절대치 최대 값은 상술한 실시예에서의 관련설명을 참조하면 된다.
수학식(9)를 이용하여 계산을 통해 얻은 양자화 파라미터가 오프셋을 포함하지 않는 겨우, 목표데이터의 스케일 팩터
Figure pat00598
는 다음과 같다.
Figure pat00599
=
Figure pat00600
수학식(9)
여기에서, A는 양자화 파라미터가 오프셋을 포함하지 않는 경우, 목표데이터가 양자화된 후의 데이터의 최대 값은, 수학식(10)을 이용하여 A를 계산할 수 있다.
Figure pat00601
수학식(10)
본 실시예에서, 양자화 파라미터가 오프셋을 포함하지 않는 경우, 목표데이터 중의 절대치 최대 값과 목표데이터에 대응하는 데이터 비트폭에 근거하여 계산을 통해 목표데이터에 대응하는 스케일 팩터를 얻을 수 있다. 목표데이터에 근거하여 계산을 통해 이에 대응하는 스케일 팩터를 얻으며, 목표데이터 자체의 특징에 보다 부합되게 할 수 있어 목표데이터의 양자화 정밀도를 보다 높게 할 수 있다.
도19은 본 발명 실시예에 따른 신경망의 양자화방법 중 양자화 파라미터가 오프셋을 포함할 때 양자화 전후의 데이터를 나타내는 대응 모식도이다. 도19에 도시된 바와 같이, A1과 A2는 n로 목표데이터를 양자화한 후 표현할 수 있는 최대 값과 최소 값이고,
Figure pat00602
은 목표데이터 중 모든 요소의 최소 값이며,
Figure pat00603
는 목표데이터 중 모든 요소의 최대 값, 즉
Figure pat00604
이고, 목표데이터를 오프셋
Figure pat00605
에 따라 평행이동한 후, 또 양자화를 수행할 수 있다.
도20은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도20에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S12)는 다음과 같은 단계를 포함한다.
단계(S124), 상기 양자화 파라미터에 오프셋이 포함된 경우, 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여, 상기 목표데이터의 점 위치를 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
가능한 실현방식에서, 양자화 파라미터가 오프셋을 포함하는 경우, 양자화 파라미터는 점 위치, 스케일 팩터 중의 적어도 한 가지를 포함할 수 있다. 도19에 도시된 바와 같이, 수학식(11)에 따라 계산을 통해 양자화 파라미터가 오프셋을 포함할 때 목표데이터의 점 위치
Figure pat00606
를 얻을 수 있다.
Figure pat00607
수학식(11)
여기에서, ceil은 정수로 올림이고, s는 점 위치이고, n은 목표데이터에 대응하는 데이터 비트폭이다.
본 실시예에서, 양자화 파라미터가 오프셋을 포함하는 경우, 목표데이터 중의 최대 값, 최소 값 및 목표데이터에 대응하는 데이터 비트폭에 근거하여 계산을 통해 목표데이터에 대응하는 점 위치를 얻을 수 있다. 목표데이터에 근거하여 계산을 통해 이에 대응하는 점 위치를 얻으면, 목표데이터 자체의 특징에 보다 부합되게 할 수 있어 목표데이터의 양자화 정밀도를 보다 높게 할 수 있다.
도21는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도21에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S12)는 다음과 같은 단계를 포함한다.
단계(S125), 상기 양자화 파라미터에 오프셋이 포함된 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
단계(S126), 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는다.
가능한 실현방식에서, 양자화 파라미터가 오프셋을 포함하는 경우, 양자화 파라미터는 점 위치, 스케일 팩터 중의 적어도 한 가지를 포함할 수 있다. 도19에 도시된 바와 같이, 수학식(12)에 따라 계산을 통해 양자화 파라미터가 오프셋을 포함할 때 목표데이터의 스케일 팩터
Figure pat00608
를 얻을 수 있다.
Figure pat00609
=
Figure pat00610
수학식(12)
본 실시예에서, 양자화 파라미터가 오프셋을 포함하는 경우, 목표데이터 중의 최대 값, 최소 값 및 목표데이터에 대응하는 데이터 비트폭에 근거하여, 계산을 통해 목표데이터에 대응하는 스케일 팩터를 얻을 수 있다. 목표데이터에 근거하여 계산을 통해 이에 대응하는 스케일 팩터를 얻으며, 목표데이터 자체의 특징에 보다 부합되게 할 수 있어 목표데이터의 양자화 정밀도를 보다 높게 할 수 있다.
도22은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도22에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S12)는 다음과 같은 단계를 포함한다.
단계(S127), 목표데이터 중의 최대 값과 최소 값에 근거하여 상기 목표데이터의 오프셋을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
가능한 실현방식에서, 도19에 도시된 바와 같이, 수학식(13)을 이용하여 양자화 파라미터가 오프셋을 포함할 때 목표데이터의 오프셋
Figure pat00611
를 얻을 수 있다
Figure pat00612
수학식(13)
본 실시예에서, 양자화 파라미터가 오프셋을 포함하는 경우, 목표데이터 중의 최대 값, 최소 값과 목표데이터에 대응하는 데이터 비트폭에 근거하여 계산을 통해 목표데이터에 대응하는 오프셋을 얻을 수 있다. 목표데이터에 근거하여 계산을 통해 이에 대응하는 오프셋을 얻으면, 목표데이터 자체의 특징에 보다 부합되게 할 수 있어 목표데이터의 양자화 정밀도를 보다 높게 할 수 있다.
도23은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도23에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다.
단계(S30), 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 상기 목표데이터의 양자화 오차를 확정하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
목표데이터에 대응하는 양자화 데이터와 목표데이터 사이의 오차에 근거하여 목표데이터의 양자화 오차를 확정할 수 있다. 설정한 오차 계산방법, 예를 들어 표준차 계산방법, 평균제곱근 오차 계산방법 등을 이용하여 목표데이터의 양자화 오차를 계산할 수 있다.
양자화 파라미터에 근거하여 목표데이터에 대응하는 양자화 데이터를 역 양자화한 후에 역 양자화 데이터를 얻으며, 역 양자화 데이터와 목표데이터 사이의 오차에 근거하여, 목표데이터의 양자화 오차를 확정할 수도 있다.
양자화 파라미터가 점 위치를 포함하는 경우, 수학식(14)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00613
를 얻을 수 있다.
Figure pat00614
수학식(14)
여기에서: round는 반올림에 따른 정수연산이고,
Figure pat00615
는 목표데이터의 역 양자화 데이터이고, s는 목표데이터에 대응하는 점 위치이다.
양자화 파라미터가 스케일 팩터를 포함하는 경우, 수학식(15)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00616
: 를 얻을 수 있다.
Figure pat00617
수학식(15)
여기에서:
Figure pat00618
는 반올림에 따른 정수연산이며,
Figure pat00619
는 목표데이터의 역 양자화 데이터이고,
Figure pat00620
는 스케일 팩터이다.
양자화 파라미터가 오프셋을 포함하는 경우, 수학식(16)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00621
를 얻을 수 있다.
Figure pat00622
수학식(16)
여기에서:
Figure pat00623
는 반올림에 따른 정수연산이다.
Figure pat00624
는 목표데이터의 역 양자화 데이터이고,
Figure pat00625
는 스케일 팩터이다.
양자화 파라미터가 점 위치와 스케일 팩터를 포함하는 경우, 수학식(17)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00626
: 를 얻을 수 있다.
Figure pat00627
수학식(17)
양자화 파라미터가 점 위치와 오프셋을 포함하는 경우, 수학식(18)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00628
를 얻을 수 있다.
Figure pat00629
수학식(18)
양자화 파라미터가 스케일 팩터와 오프셋을 포함하는 경우, 수학식(19)에 따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00630
를 얻을 수 있다.
Figure pat00631
수학식(19)
양자화 파라미터가 점 위치, 스케일 팩터, 및 오프셋을 포함하는 경우, 수학식(20)따라 목표데이터의 양자화 데이터를 역 양자화하여 목표데이터의 역 양자화 데이터
Figure pat00632
를 얻을 수 있다.
Figure pat00633
수학식(20)
양자화 간격의 계산에 관한 방법을 통해, 예를 들어, 수학식(21)에 따라 계산하여 목표데이터와 목표데이터에 대응하는 역 양자화 데이터 사이의 오차 diffbit를 얻을 수도 있다.
Figure pat00634
수학식(21)
여기에서, p는 목표데이터 중 각 요소의 수이고, s는 목표데이터의 점 위치이다. A의 값은 양자화 파라미터에 근거하여 확정할 수 있다. 양자화 파라미터가 점 위치 s를 포함하는 경우, A=
Figure pat00635
; 양자화 파라미터가 점 위치 s와 스케일 팩터 f를 포함하는 경우,
Figure pat00636
2개 데이터의 균치 사이의 차이를 계산하는 방법을 통해, 예를 들어 수학식(22)을 통해 계산하여 목표데이터와 목표데이터에 대응하는 역 양자화 데이터 사이의 오차diffbit 를 얻을 수도 있다.
Figure pat00637
수학식(22)
2개 데이터의 차이 사이의 균치를 계산하는 방법을 통해, 예를 들어 수학식(23)을 통해 계산하여 목표데이터와 목표데이터에 대응하는 역 양자화 데이터 사이의 오차를 얻을diffbit: 수도 있다.
Figure pat00638
수학식(23)
단계(S40), 상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻는다.
경험 값에 근거하여 오차 한계 값을 확정할 수 있다. 오차 한계 값은 양자화 오차에 대한 기대 값을 표현하는 데 사용할 수 있다. 양자화 오차가 오차 한계 값 이상인 경우, 목표수에 대응하는 데이터 비트폭을 조정하여 목표데이터에 대응하는 조정 비트폭을 얻을 수 있다. 양자화 정밀도를 향상 또는 저하되게 하기 위해 데이터 비트폭을 더 긴 비트폭 또는 더 짧은 비트폭으로 조정할 수 있다.
허용 가능한 최대 오차에 근거하여 오차 한계 값을 확정할 수 있다, 양자화 오차가 오차 한계 값보다 클 경우, 양자화 정밀도가 기대에 달하지 않은 것을 설명하며, 데이터 비트폭을 더 긴 비트폭으로 조정할 필요가 있다. 비교적 높은 양자화 정밀도에 근거하여 하나의 비교적 작은 오차 한계 값을 확정할 수도 있다, 양자화 오차가 오차 한계 값보다 작은 경우, 양자화 정밀도가 비교적 높은 것을 설명하며, 신경망의 가동효율이 영향을 받으며, 데이터 비트폭을 더 짧은 비트폭으로 적당히 조정하여 양자화 정밀도를 적당히 저하시키고 신경망의 가동효율을 향상시킬 수 있다.
데이터 비트폭을 고정의 비트 스텝에 따라 조정할 수 있고, 양자화 오차와 오차 한계 값 사이의 차이 값의 다름에 따라 가변 조정 스텝에 의해 데이터 비트폭을 조정할 수도 있다. 본 발명은 이에 대해 한정하지 않는다.
단계(S50), 상기 목표데이터에 대응하는 데이터 비트폭을 상기 조정 비트폭으로 업데이트하고, 상기 목표데이터와 상기 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 상기 신경망이 상기 조정 양자화 파라미터에 근거하여 양자화하도록 한다.
조정 비트폭을 확정한 후, 목표데이터에 대응하는 데이터 비트폭을 조정 비트폭으로 업데이트할 수 있다. 예를 들어, 목표데이터의 업데이트 전의 데이터 비트폭이 8비트이고, 조정 비트폭이 12비트이면, 업데이트한 후 목표데이터에 대응하는 데이터 비트폭은 12비트이다. 조정 비트폭과 목표데이터에 근거하여 계산을 통해 목표데이터에 대응하는 조정 양자화 파라미터를 얻을 수 있다 . 양자화 정밀도가 보다 높거나 보다 낮은 양자화 데이터을 얻기 위해, 목표데이터에 대응하는 조정 양자화 파라미터에 근거하여 목표데이터를 다시 양자화하여 양자화 대상 층으로 하여금 양자화 정밀도와 처리효율 사이에서 균형을 이루게 할 수 있다.
신경망의 추론, 훈련 및 미조정과정에서, 각 층 사이의 양자화 대상 데이터는 일정한 관련성을 가진다고 간주할 수 있다. 예를 들어, 각 층의 양자화 대상 데이터 사이의 평균치 사이의 차이가 설정된 균치 한계 값보다 작고, 각 층의 양자화 대상 데이터 사이의 최대 값 사이의 차이 값도 설정된 차이 값 한계 값보다 작은 경우, 양자화 대상 층의 조정 양자화 파라미터를 후속의 하나 또는 복수의 층의 조정 양자화 파라미터로 하여 , 양자화 대상 층의 후속의 하나 또는 복수의 층의 양자화 대상 데이터를 양자화하는 데 사용할 수 있다. 신경망의 훈련 및 미조정과정에서, 양자화 대상 층에서 현재 반복에 의해 얻은 조정 양자화 파라미터를 후속의 반복에서 양자화 대상 층에 대한 양자화에 사용할 수도 있다.
가능한 실현방식에서, 상기 방법은 다음과 같은 단계를 더 포함한다.
상기 양자화 대상 층 다음의 한 층 또는 여러 층에서 상기 양자화 대상 층의 양자화 파라미터를 채용한다.
신경망은 조정 양자화 파라미터에 근거하여 양자화하며, 양자화 대상 층에서만 조정 양자화 파라미터를 이용하여 양자화 대상 데이터를 다시 양자화하는 것을 포함하고, 새로 얻은 양자화 데이터를 양자화 대상 층의 연산에 사용할 수 있다. 양자화 대상 층에서 조정 양자화 파라미터를 사용하여 양자화 대상 데이터를 다시 양자화하는 것이 아니라, 양자화 대상 층의 후속의 하나 또는 복수의 층에서 조정 양자화 파라미터를 사용하여 양자화하는 것, 및/또는 후속의 반복에서 양자화 대상 층에서 조정 양자화 파라미터를 사용하여 양자화하는 것을 포함할 수도 있다. 양자화 대상 층에서 조정 양자화 파라미터를 사용하여 다시 양자화하며, 새로 얻은 양자화 데이터를 양자화 대상 층의 연산에 사용하고, 양자화 대상 층의 후속의 하나 또는 복수의 층에서 조정 양자화 파라미터를 사용하여 양자화하는 것, 및/또는 후속의 반복에서 양자화 대상 층에서 조정 양자화 파라미터를 사용하여 양자화하는 것을 더 포함할 수 있다. 본 발명은 이에 대해 한정하지 않는다.
본 실시예에서, 목표데이터와 목표데이터에 대응하는 양자화 데이터에 근거하여 목표데이터의 양자화 오차를 확정하며, 목표데이터는 임의의 한 가지 양자화 대상 데이터이고; 상기 양자화 오차와 오차 한계 값에 대하여, 목표데이터에 대응하는 데이터 비트폭을 조정하여 목표데이터에 대응하는 조정 비트폭을 얻으며; 목표데이터에 대응하는 데이터 비트폭을 조정 비트폭으로 업데이트하고, 목표데이터와 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 신경망으로 하여금 조정 양자화 파라미터에 근거하여 양자화하게 한다. 목표데이터와 양자화 데이터 사이의 오차에 근거하여 데이터 비트폭을 조정하며, 조정 후의 데이터 비트폭에 근거하여 계산을 통해 조정 양자화 파라미터를 얻는다. 서로 다른 오차 한계 값을 설정하는 것을 통해 서로 다른 조정 양자화 파라미터를 얻을 수 있으며, 양자화 정밀도의 향상이나 가동효율의 향상 등 다양한 양자화 요구사항을 달성할 수 있다. 목표데이터와 목표데이터의 양자화 데이터에 근거하여 계산을 통해 얻은 조정 양자화 파라미터는 , 목표데이터 자체의 데이터 특징에 보다 적합하고, 목표데이터 자체의 요구에 보다 적합한 양자화 결과를 달성하며, 양자화 정밀도와 처리효율 사이가 보다 좋은 균형을 달성하도록 할 수도 있다.
도24는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도24에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S40)는 다음과 같은 단계를 포함한다.
단계(S41), 상기 양자화 오차가 상기 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는다.
허용 가능한 최대 양자화 오차에 근거하여 제1 오차 한계 값을 확정할 수 있다. 양자화 오차를 제1 오차 한계 값과 비교할 수 있다. 양자화 오차가 제1 오차 한계 값보다 클 경우, 양자화 오차가 허용되지 않는 것으로 간주 할 수 있다. 양자화 정밀도를 향상할 필요가 있는 경우, 목표데이터에 대응하는 데이터 비트폭을 증가하는 방식으로 목표데이터의 양자화 정밀도를 향상할 수 있다.
목표데이터에 대응하는 데이터 비트폭을 고정된 조정 스텝에 따라 증가하여 조정 비트폭을 얻을 수 있다. 고정된 조정 스텝은 N비트일 수 있으며, N은 정의 정수이다. 데이터 비트폭을 조정할 때마다 N비트 증가시킬 수 있다 . 매번 증가한 후의 데이터 비트폭=원래 데이터 비트폭+N비트이다.
목표데이터에 대응하는 데이터 비트폭을 가변의 조정 스텝에 따라 증가하여 조정 비트폭을 얻을 수 있다. 예를 들어, 양자화 오차와 오차 한계 값 사이의 차이 값이 제1 한계 값보다 클 경우, 조정 스텝 M1에 따라 데이터 비트폭을 조정할 수 있으며, 양자화 오차와 오차 한계 값 사이의 차이 값이 제1 한계 값보다 작은 경우, 조정 스텝 M2에 따라 데이터 비트폭을 조정할 수 있고, 여기에서, 제1 한계 값은 제2 한계 값보다 크며, M1>M2이다. 필요에 따라 각 가변의 조정 스텝을 확정할 수 있다. 본 발명은 데이터 비트폭의 조정 스텝 및 조정 스텝이 가변인지 여부에 대해 한정하지 않는다.
목표데이터를 조정 비트폭에 따라 계산을 통해 조정 후의 양자화 파라미터를 얻을 수 있다. 조정 후의 양자화 파라미터를 이용하여 목표데이터를 다시 양자화한 다음에 얻은 양자화 데이터는, 조정하기 전의 양자화 파라미터를 이용하여 양자화하여 얻은 양자화 데이터보다도 양자화 정밀도가 높다.
도25은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도25에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다.
단계(S42), 상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산한다.
단계(S43), 상기 조정 후의 양자화 오차와 상기 제1 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산하여 얻은 조정 후의 양자화 오차가 상기 제1 오차 한계 값 이하로 될 때까지 상기 조정 비트폭을 계속 증가한다.
양자화 오차에 근거하여 목표데이터에 대응하는 데이터 비트폭을 증가할 때, 비트폭을 1회 조정한 후 조정 비트폭을 얻으며, 조정 비트폭에 근거하여 계산을 통해 조정 후의 양자화 파라미터를 얻고 , 조정 후의 양자화 파라미터에 근거하여 목표데이터를 양자화하여 조정 후의 양자화 데이터를 얻으며, 또 조정 후의 양자화 데이터와 목표데이터에 근거하여 계산을 통해 목표데이터 조정 후의 양자화 오차를 얻고, 조정 후의 양자화 오차는 여전히 제1 오차 한계 값보다 클 가능성이 있다, 즉 1회 조정된 데이터 비트폭에 따라서는 조정목적을 충족할 수 없는 가능성이 있다 . 조정 후의 양자화 오차가 여전히 제1 오차 한계 값보다 클 때, 조정 후의 데이터 비트폭을 계속 조정할 수 있다, 즉 최종적으로 얻는 조정 비트폭과 목표데이터에 근거하여 얻은 조정 후의 양자화 오차가 제1 오차 한계 값보다 작을 때까지 목표데이터에 대응하는 데이터 비트폭을 여러번 증가한다.
여러번 증가되는 조정 스텝은 고정된 조정 스텝일 수 있고, 가변의 조정 스텝일 수도 있다. 예를 들어, 최종적인 데이터 비트폭=원래 데이터 비트폭+A*N비트이다. 여기에서N은 매번 증가하는 고정된 조정 스텝이고, A는 데이터 비트폭의 증가회수이다. 최종적인 데이터 비트폭=원래 데이터 비트폭+M1+M2+…+Mm이다, 여기에서, M1, M2...Mm은 매번 증가되는 가변의 조정 스텝이다.
본 실시예에서, 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는다. 제1 오차 한계 값과 조정 스텝을 설정하여 데이터 비트폭을 증가함으로써, 조정 후의 데이터 비트폭이 양자화의 요구사항을 충족시킬 수 있도록 할 수 있다. 1회 조정이 조정의 요구사항을 충족시킬 수 없는 경우, 데이터 비트폭에 대하여 여러번 조정할 수도 있다. 제1 오차 한계 값과 조정 스텝의 설정은 양자화 파라미터를 양자화 요구사항에 따라 유연히 조정할 수 있도록 하며, 다양한 양자화 요구사항을 충족시켜 양자화 정밀도를 자체의 데이터 특징에 따라 자기 적응적으로 조정할 수 있도록 한다.
도26는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도26에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S40)는 다음과 같은 단계를 포함한다.
단계(S44), 상기 양자화 오차가 상기 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하며, 상기 제2 오차 한계 값은 상기 제1 오차 한계 값보다 작다.
허용 가능한 양자화 오차와 소망의 신경망의 가동효율에 따라 제2 오차 한계 값을 확정할 수 있다. 양자화 오차를 제2 오차 한계 값과 비교할 수 있다. 양자화 오차가 제2 오차 한계 값보다 작은 경우, 양자화 오차가 기대를 초과한다고 간주할 수 있으나 가동효율이 너무 낮아 이미 허용할 수 없다. 양자화 정밀도를 저하시켜 신경망의 가동효율을 향상시킬 수 있고, 목표데이터에 대응하는 데이터 비트폭을 감소하는 방식을 통해 목표데이터의 양자화 정밀도를 저하시킬 수 있다.
목표데이터에 대응하는 데이터 비트폭을 고정된 조정 스텝에 따라 감소시켜 조정 비트폭을 얻을 수 있다. 고정된 조정 스텝은 N비트일 수 있으며, N은 정의 정수이다. 매번 조정에서 데이터 비트폭은 N비트 감소할 수 있다. 증가 후의 데이터 비트폭=원래 데이터 비트폭-N비트이다.
목표데이터에 대응하는 데이터 비트폭을 가변의 조정 스텝에 따라 감소시켜 조정 비트폭을 얻을 수 있다. 예를 들어, 양자화 오차와 오차 한계 값 사이의 차이 값이 제1 한계 값보다 클 경우, 조정 스텝 M1에 따라 데이터 비트폭을 조정할 수 있으며, 양자화 오차와 오차 한계 값 사이의 차이 값이 제1 한계 값보다 작은 경우, 조정 스텝 M2에 따라 데이터 비트폭을 조정할 수 있고, 여기에서, 제1 한계 값은 제2 한계 값보다 크며, M1>M2이다. 필요에 따라 각 가변의 조정 스텝을 확정할 수 있다. 본 발명은 데이터 비트폭의 조정 스텝 및 조정 스텝이 가변인지 여부에 대해 한정하지 않는다.
목표데이터를 조정 비트폭에 따라 계산을 통해 조정 후의 양자화 파라미터를 얻을 수 있다 , 조정 후의 양자화 파라미터를 이용하여 목표데이터를 다시 양자화한 다음에 얻은 양자화 데이터는, 조정하기 전의 양자화 파라미터를 이용하여 양자화하여 얻은 양자화 데이터보다도 양자화 정밀도가 낮다.
도27는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도27에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다.
단계(S45), 상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산한다.
단계(S46), 상기 조정 후의 양자화 오차와 상기 제2 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산을 통해 얻은 조정 후의 양자화 오차가 상기 제2 오차 한계 값 이상이 될 때까지 상기 조정 비트폭을 계속 감소한다.
양자화 오차에 근거하여 목표데이터에 대응하는 데이터 비트폭을 증가할 때, 비트폭을 1회 조정한 후 조정 비트폭을 얻으며, 조정 비트폭에 근거하여 계산을 통해 조정 후의 양자화 파라미터를 얻고, 조정 후의 양자화 파라미터에 근거하여 목표데이터를 양자화하여 조정 후의 양자화 데이터를 얻으며, 또 조정 후의 양자화 데이터와 목표데이터에 근거하여 계산을 통해 목표데이터 조정 후의 양자화 오차를 얻고, 조정 후의 양자화 오차는 여전히 제2 오차 한계 값보다 작을 가능성이 있다, 즉 1회 조정된 데이터 비트폭에 따라서는 조정목적을 충족할 수 없는 가능성이 있다. 조정 후의 양자화 오차가 여전히 제2 오차 한계 값보다 작은 경우, 조정 후의 데이터 비트폭을 계속 조정할 수 있다, 즉 최종적으로 얻은 조정 비트폭과 목표데이터에 근거하여 얻은 조정 후의 양자화 오차가 제2 오차 한계 값보다 클 때까지 목표데이터에 대응하는 데이터 비트폭를 여러번 감소한다.
여러번 감소하는 조정 스텝은 고정된 조정 스텝일 수 있고, 가변의 조정 스텝일 수도 있다. 예를 들어, 최종적인 데이터 비트폭=원래 데이터 비트폭-A*N비트 , 여기에서N은 매번 증가하는 고정된 조정 스텝이고, A는 데이터 비트폭의 증가회수이다. 최종적인 데이터 비트폭=원래 데이터 비트폭-M1-M2-...-Mm, 여기에서, M1, M2...Mm은 매번 감소하는 가변의 조정 스텝이다.
본 실시예에서, 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는다. 제2 오차 한계 값과 조정 스텝을 설정하여 데이터 비트폭을 감소하는 것을 통해 조정 후의 데이터 비트폭이 양자화의 요구사항을 충족시킬 수 있도록 할 수 있다. 1회 조정이 조정의 요구사항을 충족시킬 수 없는 경우, 데이터 비트폭에 대하여 여러번 조정할 수도 있다. 제2 오차 한계 값과 조정 스텝의 설정은 양자화 파라미터를 양자화 요구사항에 따라 유연히 자기 적응적으로 조정할 수 있도록 하며, 다양한 양자화 요구사항을 충족시켜 양자화 정밀도를 조정 가능하게 하며, 양자화 정밀도와 신경망의 가동효율 사이의 균형을 잡을 수 있도록 한다.
가능한 실현방식에서, 상기 방법은 다음과 같은 단계를 더 포함한다.
상기 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하며, 상기 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는다.
2개의 오차 한계 값을 동시에 설정할 수도 있다. 여기에서, 제1 오차 한계 값은 양자화 정밀도가 지나치게 낮음을 나타내기 위한 것이고, 데이터 비트폭의 비트 수를 증가할 수 있으며, 제2 오차 한계 값은 양자화 정밀도가 지나치게 높음을 나타내기 위한 것이고, 데이터 비트폭의 비트 수를 감소할 수 있다. 제1 오차 한계 값은 제2 오차 한계 값보다도 크며, 목표데이터의 양자화 오차를 2개의 오차 한계 값과 동시에 비교하여, 양자화 오차가 제1 오차 한계 값보다 클 경우, 데이터 비트폭의 비트 수를 증가하고, 양자화 오차가 제2 오차 한계 값보다 작은 경우, 데이터 비트폭의 비트 수를 감소할 수 있다. 양자화 오차가 제1 오차 한계 값과 제2 오차 한계 값 사이에 위치할 때, 데이터 비트폭은 변하지 않도록 유지될 수 있다.
본 실시예에서, 양자화 오차를 제1 오차 한계 값 및 제2 오차 한계 값과 동시에 비교함으로써, 비교결과에 따라 데이터 비트폭을 증가 또는 감소할 수 있고, 제1 오차 한계 값과 제2 오차 한계 값을 이용하여 보다 유연하게 데이터 비트폭을 조정할 수 있다. 따라서 데이터 비트폭의 조정결과를 양자화 수요사하에 보다 적합하게 한다.
도28은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도28에 도시된 바와 같이, 상기 신경망 연산의 미조정단계 및/또는 훈련단계에서, 상기 방법은 다음과 같은 단계를 포함한다.
단계(S60), 현재 반복 및 상기 현재 반복 전의 반복인 이력 반복 중 목표데이터의 데이터 변동폭을 획득한다.
신경망 연산의 미조정단계 및/또는 훈련단계에는 복수의 반복이 포함된다. 신경망 중의 각 양자화 대상 층은, 1회 순방향 연산 및 1회 역방향 연산을 수행하고, 양자화 대상 층의 가중치를 업데이트한 후, 1회 반복을 완료한다. 여러번 반복에서, 양자화 대상 층 중의 목표데이터 및/또는 목표데이터에 대응하는 양자화 데이터의 데이터 변동폭은, 상이한 반복에서 목표데이터 및/또는 양자화 데이터가 동일한 양자화 파라미터를 채용하여 양자화를 수행할 수 있는지 가늠할 수 있다. 현재 반복 및 이력 반복에서 목표데이터의 데이터 변동폭이 작으면, 예를 들어 설정된 변동폭 변동 한계 값보다 작으면, 데이터 변동폭이 상대적으로 작은 복수의 반복에서 동일한 양자화 파라미터를 채용할 수 있다.
미리 저장된 양자화 파라미터를 추출하는 방식을 통해 목표데이터에 대응하는 양자화 파라미터를 확정할 수 있다. 상이한 반복에서 목표데이터를 양자화할 때, 각 반복에서 목표데이터에 대응하는 양자화 파라미터를 추출할 필요가 있다. 복수의 반복의 목표데이터 및/또는 목표데이터에 대응하는 양자화 데이터의 데이터 변동폭이 작으면, 데이터 변동폭 상대적으로 작은 복수의 반복에서 채용한 동일한 양자화 파라미터를 일시적으로 저장할 수 있고, 각 반복은 양자화할 때 일시적으로 저장한 양자화 파라미터를 이용하여 양자화 연산을 수행할 수 있으며, 반복마다 양자화 파라미터를 추출할 필요가 없다.
목표데이터와 데이터 비트폭에 근거하여 계산을 통해 양자화 파라미터을 얻을 수 있다. 상이한 반복에서 목표데이터를 양자화할 때, 각 반복에서 각각 양자화 파라미터를 계산할 필요가 있다. 복수의 반복의 목표데이터 및/또는 목표데이터에 대응하는 양자화 데이터의 데이터 변동폭이 작으면, 데이터 변동폭 작은 복수의 반복에서 채용한 동일한 양자화 파라미터는, 매번 반복마다 양자화 파라미터를 계산하는 것이 아니라, 각 반복에서 모두 첫 번째 반복에서 계산하여 얻은 양자화 파라미터를 직접 사용할 수 있다.
이해할 수 있은 것은, 목표데이터가 가중치인 경우, 각 반복 사이의 가중치는 지속적으로 업데이트되며, 복수의 반복의 가중치의 데이터 변동폭이 작거나, 또는 복수의 반복의 가중치에 대응하는 양자화 데이터의 데이터 변동폭이 작으면, 복수의 반복에서 동일한 양자화 파라미터를 이용하여 가중치를 양자화할 수 있다.
단계(S70), 상기 목표데이터의 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하며, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
목표데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 수 있다. 목표반복간격은 적어도 1회 반복을 포함하며, 목표반복간격 내의 각 반복에서 동일한 양자화 파라미터를 사용할 수 있다. 즉 목표반복간격 내의 각 반복에서 목표데이터의 양자화 파라미터를 다시 업데이트하지 않는다. 신경망은 목표반복간격에 근거하여 목표데이터의 양자화 파라미터를 업데이트하며, 목표반복간격 내에 포함된 반복은, 미리 설정한 양자화 파라미터를 획득하지 않거나 양자화 파라미터를 계산하지 않는다. 즉 목표반복간격 내의 반복양자화 파라미터를 업데이트하지 않는다. 한편, 목표반복간격 외의 반복은, 미리 설정한 양자화 파라미터를 다시 획득하거나 양자화 파라미터를 다시 계산한다. 즉 목표반복간격 외의 반복은 양자화 파라미터를 업데이트한다.
이해할 수 있은 것은, 복수의 반복 사이의 목표데이터 또는 목표데이터의 양자화 데이터의 데이터 변동폭 작을 수록, 확정한 목표반복간격에 포함된 반복회수가 많다. 계산하여 얻은 데이터 변동폭에 근거하여, 미리 설정한 데이터 변동폭과 반복간격의 대응관계를 검색하며, 계산하여 얻은 데이터 변동폭에 대응하는 목표반복간격을 확정할 수 있다. 요구사항에 근거하여 데이터 변동폭과 반복간격의 대응관계를 미리 설정할 수 있다. 계산하여 얻은 데이터 변동폭에 근거하여, 설정한 계산방법을 이용하여 계산을 통해 목표반복간격을 얻을 수 있다. 본 발명은 데이터 변동폭의 계산방식, 및 목표반복간격의 획득방식에 대해서는 한정하지 않는다.
본 실시예에서, 신경망 연산의 미조정단계 및/또는 훈련단계에서, 현재 반복 및 이력 반복에서 목표데이터의 데이터 변동폭을 획득하며, 상기 목표데이터의 데이터 변동폭에 근거하여, 목표데이터에 대응하는 목표반복간격을 확정하며, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 한다. 복수의 반복에서 목표데이터 또는 목표데이터에 대응하는 양자화 데이터의 데이터 변동폭에 근거하여, 목표반복간격을 확정할 수 있다. 신경망은 목표반복간격에 근거하여 양자화 파라미터를 업데이트할지 여부를 확정할 수 있다. 목표반복간격에 포함된 복수의 반복의 데이터 변동폭이 작기 때문에, 목표반복간격 내의 반복은 양자화 파라미터를 업데이트하지 않아도 양자화 정밀도를 보장할 수 있다. 한편, 목표반복간격 내의 복수의 반복양자화 파라미터를 업데이트하지 않으면, 양자화 파라미터의 추출회수 또는 계산회수를 감소하여, 신경망의 연산효율을 향상시킬 수 있다.
도29은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도29에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다.
단계(S80), 상기 목표데이터의 상기 현재 반복에서의 데이터 비트폭에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭을 확정함으로써, 상기 신경망이 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭에 근거하여 양자화 파라미터를 확정하도록 한다.
본 발명의 상술한 실시예에서 설명한 바와 같이, 목표데이터의 양자화 파라미터는 미리 설정할 수도 있고, 목표데이터에 대응하는 데이터 비트폭에 따라 계산하여 얻을 수도 있다. 상이한 양자화 대상 층에서 목표데이터에 대응하는 데이터 비트폭, 또는 동일한 양자화 대상 층에서 목표데이터의 상이한 반복에서 대응하는 데이터 비트폭은, 본 발명 상술한 실시예에서의 방식에 근거하여 자기 적응적으로 조정할 수 있다.
목표데이터의 데이터 비트폭이 자기 적응적으로 조정할 수 없고, 미리 설정한 데이터 비트폭인 경우, 목표데이터의 현재 반복에서 미리 설정된 데이터 비트폭에 근거하여, 목표데이터의 목표반복간격 내 반복에 대응하는 데이터 비트폭을 확정한다. 목표반복간격 내의 각 반복은 자체의 미리 설정된 값을 사용하지 않을 수 있다.
목표데이터의 데이터 비트폭이 자기 적응적으로 조정될 수 있는 경우, 목표데이터의 현재 반복에 대응하는 데이터 비트폭에 근거하여, 목표데이터의 목표반복간격 내 반복에 대응하는 데이터 비트폭을 확정할 수 있다. 데이터 비트폭이 자기 적응적으로 조정할 수 있는 경우, 데이터 비트폭은 1회 조정 또는 여러번 조정을 할 수 있다. 목표데이터의 현재 반복에서 자기 적응적으로 조정한 후의 데이터 비트폭을, 목표반복간격 내의 각 반복에 대응하는 데이터 비트폭으로 하고, 목표반복간격 내의 각 반복에서 다시 데이터 비트폭에 대하여 자기 적응적으로 조정(업데이트)하지 않을 수 있다. 목표데이터는 현재 반복에서 자기 적응적으로 조정한 후의 데이터 비트폭을 사용할 수도 있고, 자기 적응적으로 조정하기 전의 데이터 비트폭을 사용할 수도 있다. 본 발명은 이에 대해 한정하지 않는다.
목표반복간격 이외의 다른 반복에서, 목표데이터의 데이터 변동폭이 설정조건을 충족시키지 않으므로, 본 발명의 상술한 방법에 따라 데이터 비트폭을 자기 적응적으로 조정하여, 현재 반복의 목표데이터에 더 적합한 데이터 비트폭을 얻을 수 있으며, 본 발명에서의 목표반복간격의 계산방법을 사용하여, 계산을 통해 새로운 목표반복간격을 얻어 사용할 수도 있으며, 목표반복간격 이외의 반복의 양자화 정밀도를 보장함과 동시에, 신경망의 가동효율을 향상시킨다.
목표반복간격 내의 각 반복의 데이터 비트폭은 같으며, 각 반복은 동일한 데이터 비트폭에 근거하여 각기 계산하여 대응하는 양자화 파라미터를 얻을 수 있다. 양자화 파라미터는 점 위치, 스케일 팩터 및 오프셋 중의 적어도 한 가지를 포함할 수 있다. 목표반복간격 내의 각 반복에서, 동일한 데이터 비트폭에 근거하여 계산을 통해 양자화 파라미터를 각각 얻을 수 있다. 양자화 파라미터가 점 위치, 스케일 팩터 및 오프셋을 포함할 때, 목표반복간격 내의 각 반복은, 동일한 데이터 비트폭을 이용하여 각기 대응하는 점 위치, 스케일 팩터 및 오프셋을 각각 계산할 수 있다.
현재 반복의 데이터 비트폭에 근거하여, 목표반복간격 내 각 반복의 데이터 비트폭을 확정함과 동시에, 현재 반복의 양자화 파라미터에 근거하여 목표반복간격 내 각 반복의 대응하는 양자화 파라미터를 확정할 수 있다. 목표반복간격 내 각 반복의 양자화 파라미터도 다시 동일한 데이터 비트폭에 근거하여 계산을 통해 얻지 않으며, 진일보로 신경망의 연산효율을 향상시킬 수 있다. 현재 반복의 전부 양자화 파라미터 또는 일부 양자화 파라미터에 근거하여, 목표반복간격 내 각 반복의 대응하는 양자화 파라미터를 확정할 수 있다. 현재 반복의 일부 양자화 파라미터에 근거하여 목표반복간격 내 각 반복의 대응하는 양자화 파라미터를 확정할 때, 나머지 부분의 양자화 파라미터는 목표반복간격 내 각 반복에서 계산되어야 한다.
예를 들어, 양자화 파라미터는 점 위치, 스케일 팩터 및 오프셋을 포함한다. 현재 반복의 데이터 비트폭과 점 위치에 근거하여 목표반복간격 내 각 반복의 데이터 비트폭과 점 위치를 확정할 수 있다. 목표반복간격 내 각 반복의 스케일 팩터와 오프셋은 동일한 데이터 비트폭에 근거하여 계산을 통해 얻는다. 현재 반복의 데이터 비트폭, 점 위치, 스케일 팩터 및 오프셋에 근거하여, 목표반복간격 내 각 반복의 데이터 비트폭, 점 위치, 스케일 팩터 및 오프셋을 확정할 수도 있으며, 목표반복간격 내 각 반복의 각 양자화 파라미터 모두 계산하여 얻을 필요가 없다.
본 실시예에서, 목표데이터의 현재 반복에 대응하는 데이터 비트폭에 근거하여, 목표데이터의 목표반복간격 내 반복에 대응하는 데이터 비트폭을 확정하며, 신경망으로 하며금 목표데이터의 목표반복간격 내의 반복에 대응하는 데이터 비트폭에 근거하여 양자화 파라미터를 확정하도록 한다. 목표반복간격 내의 각 반복의 데이터 비트폭은, 현재 반복의 데이터 비트폭에 의해 확정되며, 목표반복간격 내 각 반복의 목표데이터의 데이터 변화폭이 설정조건을 충족하므로 동일한 데이터 비트폭을 이용하여 계산하여 얻은 양자화 파라미터는 목표반복간격 내의 각 반복의 양자화 정밀도를 보장할 수 있다. 목표반복간격 내 각 반복이 동일한 데이터 비트폭을 사용하면, 신경망의 연산효율을 향상시킬 수도 있다. 신경망을 양자화한 후 연산결과의 정밀도와 신경망의 연산효율 사이에 균형을 이룬다.
도30은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도30에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다.
단계(S90), 상기 목표데이터의 상기 현재 반복에 대응하는 점 위치에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 점 위치를 확정한다.
양자화 파라미터에서, 스케일 팩터와 오프셋에 대하여, 상이한 점 위치가 동일한 목표데이터에 대한 양자화결과에 주는 영향이 크다. 목표데이터의 현재 반복에 대응하는 점 위치에 근거하여 목표반복간격 내의 반복에 대응하는 점 위치를 확정할 수 있다. 데이터 비트폭이 자기 적응적으로 조정할 수 없을 경우, 목표데이터의 현재 반복에서 미리 설정된 점 위치를, 목표데이터의 목표반복간격 내 각 반복에 대응하는 점 위치로 할 수 있다. 또한, 목표데이터의 현재 반복에서 미리 설정한 데이터 비트폭에 근거하여 계산하여 얻은 점 위치를, 목표데이터의 목표반복간격 내 각 반복에 대응하는 점 위치로 할 수 있다. 데이터 비트폭이 자기 적응적으로 조정될 수 있는 경우, 목표데이터의 현재 반복에서 조정된 후의 점 위치를, 목표데이터의 목표반복간격 내 각 반복에 대응하는 점 위치로 할 수 있다.
상기 목표데이터의 상기 현재 반복에 대응하는 점 위치에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 점 위치를 확정함과 동시에, 목표데이터의 현재 반복에 대응하는 스케일 팩터에 근거하여, 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 스케일 팩터를 확정, 및/또는 목표데이터의 현재 반복에 대응하는 오프셋에 근거하여, 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 오프셋을 확정할 수도 있다.
상기 목표데이터의 상기 현재 반복에 대응하는 점 위치에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 점 위치를 확정함과 동시에, 목표데이터의 현재 반복에 대응하는 데이터 비트폭에 근거하여, 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭을 확정할 수도 있다. 여기에서, 목표데이터의 현재 반복에 대응하는 데이터 비트폭은 현재 반복에서 미리 설정된 데이터 비트폭 또는 자기 적응적으로 조정한 후의 데이터 비트폭일 수 있다.
본 실시예에서, 목표데이터의 현재 반복에 대응하는 점 위치에 근거하여 목표데이터의 목표반복간격 내의 반복에 대응하는 점 위치를 확정한다. 목표반복간격 내의 각 반복의 점 위치는 현재 반복의 점 위치에 의해 확정되며, 목표반복간격 내 각 반복의 목표데이터의 데이터 변화폭이 설정조건을 충족시키므로, 동일한 점 위치를 이용하여, 목표반복간격 내의 각 반복의 양자화 정밀도를 보장할 수 있다. 목표반복간격 내 각 반복이 동일한 점 위치를 사용하면 신경망의 연산효율을 향상시킬 수도 있다. 신경망을 양자화한 후 연산결과의 정밀도와 신경망의 연산효율 사이에 균형을 이룬다.
도31는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도31에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S60)는 다음과 같은 단계를 포함한다.
단계(S61), 목표데이터의 현재 반복의 점 위치, 및 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복의 점 위치에 근거하여, 목표데이터의 각 반복간격에 대응하는 점 위치의 이동평균 값을 계산한다.
단계(S62), 상기 목표데이터의 현재 반복의 점 위치의 제1 이동평균 값 및 전회 반복간격에서 대응하는 반복의 점 위치의 제2 이동평균 값에 근거하여 제1 데이터 변동폭을 얻는다.
상기 단계(S70)는 다음과 같은 단계를 포함한다.
단계(S71), 상기 제1 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정하여 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 한다.
가능한 실현방식에서, 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복은 목표반복간격을 계산하는 이력 반복일 수 있다. 현재 반복과 대응하는 목표반복간격 사이의 대응관계는 다음과 같은 것을 포함할 수 있다.
현재 반복부터 시작하여 목표반복간격을 카운트하며, 현재 반복에 대응하는 목표반복간격이 종료한 후 다음 반복부터 다시 목표반복간격을 계산할 수 있다. 예를 들어, 현재 반복이 제100세대이고, 목표반복간격이 3이며, 목표반복간격내의 반복에 제100세대, 제101세대 및 제102세대가 포함되면, 제103세대에서 제103세대와 대응하는 목표반복간격을 계산하고, 103세대를 새로 계산하여 얻은 당해 목표반복간격 내의 첫 번째 반복으로 할 수 있다. 이 때, 현재 반복이 103세대인 경우, 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복은 100세대이다.
현재 반복의 다음 반복부터 시작하여 목표반복간격을 카운트하고, 목표반복간격 내의 마지막 반복부터 시작하여 다시 목표반복간격을 계산할 수 있다. 예를 들어, 현재 반복이 제100세대이고, 목표반복간격이 3이며, 목표반복간격내의 반복에 제101세대, 제102세대 및 제103세대가 포함되면, 제103세대에서 제103세대와 대응하는 목표반복간격을 계산하고, 104세대를 새로 계산하여 얻은 당해 목표반복간격 내의 첫 번째 반복으로 할 수 있다. 이 때, 현재 반복이 103세대인 경우, 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복은 100세대이다.
현재 반복의 다음 반복부터 시작하여 목표반복간격을 카운트하고, 목표반복간격이 종료된 후의 다음 반복부터 시작하여 다시 목표반복간격을 계산한다. 예를 들어, 현재 반복이 제100세대이고, 목표반복간격이 3이며, 목표반복간격내의 반복에 제101세대, 제102세대 및 제103세대가 포함되면, 제104세대에서 제104세대에 대응하는 목표반복간격을 계산하고, 105세대를 새로 계산하여 얻은 당해 목표반복간격 내의 첫 번째 반복으로 할 수 있다. 이 때, 현재 반복이 104세대인 경우, 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복은 100세대이다.
요구사항에 근거하여 현재 반복 및 목표반복간격 사이의 다른 대응관계를 확정할 수 있다. 예를 들어 현재 반복 다음의 N 번째 반복부터 시작하여 목표반복간격을 카운트할 수 있다. N은 1보다 크며, 본 발명은 이에 대해 한정하지 않는다.
이해할 수 있은 것은, 계산하여 얻은 목표데이터는 각 반복간격의 점 위치의 이동평균 값에 대응하며, 목표데이터의 현재 반복의 점 위치의 제1 이동평균 값, 및 목표데이터의 전회 반복간격에서 대응한는 반복의 점 위치의 제2 이동평균 값을 포함한다. 수학식(24)을 이용하여 현재 반복에서 대응하는 점 위치의 제1 이동평균 값
Figure pat00639
를 계산한다.
Figure pat00640
수학식(24)
여기에서, t는 현재 반복이고, t-1은 전회 반복간격에 따라 확정한 이력 반복이며,
Figure pat00641
은 전회 반복간격에 따라 확정한 이력 반복의 제2 이동평균 값이고,
Figure pat00642
는 현재 반복의 점 위치이며,
Figure pat00643
는 제1 파라미터이다. 제1 파라미터는 하이퍼 파라미터일 수 있다.
본 실시예에서, 목표데이터의 현재 반복의 점 위치, 및 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복의 점 위치에 근거하여, 목표데이터의 각 반복간격에 대응하는 점 위치의 이동평균 값을 계산한다. 목표데이터의 현재 반복의 점 위치의 제1 이동평균 값 및 전회 반복간격에 대응하는 반복의 점 위치의 제2 이동평균 값에 근거하여 제1 데이터 변동폭을 얻는다. 제1 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 한다. 제1 데이터 변동폭은 점 위치의 변화추세를 가늠하는 데 사용되며, 목표반복간격을 목표데이터의 점 위치의 변화추세에 따라 변화되게 할 수 있으며, 계산하여 얻은 각 목표반복간격의 크기도 목표데이터의 점 위치의 변화추세에 따라 변화되게 할 수 있다. 양자화 파라미터는 목표반복간격에 근거하여 확정되기 때문에, 양자화 파라미터에 근거하여 양자화하여 얻은 양자화 데이터를 목표데이터의 점 위치의 변동추세에 보다 부합되도록 할 수 있고, 양자화 정밀도를 보장함과 동시에 신경망의 가동효율을 향상시킬 수 있다.
도32은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도32에 도시된 바와 같이, 도시한 신경망의 양자화방법에서 단계(S62)는 다음과 같은 단계를 포함한다.
단계(S621), 상기 제1 이동평균 값과 상기 제2 이동평균 값의 차이 값을 계산한다.
단계(S622), 상기 차이 값의 절대치를 제1 데이터 변동폭으로 확정한다.
수학식(25)를 이용하여 제1 데이터 변동폭
Figure pat00644
을 계산할 수 있다.
Figure pat00645
수학식(25)
제1 데이터 변동폭에 근거하여 목표데이터에 대응하는 목표반복간격을 확정함으로써, 신경망으로 하여금 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 할 수 있다. 수학식(26)에 따라 계산을 통해 목표반복간격
Figure pat00646
을 얻을 수 있다.
Figure pat00647
수학식(26)
여기에서,
Figure pat00648
는 제2 파라미터이고,
Figure pat00649
은 제3 파라미터이다. 제2 파라미터와 제3 파라미터는 하이퍼 파라미터일 수 있다.
이해할 수 있은 것은, 제1 데이터 변동폭은 점 위치의 변화추세를 가늠하는 데 사용될 수 있고, 제1 데이터 변동폭이 클 수록 양자화 데이터의 수치범위변화가 급격함을 의미하며, 양자화 파라미터를 업데이트할 때 간격이 보다 짧은 목표반복간격
Figure pat00650
이 필요하다.
본 실시예에서, 상기 제1 이동평균 값과 상기 제2 이동평균 값의 차이 값을 계산하고; 차이 값의 절대치를 제1 데이터 변동폭으로 확정한다. 이동평균 값 사이의 차이 값에 근거하여 정확한 제1 데이터 변동폭을 얻을 수 있다.
도33은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도33에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다:
단계(S63), 현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 제2 데이터 변동폭을 얻는다.
상기 단계(S70)는 다음과 같은 단계를 포함한다.
단계(S72), 상기 목표데이터의 제1 데이터 변동폭과 상기 제2 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 한다.
현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 제2 데이터 변동폭을 얻을 수 있다. 현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 역 양자화 데이터에 근거하여 제2 데이터 변동폭을 얻을 수 있다.
동일하게, 수학식(23)에 따라 계산하여 현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 역 양자화 데이터 사이의 제2 데이터 변동폭
Figure pat00651
을 얻을 수 있다. 또한 다른 오차의 계산방법을 이용하여 목표데이터와 역 양자화 데이터 사이의 제2 데이터 변동폭
Figure pat00652
을 계산할 수도 있다. 본 발명은 이에 대해 한정하지 않는다.
Figure pat00653
수학식(23)
여기에서,
Figure pat00654
는 목표데이터이고,
Figure pat00655
은 목표데이터에 대응하는 역 양자화 데이터이다. 이해할 수 있은 것은, 제2 데이터 변동폭은 목표데이터에 대응하는 데이터 비트폭의 변화추세를 가늠하는 데 사용될 수 있다. 제2 데이터 변동폭이 크면 클 수록, 목표데이터는 대응하는 데이터 비트폭을 업데이트해야 할 가능성이 있으며, 간격이 보다 짧은 반복으로 업데이트할 필요가 있고, 제2 데이터 변동폭이 크면 클 수록, 목표반복간격이 보다 작을 것이 필요하다.
본 실시예에서, 현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 제2 데이터 변동폭을 얻는다. 상기 목표데이터의 제1 데이터 변동폭과 상기 제2 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 한다. 제2 데이터 변동폭은 데이터 비트폭의 변동 요구사항을 가늠하는 데 사용될 수 있으며, 제1 데이터 변동폭과 제2 데이터 변동폭에 근거하여 계산하여 얻은 목표반복간격은, 동시에 점 위치와 데이터 비트폭의 변동을 추적할 수 있으며, 목표반복간격은 목표데이터 자체의 데이터 양자화 요구사항에 더 잘 부합될 수도 있다.
도34는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도34에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S63)는 다음과 같은 단계를 포함한다.
단계(S631), 현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터사이의 오차를 계산한다.
단계(S632), 상기 오차의 제곱을 상기 제2 데이터 변동폭으로 확정한다.
수학식(27)을 이용하여 계산을 통해 제2 데이터 변동폭
Figure pat00656
을 얻을 수 있다.
Figure pat00657
수학식(27)
여기에서,
Figure pat00658
는 제4 파라미터이고, 제4 파라미터는 하이퍼 파라미터일 수 있다.
이해할 수 있은 것은, 상이한 데이터 비트폭을 이용하여 상이한 양자화 파라미터를 얻을 수 있으며, 진일보로 상이한 양자화 데이터를 얻을 수 있고, 상이한 제2 데이터 변동폭을 생성할 수 있다. 제2 데이터 변동폭은 데이터 비트폭의 변화추세를 가늠하는 데 사용될 수 있고, 제2 데이터 변동폭이 크면 클 수록, 보다 짧은 목표반복간격으로 보다 빈번하게 데이터 비트폭을 업데이트해야함을 의미한다. 즉 목표반복간격은 보다 작을 필요가 있다.
도35은 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도35에 도시된 바와 같이, 상기 단계(S72)는 다음과 같은 단계를 포함한다.
단계(S721), 상기 제1 데이터 변동폭과 상기 제2 데이터 변동폭 중의 최대 값에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정한다.
수학식(28)에 따라 계산하여 목표반복간격을 얻을 수 있다.
Figure pat00659
수학식(28)
여기에서,
Figure pat00660
는 제2 파라미터이고,
Figure pat00661
는 제3 파라미터이다. 제2 파라미터와 제3 파라미터는 하이퍼 파라미터일 수 있다.
이해할 수 있은 것은, 제1 데이터 변동폭과 제2 데이터 변동폭을 이용하여 얻은 목표반복간격은, 데이터 비트폭과 점 위치의 변화추세를 동시에 가늠할 수 있다. 둘 중 하나의 변화추세가 상대적으로 크면, 목표반복간격에 대응하는 변화를 발생시킬 수 있다. 목표반복간격은 데이터 비트폭과 점 위치의 변화를 동시에 추적하고 대응하는 조정을 할 수 있다. 따라서 목표반복간격에 근거하여 업데이트한 양자화 파라미터를 목표데이터의 변동추세에 보다 적합하게 할 수 있고, 최종적으로 양자화 파라미터에 근거하여 얻은 양자화 데이터를 양자화 요구사항에 보다 적합하게 할 수 있다.
도36는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도36에 도시된 바와 같이, 상기 신경망의 양자화방법에서 단계(S60)는 다음과 같은 단계를 포함한다.
단계(S64), 현재 반복이 업데이트 주기 이외에 위치할 때, 현재 반복 및 이력 반복 중 목표데이터의 데이터 변동폭을 획득하며, 상기 업데이트 주기에는 적어도 1회 반복이 포함된다.
신경망 연산의 훈련과정 및/또는 미조정과정에서, 훈련 시작 또는 미조정 시작의 복수의 반복에서, 목표데이터의 변화 폭이 비교적 크다. 훈련 시작 또는 미조정 시작의 복수의 반복에서 목표반복간격을 계산하면, 계산하여 얻은 목표반복간격은 사용의 의미를 잃을 가능성이 있다. 미리 설정한 업데이트 주기에 따라, 업데이트 주기 내의 각 반복에서 목표반복간격을 계산하지 않고, 목표반복간격도 적용하지 않아 복수의 반복에서 동일한 데이터 비트폭 또는 점 위치를 사용하게 할 수 있다.
반복이 업데이트 주기 이외까지 수행되는 경우, 즉 현재 반복이 업데이트 주기 이외에 위치할 때, 현재 반복 및 이력 반복 중 목표데이터의 데이터 변동폭을 획득하고, 상기 목표데이터의 데이터 변동폭에 근거하여, 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 한다. 예를 들어, 미리 설정한 업데이트 주기가 100세대이면, 제1세대부터 시작하여 제100세대까지의 반복에서, 목표반복간격을 계산하지 않는다. 101세대까지 반복하면, 즉 현재 반복이 101세대일 때, 현재 반복은 업데이트 주기 이외에 위치한다. 이 때, 제101세대 및 제1세대 내지 제100세대의 반복에서 목표데이터의 데이터 변동폭에 근거하여, 제101세대의 목표데이터에 대응하는 목표반복간격을 확정하고, 제101세대 또는 제101세대와 미리 설정한 세대수를 사이한 반복에서, 계산하여 얻은 목표반복간격을 사용할 수 있다.
미리 설정한 세대 수부터 시작하여 업데이트 주기를 카운트할 수 있다. 예를 들어, 제1 세대부터 시작하여 업데이트 주기 중 복수의 반복을 카운트할 수 있고, 제N세대부터 시작하여 업데이트 주기 중의 복수의 반복을 카운트할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
본 실시예에서, 반복이 업데이트 주기 이외까지 수행되는 경우 목표반복간격을 계산하여 사용한다. 신경망 연산의 훈련과정 또는 미조정과정의 초기에서, 목표데이터의 변동폭이 비교적 큰 것에 의해 목표반복간격에 사용해도 의미가 크지 않다는 문제를 회피할 수 있고, 목표반복간격을 사용하는 경우에 진일보로 신경망의 가동효율을 향상시킬 수 있다.
도37는 본 발명 실시예에 따른 신경망의 양자화방법을 나타내는 흐름도이다. 도37에 도시된 바와 같이, 상기 신경망의 양자화방법은 다음과 같은 단계를 더 포함한다.
단계(S100), 현재 반복이 미리 설정된 주기 내에 위치할 때, 현재 반복의 상기 미리 설정된 주기의 다음 주기에서 상기 현재 반복에 대응하는 반복 및 현재 반복에 대응하는 반복간격에 근거하여 주기간격을 확정한다.
단계(S110), 상기 목표데이터의 현재 반복에 대응하는 데이터 비트폭에 근거하여 상기 주기간격 내의 반복에서 상기 목표데이터의 데이터 비트폭을 확정한다. 또는
상기 목표데이터의 현재 반복에 대응하는 점 위치에 근거하여 상기 주기간격 내의 반복에서 상기 목표데이터의 점 위치를 확정한다.
신경망 연산의 훈련과정 또는 미조정과정에서, 복수의 주기를 포함할 수 있다. 각 주기에는 복수의 반복이 포함될 수 있다. 신경망 연산에 사용되는 데이터가 한 번의 완전한 연산을 1주기로 한다. 훈련과정에서, 반복의 진행에 따라, 신경망의 가중치 변화는 안정화되고, 훈련이 안정된 후, 뉴런, 가중치, 바이어스 및 그래디언트 등 양자화 대상 데이터들도 모두 안정화되며. 목표데이터가 안정화된 후, 목표데이터의 데이터 비트폭과 양자화 파라미터도 안정화되고. 마찬가지로, 미조정과정에서, 미조정이 안정된 후, 목표데이터의 데이터 비트폭과 양자화 파라미터도 안정화된다.
따라서, 훈련이 안정된 또는 미조정이 안정된 주기에 근거하여 미리 설정된 주기를 확정할 수 있다. 훈련이 안정된 또는 미조정이 안정된 주기가 있는 주기 뒤의 주기를 미리 설정된 주기로 확정할 수 있다. 예를 들어, 훈련이 안정된 주기가 M 번째 주기인 경우, M 번째 주기 뒤의 주기를 미리 설정된 주기로 할 수 있다. 미리 설정된 주기 내에서, 1주기 간격으로 하나의 목표반복간격을 계산하며, 계산하여 얻은 목표반복간격에 근거하여 데이터 비트폭 또는 양자화 파라미터를 1회 조정할 수 있으므로, 데이터 비트폭 또는 양자화 파라미터의 업데이트 회수를 감소하고, 신경망의 가동효율을 향상시킨다.
예를 들어, 미리 설정된 주기가 M 번째 주기 이후의 주기이다. M+1 번째 주기에서, M 번째 주기 중의 P 번째 반복계산하여 얻은 목표반복간격은 M+1 번째 주기 중의 Q 번째 반복까지이다. M+1 번째 주기 중 Qm + 1 번째 반복계산에 의해 이에 대응하는 목표반복간격Im +1을 얻는다. M+2 번째 주기 중, M+1 번째 주기 중의 Qm + 1 번째 반복에 대응하는 반복이 Q m+ 2 번째 반복이다. M+1 번째 주기 중의 Qm + 1 번째 반복부터 시작하여 M+2 번째 주기 내 Q m+2+ Im + 1 번째 반복까지는 주기간격이다. 주기간격 내의 각 반복은, 모두 M+1 번째 주기 중의 Qm + 1 번째 반복에서 확정한 데이터 비트폭 또는 점 위치 등 양자화 파라미터를 채용한다.
본 실시예에서, 주기간격을 설정하고, 신경망 연산의 훈련 또는 미조정이 안정에 도달한 후, 주기간격에 근거하여 주기마다 데이터 비트폭 또는 점 위치 등 양자화 파라미터를 1회 업데이트할 수 있다. 주기간격은 훈련이 안정된 후 또는 미조정이 안정된 후, 데이터 비트폭 또는 점 위치의 업데이트 회수를 감소하여, 양자화 정밀도를 보장하는 동시에, 신경망의 가동효율을 향상시킬 수 있다.
설명할 필요가 있는 것은, 상술한 각 방법 실시예에 대하여, 설명의 편의를 위해, 이들을 동작의 일련 조합으로서 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명은 설명된 동작의 순서에 의해 한정되지 않는다는 것을 인식해야 한다. 본 발명에 따르면, 특정 단계는 다른 순서를 채용하거나 동시에 수행할 수 있기 때문이다. 따라서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 명세서에서 설명된 실시예는 모두 선택할 수 있는 실시예에 속하며, 관련되는 동작과 모듈은 반드시 본 발명에 필수적인 것이 아니라는 것도 인식해야 한다 .
진일보로 설명할 필요가 있는 것은, 도13 내지 도18의 흐름도 중의 각 단계는 화살표의 지시에 따라 순서대로 표시하고 있지만, 이들 단계는 반드시 화살표로 지시한 순서대로 순차적으로 실행되는 것이 아니다. 이 명세서에서 명시적으로 기재되지 않는 한, 이들 단계의 실행에는 엄밀한 순서제한이 없고, 이들 단계는 다른 순서로 실행될 수 있다. 그리고, 도13 내지 도18중의 적어도 일부 단계는 복수의 서브 단계 또는복수의 공정을 포함하며, 이들 서브 단계 또는공정은 반드시 동일한 시점으로 실행완료하는 것이 아니라, 다른 시점으로 실행되어도 좋다, 또한 이들 서브 단계 또는 공정의 실행순서도 반드시 순서대로 진행하는 것이 아니라, 다른 단계 또는 다른 단계의 서브 단계 또는 공정의 적어도 일부와 번갈아 또는 교대로 실행할 수 있다.
도38은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다. 도38에 도시된 바와 같이, 본 발명은 신경망 양자화장치를 제공하는 바, 상기 장치는 상기 신경망에서 임의의 한 층의 양자화 대상 층을 양자화하는 데 적용되며, 상기 장치는,
상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하는 데 사용되고, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함하는 양자화 파라미터 확정모듈(10); 및
대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 하기 위한 양자화 모듈(20)을 포함한다.
가능한 실현방식에서, 상기 양자화 파라미터는 점 위치, 스케일 팩터 및 오프셋 중의 적어도 한 가지를 포함하며, 여기에서,
상기 점 위치는 양자화 후 소수점의 위치이고,
상기 스케일 팩터는 양자화 된 데이터의 최대 값과 양자화 대상 데이터의 최대 절대치 사이의 비율이며,
상기 오프셋은 양자화 대상 데이터의 중간 값이다.
도39은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다. 도39에 도시된 바와 같이, 상기 양자화 파라미터 확정모듈(10)은,
양자화 대상 데이터와 양자화 파라미터의 대응관계를 검색하여 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정하기 위한 제1 양자화 파라미터 확정 서브 모듈(11)을 포함한다.
가능한 실현방식에서, 상기 양자화 파라미터 확정모듈(10)은,
각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻기 위한 제2 양자화 파라미터 확정 서브 모듈(12)을 포함한다.
가능한 실현방식에서, 상기 제2 양자화 파라미터 확정 서브 모듈(12)은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터 중의 절대치 최대 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터의 점 위치를 얻기 위한 제1 점 위치 계산유닛(121)을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
가능한 실현방식에서, 상기 제2 양자화 파라미터 확정 서브 모듈(12)은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이고; 목표데이터 중의 절대치 최대 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻기 위한 제1 스케일 팩터 계산유닛(122)을 포함한다.
가능한 실현방식에서, 상기 제2 양자화 파라미터 확정 서브 모듈(12)은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여, 상기 목표데이터의 점 위치를 얻기 위한 제2 점 위치 계산유닛(123)을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
가능한 실현방식에서, 상기 제2 양자화 파라미터 확정 서브 모듈(12)은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이고; 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻기 위한 제2 스케일 팩터 계산유닛(124)을 포함한다.
가능한 실현방식에서, 상기 제2 양자화 파라미터 확정 서브 모듈(12)은,
목표데이터 중의 최대 값과 최소 값에 근거하여 상기 목표데이터의 오프셋을 얻기 위한 오프셋 계산유닛(125)을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
도40은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다. 도40에 도시된 바와 같이, 가능한 실현방식에서, 상기 장치는:
목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 상기 목표데이터의 양자화 오차를 확정하는 데 사용되고, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 양자화 오차 확정모듈(30);
상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻기 위한 조정 비트폭 확정모듈(40); 및
상기 목표데이터에 대응하는 데이터 비트폭을 상기 조정 비트폭으로 업데이트하고, 상기 목표데이터와 상기 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 상기 신경망이 상기 조정 양자화 파라미터에 근거하여 양자화하도록 하기 위한 조정 양자화 파라미터 확정모듈(50)을 포함한다.
가능한 실현방식에서, 상기 조정 비트폭 확정모듈(40)은,
상기 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻기 위한 제1 조정 비트폭 확정 서브 모듈(41)을 포함한다.
가능한 실현방식에서, 상기 조정 비트폭 확정모듈(40)은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하기 위한 제1 조정 양자화 오차 확정 서브 모듈(42); 및
상기 조정 후의 양자화 오차와 상기 제1 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산하여 얻은 조정 후의 양자화 오차가 상기 제1 오차 한계 값 이하로 될 때까지 상기 조정 비트폭을 계속 증가하기 위한 제1 조정 비트폭 순환 확정 서브 모듈(43)을 더 포함한다.
가능한 실현방식에서, 상기 조정 비트폭 확정모듈(40)은,
상기 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하기 위한 제2 조정 비트폭 확정 서브 모듈(44)을 포함하며, 상기 제2 오차 한계 값은 상기 제1 오차 한계 값보다 작다.
가능한 실현방식에서, 상기 조정 비트폭 확정모듈(40)은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하기 위한 제2 조정 양자화 오차 확정 서브 모듈(45); 및
상기 조정 후의 양자화 오차와 상기 제2 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산을 통해 얻은 조정 후의 양자화 오차가 상기 제2 오차 한계 값 이상이 될 때까지 상기 조정 비트폭을 계속 감소하기 위한 제2 조정 비트폭 순환 확정 서브 모듈(46)을 더 포함한다.
도41은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다. 도41에 도시된 바와 같이, 가능한 실현방식에서, 상기 신경망 연산의 미조정단계 및/또는 훈련단계에서, 상기 장치는,
현재 반복 및 상기 현재 반복 전의 반복인 이력 반복 중 목표데이터의 데이터 변동폭을 획득하기 위한 데이터 변동폭 확정모듈(60); 및
상기 목표데이터의 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하기 위한 목표반복간격 확정모듈(70)을 더 포함하며, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
가능한 실현방식에서, 상기 장치는,
상기 목표데이터의 상기 현재 반복에서의 데이터 비트폭에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭을 확정함으로써, 상기 신경망이 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭에 근거하여 양자화 파라미터를 확정하도록 하기 위한 제1 목표반복간격 응용모듈(80)을 더 포함한다.
가능한 실현방식에서, 상기 장치는,
상기 목표데이터의 상기 현재 반복에 대응하는 점 위치에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 점 위치를 확정하기 위한 제2 목표반복간격 응용모듈(90)을 더 포함한다.
가능한 실현방식에서, 상기 데이터 변동폭 확정모듈(60)은,
목표데이터의 현재 반복의 점 위치, 및 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복의 점 위치에 근거하여, 목표데이터의 각 반복간격에 대응하는 점 위치의 이동평균 값을 계산하기 위한 이동평균 값 계산 서븐 모듈(61); 및
상기 목표데이터의 현재 반복의 점 위치의 제1 이동평균 값 및 전회 반복간격에서 대응하는 반복의 점 위치의 제2 이동평균 값에 근거하여 제1 데이터 변동폭을 얻기 위한 제1 데이터 변동폭 확정 서브 모듈(62)을 포함하며;
상기 목표반복간격 확정모듈(70)은,
상기 제1 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정하여 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하기 위한 제1 목표반복간격 확정 서브 모듈(71)를 포함한다.
가능한 실현방식에서, 상기 제1 데이터 변동폭 확정 서브 모듈(62)은,
상기 제1 이동평균 값과 상기 제2 이동평균 값의 차이 값을 계산하기 위한 제1 데이터 변동폭 확정유닛(621)을 포함하며; 상기 차이 값의 절대치를 제1 데이터 변동폭으로 확정한다.
가능한 실현방식에서, 상기 데이터 변동폭 확정모듈(60)은,
현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 제2 데이터 변동폭을 얻기 위한 제2 데이터 변동폭 확정 서브 모듈(63)을 더 포함하며;
상기 목표반복간격 확정모듈(70)은,
상기 목표데이터의 제1 데이터 변동폭과 상기 제2 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하기 위한 제2 목표반복간격 확정 서브 모듈(72)을 포함한다.
가능한 실현방식에서, 상기 제2 데이터 변동폭 확정모듈(63)은,
현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터사이의 오차를 계산하기 위한 제2 데이터 변동폭 확정유닛(631)을 포함하며; 상기 오차의 제곱을 상기 제2 데이터 변동폭으로 확정한다.
가능한 실현방식에서, 상기 제2 목표반복간격 확정 서브 모듈(72)은 상기 제1 데이터 변동폭과 상기 제2 데이터 변동폭 중의 최대 값에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정하는 데 사용된다.
가능한 실현방식에서, 상기 데이터 변동폭 확정모듈(60)은,
현재 반복이 업데이트 주기 이외에 위치할 때, 현재 반복 및 이력 반복 중 목표데이터의 데이터 변동폭을 획득하기 위한 제3 데이터 변동폭 확정 서브 모듈(64)을 포함하며, 상기 업데이트 주기에는 적어도 1회 반복이 포함된다.
도42은 본 발명 실시예에 따른 신경망 양자화장치를 나타내는 모식도이다. 도42에 도시된 바와 같이, 가능한 실현방식에서, 상기 장치는,
현재 반복이 미리 설정된 주기 내에 위치할 때, 현재 반복의 상기 미리 설정된 주기의 다음 주기에서 상기 현재 반복에 대응하는 반복 및 현재 반복에 대응하는 반복간격에 근거하여 주기간격을 확정하기 위한 주기간격 확정모듈(100);
상기 목표데이터의 현재 반복에 대응하는 데이터 비트폭에 근거하여 상기 주기간격 내의 반복에서 상기 목표데이터의 데이터 비트폭을 확정하기 위한 제1 주기간격 응용모듈(110); 또는
상기 목표데이터의 현재 반복에 대응하는 점 위치에 근거하여 상기 주기간격 내의 반복에서 상기 목표데이터의 점 위치를 확정하기 위한 제2 주기간격 응용모듈(120)을 더 포함한다.
가능한 실현방식에서, 상기 장치는,
상기 양자화 대상 층 다음의 한 층 또는 여러 층에서 상기 양자화 대상 층의 양자화 파라미터를 채용하기 위한 양자화 파라미터 계속 사용모듈(130)을 더 포함한다.
또한, 상술한 장치 실시예는 단지 예시일 뿐이며, 본 발명의 장치는 다른 방식으로 실현할 수 있다는 것을 이해해야 한다. 예를 들어, 상술한 실시예에서 상기 유닛/모듈의 구분은 단지 논리적 기능 구분일 뿐이며, 실제로 실현될 경우에는 다른 구분방식이 있을 수 있다. 예를 들어, 복수의 유닛, 모듈 또는 컴포넌트가 결합될 수 있거나 다른 시스템에 통합되거나 일부 특징을 무시 또는 실행하지 않을 수 있다.
상기 분리부품으로서 설명한 유닛 또는 모듈은 물리적으로 분리될 수도 있고, 물리적으로 분리되지 않을 수도 있다 . 유닛 또는 모듈로서 설명한 부품은 물리적 유닛일 수도 있고, 물리적 유닛이 아닐 수도 있다. 즉 하나의 장치에 위치할 수도 있고, 복수의 장치에 분산될 수도 있다. 본 발명에서 실시예의 방안은 실제의 필요에 따라 유닛의 일부 또는 전부를 선택하여 실현할 수 있다.
또한, 특히 명기되지 않는 한, 본 발명 각 실시예의 각 기능 유닛/모듈은 하나의 유닛/모듈에 통합될 수 있고, 각 유닛/모듈이 물리적으로 단독으로 존재할 수도 있으며, 2개 또는 2개 이상의 유닛/모듈이 하나로 통합될 수도 있다. 상술한 통합된 유닛/모듈은 하드웨어의 형식을 채용하여 실현할 수도 있고, 소프트웨어 프로그램 모듈의 형식을 채용하여 실현할 수도 있다.
상기 통합된 유닛/모듈은 하드웨어의 형식으로 실현하는 경우, 당해 하드웨어는 디지털 회로, 아날로그 회로 등일 수 있다. 하드웨어 구조의 물리적 실현은 트랜지스터, 멤 리스터 등을 포함하지만, 이들에 한정되지 않는다. 특히 명기되지 않는 한, 상기 인공지능 프로세서는 임의의 적절한 하드웨어 프로세서, 예를 들어, CPU, GPU, FPGA, DSP 및 ASIC 등일 수 있다. 특히 명기되지 않는 한, 상기 저장유닛은 임의의 적절한 자기 저장 매체 또는 광 자기 저장 매체, 예를 들어, 저항변화 메모리RRAM(Resistive Random Access Memory), 다이나믹 랜덤 액세스 메모리 DRAM(Dynamic Random Access Memory), 스태틱 랜덤 액세스 메모리 SRAM(Static Random-Access Memory), 임베디드 다이나믹 랜덤 액세스 메모리 EDRAM(Enhanced Dynamic Random Access Memory), 고대역폭 메모리 HBM(High-Bandwidth Memory), 하이브리드 메모리 큐브 HMC (Hybrid Memory Cube)등일 수 있다.
상기 통합된 유닛/모듈은 소프트웨어 프로그램 모듈의 형식으로 실현되고 독립적인 제품으로 판매되거나 사용될 때 하나의 컴퓨터 판독 가능한 메모리에 저장될 수 있다. 이러한 이해에 따라, 본 발명의 기술방안은 본질적으로 또는 종래기술에 공헌하는 부분 또는 당해 기술방안의 전부 또는 일부는 소프트웨어 제품의 형식으로 구현할 수 있으며, 당해 컴퓨터 소프트웨어 제품은 하나의 메모리에 저장되며, 컴퓨터기기(개인용 컴퓨터, 서버 또는네트워크 기기 등일 수 있다)가 본 발명 각 실시예에서 설명한 방법의 전부 또는 일부단계를 실행 하기 위한 복수의 명령을 포함한다. 한편 전술한 메모리는: U 디스크, 읽기 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 모바일 하드 디스크, 자기 디스크 또는 광 디스크 등 각종 프로그램 코드를 저장할 수있는 매체를 포함한다.
가능한 실현방식에서, 본 발명은 인공지능 칩도 개시하는 바, 상술한 데이터 동기적 장치를 포함하고 있다.
가능한 실현방식에서, 본 발명은 메모리 디바이스, 인터페이스 장치와 제어 디바이스 및 상술한 인공지능 칩을 포함하는 보드 카드도 개시하는 바; 여기에서, 상기 인공지능 칩은 상기 메모리 디바이스, 상기 제어 디바이스 및 상기 인터페이스 장치와 각각 연결되고; 상기 메모리 디바이스는 데이터를 저장하는 데 사용되고; 상기 인터페이스 장치는 상기 인공지능 칩과 외부기기 사이의 데이터 전송을 실현하는 데 사용되며; 상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다.
도43은 본 발명 실시예에 따른 보드 카드를 나타내는 구조 블록도이다. 도43을 참조하면, 상술한 보드 카드는 상술한 칩(389)을 포함하는 외에도 다른 부대부품을 포함할 수 있다. 당해 부대부품은 메모리 디바이스(390), 인터페이스 장치(391) 및 제어 디바이스(392)를 포함할 수 있지만, 이들에 한정되지 않는다.
상기 메모리 디바이스(390)는 데이터를 저장하기 위해 베스를 통해 상기 인공지능 칩과 연결된다. 상기 메모리 디바이스는 복수 그룹의 저장유닛(393)을 포함할 수 있다. 각 그룹의 상기 저장유닛은 버스를 통해 상기 인공지능 칩과 연결된다. 또한, 각 그룹의 상기 저장유닛이 DDR SDRAM(영문: Double Data Rate SDRAM, 2배 속도 동기적 다이나믹 랜덤메모리)일 수 있다는 것을 이해할 수 있다.
DDR은 클록 주파수를 높이지 않고도 SDRAM의 속도를 2배로 할 수 있다. DDR은 클록 펄스의 상승 및 하강 에지에서 데이터를 읽어 내는 것을 허용한다. DDR의 속도는 표준 SDRAM의 2배이다. 일 실시예에서, 상기 저장장치는 4그룹의 상기 저장유닛을 포함할 수 있다. 각 그룹의 상기 저장유닛은 복수의 DDR4 입자(칩)를 포함할 수 있다. 일 실시예에서, 상기 인공지능 칩 내부는 4개의 72비트 DDR4 컨트롤러를 포함할 수 있으며, 상술한 72비트 DDR4 컨트롤러 중 64bit는 데이터 전송에 사용되고, 8bit는 ECC검증에 사용된다. 또한, 각 그룹의 상기 저장유닛에서 DDR4-3200 입자를 채용하는 경우, 데이터 전송의 이론 대역폭은 25600MB/s에 도달할 수 있다고 이해할 수 있다 .
일 실시예에서, 각 그룹의 상기 저장유닛은 복수의 병렬로 배치한 2배 속도 동기적 다이나믹 랜덤 메모리를 포함한다. DDR은 한 클록 주기 내에 데이터를 2회 전송할 수 있다. 상기 칩에 DDR을 제어하는 컨트롤러를 배치하여 각 상기 저장유닛의 데이터 전송과 데이터 저장의 제어한다.
상기 인터페이스 장치는 상기 인공지능 칩과 전기적으로 연결된다. 상기 인터페이스 장치는 상기 인공지능 칩과 외부기기(예를 들어 서버 또는 컴퓨터) 사이의 데이터 전송을 실현하는 데 사용된다. 예를 들어 일 실시예에서, 상기 인터페이스 장치는 표준 PCIE 인터페이스일 수 있다. 예를 들어, 처리될 데이터는 서버에서 표준 PCIE 인터페이스를 통해 상기 칩에 전달되어 데이터 이전을 실현한다. 바람직하게, PCIE 3.0 X 16 인터페이스를 채용하여 전송하는 경우, 이론 대역폭은 16000MB/s에 달할 수도 있다. 다른 하나의 실시예에서, 상기 인터페이스 장치는 다른 인터페이스일 수도 있고, 본 발명은 상술한 다른 인터페이스의 구체적인 표현형식을 한정하지 않으며, 상기 인터페이스 유닛은 이전기능을 실현하면 된다. 또한, 상기 인공지능 칩의 계산결과는 여전히 상기 인터페이스 장치에 의해 외부기기(예를 들어 서버)로 다시 전송된다.
상기 제어 디바이스는 상기 인공지능 칩과 전기적으로 연결된다. 상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다. 구체적으로, 상기 인공지능 칩은 SPI 인터페이스를 통해 상기 제어 디바이스와 전기적으로 연결될 수 있다. 상기 제어 디바이스는 단일 칩 마이크로 컴퓨터(Micro Controller Unit, MCU)를 포함할 수 있다. 상기와 같이 인공지능 칩은 복수의 처리 칩, 복수의 처리 코아 또는 복수의 처리회로를 포함하여 복수의 부하를 구동할 수 있다. 따라서, 상기 인공지능 칩은 다부하와 경부하 등 상이한 동작상태에 있을 수 있다. 상기 제어장치를 통해 상기 인공지능 칩 중 복수의 처리 칩, 복수의 처리 코아 또는 복수의 처리회로의 동작상태의 조정 및 제어를 실현할 수 있다.
가능한 실현방식에서, 상술한 인공지능 칩을 포함한 전자기기를 개시한다. 전자기기포함데이터 처리장치, 로봇, 컴퓨터, 프린터, 스캐너, 태블릿, 스마트 단말, 휴대전화, 드라이브 레코더, 네비게이션 장치, 센서, 카메라, 서버, 클라우드 서버, 카메라, 비디오 카메라, 프로젝터, 손목 시계, 헤드폰, 모바일 스토리지, 웨어러블 디바이스, 교통수단, 가전제품, 및/또는 의료기기를 포함한다.
상기 교통수단은 항공기, 선박 및/또는 차량을 포함하며; 가전제품은 텔레비전, 에어컨, 전자렌지, 냉장고, 전기밥솥, 가습기, 세탁기, 전등, 가스 버너, 레인지 푸드를 포함하고; 상기 의료기기는 핵자기 공명 장치, B-초음파진단 장치 및/또는 심전계를 포함한다.
전술한 내용은 다음 조항에 따라 더 잘 이해할 수 있다.
B1, 신경망의 양자화방법에 있어서, 상기 신경망에서 임의의 한 층의 양자화 대상 층에 대하여, 상기 방법은,
상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하며, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함하는 것; 및
대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 하는 것을 포함한다.
B2, 조항B1에 따른 방법에 있어서, 상기 양자화 파라미터는 점 위치, 스케일 팩터 및 오프셋 중의 적어도 한 가지를 포함하며, 여기에서,
상기 점 위치는 양자화 후 소수점의 위치이고,
상기 스케일 팩터는 양자화 된 데이터의 최대 값과 양자화 대상 데이터의 최대 절대치 사이의 비율이며,
상기 오프셋은 양자화 대상 데이터의 중간 값이다.
B3, 조항B1 또는 B2에 따른 방법에 있어서, 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정하는 것은,
양자화 대상 데이터와 양자화 파라미터의 대응관계를 검색하여 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정하는 것을 포함한다 .
B4, 조항B1 또는 B2에 따른 방법에 있어서, 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정하는 것은,
각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것을 포함한다.
B5, 조항B4에 따른 방법에 있어서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터 중의 절대치 최대 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터의 점 위치를 얻는 것을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
B6, 조항B4에 따른 방법에 있어서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 것;
목표데이터 중의 절대치 최대 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는 것을 포함한다.
B7, 조항B4에 따른 방법에 있어서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여, 상기 목표데이터의 점 위치를 얻는 것을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
B8, 조항B4에 따른 방법에 있어서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻으며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 것;
상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는 것을 포함한다.
B9, 조항B4에 따른 방법에 있어서, 상기 각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻는 것은,
목표데이터 중의 최대 값과 최소 값에 근거하여 상기 목표데이터의 오프셋을 얻는 것을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
B10, 조항B1 내지 B9 중 어느 한 항에 따른 방법에 있어서, 상기 방법은,
목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 상기 목표데이터의 양자화 오차를 확정하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 것;
상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻는 것;
상기 목표데이터에 대응하는 데이터 비트폭을 상기 조정 비트폭으로 업데이트하고, 상기 목표데이터와 상기 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 상기 신경망이 상기 조정 양자화 파라미터에 근거하여 양자화하도록 하는 것을 더 포함한다.
B11, 조항B10에 따른 방법에 있어서, 상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻는 것은,
상기 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻는 것을 포함한다.
B12, 조항B11에 따른 방법에 있어서, 상기 방법은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하는 것; 및
상기 조정 후의 양자화 오차와 상기 제1 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산하여 얻은 조정 후의 양자화 오차가 상기 제1 오차 한계 값 이하로 될 때까지 상기 조정 비트폭을 계속 증가하는 것을 포함한다.
B13, 조항B10 또는 B11에 따른 방법에 있어서, 상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하는 것은,
상기 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하는 것을 포함하며, 상기 제2 오차 한계 값은 상기 제1 오차 한계 값보다 작다.
B14, 조항B13에 따른 방법에 있어서, 상기 방법은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하는 것; 및
상기 조정 후의 양자화 오차와 상기 제2 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산을 통해 얻은 조정 후의 양자화 오차가 상기 제2 오차 한계 값 이상이 될 때까지 상기 조정 비트폭을 계속 감소하는 것을 더 포함한다.
B15, 조항B1 내지 B14 중 어느 한 항에 따른 방법에 있어서, 상기 신경망 연산의 미조정단계 및/또는 훈련단계에서, 상기 방법은,
현재 반복 및 상기 현재 반복 전의 반복인 이력 반복 중 목표데이터의 데이터 변동폭을 획득하는 것; 및
상기 목표데이터의 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하는 것을 더 포함하며, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
B16, 조항B15에 따른 방법에 있어서, 상기 방법은,
상기 목표데이터의 상기 현재 반복에서의 데이터 비트폭에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭을 확정함으로써, 상기 신경망이 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭에 근거하여 양자화 파라미터를 확정하도록 하는 것을 더 포함한다.
B17, 조항B15에 따른 방법에 있어서, 상기 방법은,
상기 목표데이터의 상기 현재 반복에 대응하는 점 위치에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 점 위치를 확정하는 것을 더 포함한다.
B18, 조항B15에 따른 방법에 있어서, 상기 현재 반복 및 이력 반복 중 목표데이터의 데이터 변동폭을 획득하는 것은,
목표데이터의 현재 반복의 점 위치, 및 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복의 점 위치에 근거하여, 목표데이터의 각 반복간격에 대응하는 점 위치의 이동평균 값을 계산하는 것;
상기 목표데이터의 현재 반복의 점 위치의 제1 이동평균 값 및 전회 반복간격에서 대응하는 반복의 점 위치의 제2 이동평균 값에 근거하여 제1 데이터 변동폭을 얻는 것을 포함하며;
상기 목표데이터의 데이터 변동폭에 근거하여, 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하는 것은,
상기 제1 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정하여 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하는 것을 포함한다.
B19, 조항B18에 따른 방법에 있어서, 상기 목표데이터의 현재 반복의 점 위치의 제1 이동평균 값 및 전회 반복간격에서 대응하는 반복의 점 위치의 제2 이동평균 값에 근거하여 제1 데이터 변동폭을 얻는 것은,
상기 제1 이동평균 값과 상기 제2 이동평균 값의 차이 값을 계산하는 것; 및
상기 차이 값의 절대치를 제1 데이터 변동폭으로 확정하는 것을 포함한다.
B20, 조항B18에 따른 방법에 있어서, 상기 방법은,
현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 제2 데이터 변동폭을 얻는 것을 더 포함하며;
상기 목표데이터의 데이터 변동폭에 근거하여, 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하는 것은,
상기 목표데이터의 제1 데이터 변동폭과 상기 제2 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하는 것을 포함한다.
B21, 조항B20에 따른 방법에 있어서, 상기 현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 제2 데이터 변동폭을 얻는 것은,
현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터사이의 오차를 계산하는 걸; 및
상기 오차의 제곱을 상기 제2 데이터 변동폭으로 확정하는 것을 포함한다.
B22, 조항B20에 따른 방법에 있어서, 상기 목표데이터의 제1 데이터 변동폭과 상기 제2 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정하는 것은,
상기 제1 데이터 변동폭과 상기 제2 데이터 변동폭 중의 최대 값에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정하는 것을 포함한다.
B23, 조항B15 내지 B22 중 어느 한 항에 따른 방법에 있어서, 상기 현재 반복 및 이력 반복 중 목표데이터의 데이터 변동폭을 획득하는 것은,
현재 반복이 업데이트 주기 이외에 위치할 때, 현재 반복 및 이력 반복 중 목표데이터의 데이터 변동폭을 획득하는 것을 포함하며, 상기 업데이트 주기에는 적어도 1회 반복이 포함된다.
B24, 조항B15 내지 B23 중 어느 한 항에 따른 방법에 있어서, 상기 방법,
현재 반복이 미리 설정된 주기 내에 위치할 때, 현재 반복의 상기 미리 설정된 주기의 다음 주기에서 상기 현재 반복에 대응하는 반복 및 현재 반복에 대응하는 반복간격에 근거하여 주기간격을 확정하는 것;
상기 목표데이터의 현재 반복에 대응하는 데이터 비트폭에 근거하여 상기 주기간격 내의 반복에서 상기 목표데이터의 데이터 비트폭을 확정하는 것; 또는
상기 목표데이터의 현재 반복에 대응하는 점 위치에 근거하여 상기 주기간격 내의 반복에서 상기 목표데이터의 점 위치를 확정하는 것을 더 포함한다.
B25, 조항B1 내지 B24 중 어느 한 항에 따른 방법에 있어서, 상기 방법은,
상기 양자화 대상 층 다음의 한 층 또는 여러 층에서 상기 양자화 대상 층의 양자화 파라미터를 채용하는 것을 더 포함한다 .
B26, 신경망 양자화장치에 있어서, 상기 장치는 상기 신경망에서 임의의 한 층의 양자화 대상 층을 양자화하는 데 적용되며, 상기 장치는,
상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터와 대응하는 양자화 파라미터를 확정하는 데 사용되고, 상기 양자화 대상 데이터는 뉴런, 가중치, 바이어스, 그래디언트 중 적어도 한 가지를 포함하는 양자화 파라미터 확정모듈; 및
대응하는 양자화 파라미터에 근거하여 양자화 대상 데이터를 양자화하여 양자화 데이터를 얻으며, 상기 신경망이 상기 양자화 데이터에 근거하여 연산을 수행하도록 하기 위한 양자화 모듈을 포함한다.
B27, 조항B26에 따른 장치에 있어서, 상기 양자화 파라미터는 점 위치, 스케일 팩터 및 오프셋 중의 적어도 한 가지를 포함하며, 여기에서,
상기 점 위치는 양자화 후 소수점의 위치이고,
상기 스케일 팩터는 양자화 된 데이터의 최대 값과 양자화 대상 데이터의 최대 절대치 사이의 비율이며,
상기 오프셋은 양자화 대상 데이터의 중간 값이다.
B28, 조항B25 또는 B27에 따른 장치에 있어서, 상기 양자화 파라미터 확정모듈은,
양자화 대상 데이터와 양자화 파라미터의 대응관계를 검색하여 상기 양자화 대상 층 중 각 종류의 양자화 대상 데이터에 대응하는 양자화 파라미터를 확정하기 위한 제1 양자화 파라미터 확정 서브 모듈을 포함한다.
B29, 조항B26또는 B27에 따른 장치에 있어서, 상기 양자화 파라미터 확정모듈은,
각 종류의 양자화 대상 데이터와 대응하는 데이터 비트폭에 근거하여 계산을 통해 대응하는 양자화 파라미터를 얻기 위한 제2 양자화 파라미터 확정 서브 모듈을 포함한다 .
B30, 조항B29에 따른 장치에 있어서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터 중의 절대치 최대 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터의 점 위치를 얻기 위한 제1 점 위치 계산유닛을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
B31, 조항B29에 따른 장치에 있어서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
상기 양자화 파라미터에 오프셋이 포함되지 않은 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻기 위한 제1 스케일 팩터 계산유닛를 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이고; 목표데이터 중의 절대치 최대 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는 것을 포함한다.
B32, 조항B29에 따른 장치에 있어서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여, 상기 목표데이터의 점 위치를 얻기 위한 제2 점 위치 계산유닛을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
B33, 조항B29에 따른 장치에 있어서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
상기 양자화 파라미터에 오프셋이 포함된 경우, 목표데이터와 상기 목표데이터에 대응하는 데이터 비트폭에 근거하여 상기 목표데이터 양자화 된 데이터의 최대 값을 얻기 위한 제2 스케일 팩터 계산유닛을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이고; 상기 목표데이터 중의 최대 값, 상기 목표데이터 중의 최소 값과 상기 목표데이터 양자화 된 데이터의 최대 값에 근거하여 상기 목표데이터의 스케일 팩터를 얻는 것을 포함한다.
B34, 조항B29에 따른 장치에 있어서, 상기 제2 양자화 파라미터 확정 서브 모듈은,
목표데이터 중의 최대 값과 최소 값에 근거하여 상기 목표데이터의 오프셋을 얻기 위한 오프셋 계산유닛을 포함하며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
B35, 조항B26 내지 B34 중 어느 한 항에 따른 장치에 있어서, 상기 장치는,
목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 상기 목표데이터의 양자화 오차를 확정하는 데 사용되며, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터인 양자화 오차 확정모듈;
상기 양자화 오차와 오차 한계 값에 근거하여 상기 목표데이터에 대응하는 데이터 비트폭을 조정하며, 상기 목표데이터에 대응하는 조정 비트폭을 얻기 위한 조정 비트폭 확정모듈; 및
상기 목표데이터에 대응하는 데이터 비트폭을 상기 조정 비트폭으로 업데이트하고, 상기 목표데이터와 상기 조정 비트폭에 근거하여 계산을 통해 대응하는 조정 양자화 파라미터를 얻으며, 상기 신경망이 상기 조정 양자화 파라미터에 근거하여 양자화하도록 하기 위한 조정 양자화 파라미터 확정모듈을 포함한다.
B36, 조항B35에 따른 장치에 있어서, 상기 조정 비트폭 확정모듈은,
상기 양자화 오차가 제1 오차 한계 값보다 클 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 증가하여 상기 목표데이터에 대응하는 조정 비트폭을 얻기 위한 제1 조정 비트폭 확정 서브 모듈을 포함한다.
B37, 조항B36에 따른 장치에 있어서, 상기 조정 비트폭 확정모듈은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하기 위한 제1 조정 양자화 오차 확정 서브 모듈; 및
상기 조정 후의 양자화 오차와 상기 제1 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산하여 얻은 조정 후의 양자화 오차가 상기 제1 오차 한계 값 이하로 될 때까지 상기 조정 비트폭을 계속 증가하기 위한 제1 조정 비트폭 순환 확정 서브 모듈을 포함한다.
B38, 조항B35 또는 B36에 따른 장치에 있어서, 상기 조정 비트폭 확정모듈은,
상기 양자화 오차가 제2 오차 한계 값보다 작은 경우, 상기 목표데이터에 대응하는 데이터 비트폭을 감소하기 위한 제2 조정 비트폭 확정 서브 모듈을 포함하며, 상기 제2 오차 한계 값은 상기 제1 오차 한계 값보다 작다.
B39, 조항B38에 따른 장치에 있어서, 상기 조정 비트폭 확정모듈은,
상기 조정 비트폭과 상기 목표데이터에 근거하여 상기 목표데이터의 조정 후의 양자화 오차를 계산하기 위한 제2 조정 양자화 오차 확정 서브 모듈; 및
상기 조정 후의 양자화 오차와 상기 제2 오차 한계 값에 근거하여, 조정 비트폭과 상기 목표데이터에 따라 계산을 통해 얻은 조정 후의 양자화 오차가 상기 제2 오차 한계 값 이상이 될 때까지 상기 조정 비트폭을 계속 감소하기 위한 제2 조정 비트폭 순환 확정 서브 모듈을 더 포함한다.
B40, 조항B26 내지 B39 중 어느 한 항에 따른 장치에 있어서, 상기 신경망 연산의 미조정단계 및/또는 훈련단계에서, 상기 장치는,
현재 반복 및 상기 현재 반복 전의 반복인 이력 반복 중 목표데이터의 데이터 변동폭을 획득하기 위한 데이터 변동폭 확정모듈; 및
상기 목표데이터의 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하기 위한 목표반복간격 확정모듈을 더 포함하며, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 목표데이터는 임의의 한 가지 양자화 대상 데이터이다.
B41, 조항B40에 따른 장치에 있어서, 상기 장치는,
상기 목표데이터의 상기 현재 반복에서의 데이터 비트폭에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭을 확정함으로써, 상기 신경망이 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 데이터 비트폭에 근거하여 양자화 파라미터를 확정하도록 하기 위한 제1 목표반복간격 응용모듈을 더 포함한다.
B42, 조항B40에 따른 장치에 있어서, 상기 장치는,
상기 목표데이터의 상기 현재 반복에 대응하는 점 위치에 근거하여 상기 목표데이터의 상기 목표반복간격 내의 반복에 대응하는 점 위치를 확정하기 위한 제2 목표반복간격 응용모듈을 더 포함한다.
B43, 조항B40에 따른 장치에 있어서, 상기 데이터 변동폭 확정모듈은,
목표데이터의 현재 반복의 점 위치, 및 이력 반복간격에 근거하여 확정한 상기 현재 반복에 대응하는 이력 반복의 점 위치에 근거하여, 목표데이터의 각 반복간격에 대응하는 점 위치의 이동평균 값을 계산하기 위한 이동평균 값 계산 서븐 모듈; 및
상기 목표데이터의 현재 반복의 점 위치의 제1 이동평균 값 및 전회 반복간격에서 대응하는 반복의 점 위치의 제2 이동평균 값에 근거하여 제1 데이터 변동폭을 얻기 위한 제1 데이터 변동폭 확정 서브 모듈을 포함하며;
상기 목표반복간격 확정모듈은,
상기 제1 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정하여 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하기 위한제1 목표반복간격 확정 서브 모듈을 포함한다.
B44, 조항B43에 따른 장치에 있어서, 상기 제1 데이터 변동폭 확정 서브 모듈은,
상기 제1 이동평균 값과 상기 제2 이동평균 값의 차이 값을 계산한다; 상기 차이 값의 절대치를 제1 데이터 변동폭으로 확정하기 위한 제1 데이터 변동폭 확정유닛을 포함한다.
B45, 조항B43에 따른 장치에 있어서, 상기 데이터 변동폭 확정모듈은,
현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터에 근거하여 제2 데이터 변동폭을 얻기 위한 제2 데이터 변동폭 확정 서브 모듈을 포함하며;
상기 목표반복간격 확정모듈은,
상기 목표데이터의 제1 데이터 변동폭과 상기 제2 데이터 변동폭에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정함으로써, 상기 신경망이 상기 목표반복간격에 근거하여 상기 목표데이터의 양자화 파라미터를 업데이트하도록 하기 위한 제2 목표반복간격 확정 서브 모듈을 포함한다.
B46, 조항B45에 따른 장치에 있어서, 상기 제2 데이터 변동폭 확정 서브 모듈은,
현재 반복에서 상기 목표데이터와 상기 목표데이터에 대응하는 양자화 데이터사이의 오차를 계산하기 위한 제2 데이터 변동폭 확정유닛을 포함하며; 상기 오차의 제곱을 상기 제2 데이터 변동폭으로 확정한다.
B47, 조항B45에 따른 장치에 있어서, 상기 제2 목표반복간격 확정 서브 모듈은 상기 제1 데이터 변동폭과 상기 제2 데이터 변동폭 중의 최대 값에 근거하여 상기 목표데이터에 대응하는 목표반복간격을 확정하는 데 사용된다.
B48, 조항B40 내지 B47 중 어느 한 항에 따른 장치에 있어서, 상기 데이터 변동폭 확정모듈은,
현재 반복이 업데이트 주기 이외에 위치할 때, 현재 반복 및 이력 반복 중 목표데이터의 데이터 변동폭을 획득하기 위한 제3 데이터 변동폭 확정 서브 모듈을 포함하며, 상기 업데이트 주기에는 적어도 1회 반복이 포함된다.
B49, 조항B40 내지 B48 중 어느 한 항에 따른 장치에 있어서, 상기 장치는,
현재 반복이 미리 설정된 주기 내에 위치할 때, 현재 반복의 상기 미리 설정된 주기의 다음 주기에서 상기 현재 반복에 대응하는 반복 및 현재 반복에 대응하는 반복간격에 근거하여 주기간격을 확정하기 위한 주기간격 확정모듈;
상기 목표데이터의 현재 반복에 대응하는 데이터 비트폭에 근거하여 상기 주기간격 내의 반복에서 상기 목표데이터의 데이터 비트폭을 확정하기 위한 제1 주기간격 응용모듈; 또는
상기 목표데이터의 현재 반복에 대응하는 점 위치에 근거하여 상기 주기간격 내의 반복에서 상기 목표데이터의 점 위치를 확정하기 위한 제2 주기간격 응용모듈을 포함한다.
B50, 조항B26 내지 B49 중 어느 한 항에 따른 장치에 있어서, 상기 장치는,
상기 양자화 대상 층 다음의 한 층또는 여러 층에서 상기 양자화 대상 층의 양자화 파라미터를 채용하기 위한 양자화 파라미터 계속 사용모듈을 포함한다.
B51, 인공지능 칩에 있어서, 상기 칩에는 조항B26 내지 B50 중 어느 한 항에 따른 신경망 양자화장치가 포함된다.
B52, 전자기기에 있어서, 상기 전자기기에는 조항B51에 따른 인공지능 칩이 포함된다.
B53, 보드 카드에 있어서, 상기 보드 카드는 메모리 디바이스, 인터페이스 장치와 제어 디바이스 및 조항B51에 따른 인공지능 칩을 포함하며;
여기에서, 상기 인공지능 칩은 상기 메모리 디바이스, 상기 제어 디바이스 및 상기 인터페이스 장치와 각각 연결되고;
상기 메모리 디바이스는 데이터를 저장하는 데 사용되고;
상기 인터페이스 장치는 상기 인공지능 칩과 외부기기 사이의 데이터 전송을 실현하는 데 사용되며;
상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다.
B54, 청구항B53에 따른 보드 카드에 있어서, 상기 메모리 디바이스는 복수 그룹의 저장유닛을 포함하며, 각 그룹의 상기 저장유닛은 버스를 통해 상기 인공지능 칩과 연결되고, 상기 저장유닛은 DDR SDRAM이며;
상기 칩은 각 상기 저장유닛의 데이터 전송과 데이터 저장을 제어하기 위한 DDR 컨트롤러를 포함하고;
상기 인터페이스 장치는 표준 PCIE 인터페이스이다.
이상, 본 발명의 각 실시예를 설명하였으며, 상술한 설명은 예시적인 것일 뿐이고, 전체적인 것이 아니며, 또한 개시된 각 실시예에 한정되는 것이 아니다. 설명된 실시예의 범위 및 정신을 일탈할 일 없고, 당업자에 있어서 수정 및 변경의 대부분은 자명하다. 본명세서로 사용되는 용어의 선택은, 본명세서로 공개된 실시예의 원리, 실제의 적용, 또는 시장에 있어서의 기술의 개량을 가장 잘 설명하는 것, 또는 본 기술분야의 다른 당업자가 본 명세서로 공개된 실시예를 이해가 가도록 하는 것을 목적으로 한다.
위에서 신경망 양자화의 문제를 해결하기 위해 제안한 방안(201910505239.7)을 설명하였다.
양자화 파라미터의 조정문제를 해결하기 위해, 다음과 같은 방안(201910528537.8)을 제안하였다. 구체적으로는, 양자화 파라미터 조정방법, 장치 및 관련제품을 제안하였다.
본 발명은 컴퓨터 기술분야에 관한 것이며, 특히, 신경망의 양자화 파라미터 조정방법, 장치 및 관련제품에 관한 것이다.
인공지능 기술의 지속적인 발전에 따라 그 응용분야는 점점 넓어져, 화상식별, 음성식별, 자연언어 처리 등 분야에서 잘 응용되고 있다. 그러나, 인공지능 알고리즘의 복잡성이 증가함에 따라, 처리될 데이터의 데이터 량과 데이터 차원이 끊임 없이 증가되고 있으며, 끊임 없이 증가되는 데이터 량 등은 연산장치의 데이터 처리효율, 저장장치의 저장용량 및 액세스 효율 등에 대하여 비교적 큰 도전을 제기하고 있다.
상술한 기술적 문제를 해결하기 위해, 종래기술에서는 고정 비트폭을 채용하여 신경망의 연산 데이터를 양자화한다. 즉 부동 소수점형의 연산 데이터를 고정 소수점형의 연산 데이터로 변환하여 신경망의 연산 데이터의 압축을 실현한다. 그러나, 신경망의 다양한 연산 데이터 사이에 비교적 큰 차이가 존재할 가능성이 있으며, 종래의 양자화방법은 신경망 전체에 대하여 동일한 양자화 파라미터(점 위치 등)를 채용하여 양자화하며, 종종 정밀도가 낮아지고, 데이터 연산결과에 영향을 준다.
이를 고려하여, 본 발명은 신경망의 양자화 정밀도를 향상시키고 연산결과의 정확성과 신뢰성을 보장할 수 있는 신경망의 양자화 파라미터 조정방법, 장치 및 관련제품을 제공한다.
본 발명은 신경망의 양자화 파라미터 조정방법을 제공하는 바, 상기 방법은,
양자화 대상 데이터의 데이터 변동폭을 획득하는 것; 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하는 것을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
본 발명은 신경망의 양자화 파라미터 조정장치도 제공하는 바, 메모리와 프로세서를 포함하며, 상기 메모리에는 컴퓨터 프로그램이 저장되어 있고, 상기 프로세서가 상기 컴퓨터 프로그램을 실행할 때, 상술한 임의의 한 항에 따른 방법의 단계를 실현한다. 구체적으로는, 프로세서는 상술한 컴퓨터 프로그램을 실행할 때, 다음과 같은 작업을 실현한다.
양자화 대상 데이터의 데이터 변동폭을 획득하는 것; 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하는 것을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
본 발명은 컴퓨터 판독 가능한 저장매체도 제공하는 바, 상기 컴퓨터 판독 가능한 저장매체에는 컴퓨터 프로그램이 저장되어 있고, 상기 컴퓨터 프로그램은 실행될 때, 상술한 임의의 한 항에 따른 방법의 단계를 실현한다. 구체적으로는, 상술한 컴퓨터 프로그램은 실행할 때, 다음과 같은 작업을 실현한다.
양자화 대상 데이터의 데이터 변동폭을 획득하는 것; 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하는 것을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
본 발명은 신경망의 양자화 파라미터 조정장치도 제공하는 바, 상기 장치는,
양자화 대상 데이터의 데이터 변동폭을 획득하기 위한 획득모듈;
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하기 위한 반복간격 확정모듈을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
본 발명의 신경망의 양자화 파라미터 조정방법, 장치 및 관련제품은, 양자화 대상 데이터의 데이터 변동폭을 획득하고, 당해 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써 당해 목표반복간격에 근거하여 신경망의 양자화 파라미터를 조정할 수 있으며, 이러한 방식으로 양자화 대상 데이터를 확정하는 데이터 분포특성에 근거하여 신경망이 상이한 연산단계의 양자화 파라미터를 확정할 수 있다. 동일한 신경망의 각종 연산 데이터는 모두 동일한 양자화 파라미터를 채용하는 방식인 종래기술에 비해, 본 발명의 방법 및 장치는 신경망 양자화 과정 중의 정밀도를 향상시킬 수 있으며, 진일보로 연산결과의 정확성과 신뢰성을 확보할 수 있다. 또한, 목표반복간격을 확정함으로써 양자화 효율도 향상시킬 수 있다.
본 발명에 관련되는 첨부 도면은, 명세서에 포함되고, 명세서의 일부를 구성하는 첨부 도면은, 명세서와 함께 본 발명의 예시적인 실시예, 특징, 및 태양을 가리키고, 본 발명의 원리를 설명하기 위해서 사용된다..
도44은 본 발명의 일 실시예의 양자화 파라미터 조정방법의 적용환경을 나타내는 모식도이고;
도45는 본 발명의 일 실시예의 양자화 대상 데이터와 양자화 데이터의 대응관계를 나타내는 모식도이고;
도46은 본 발명의 일 실시예의 양자화 대상 데이터를 나타내는 변환 모식도이고;
도47는 본 발명의 일 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도48는 본 발명의 일 실시예의 양자화 대상 데이터의 연산과정 중 변동추세를 나타내는 도이고;
도49은 본 발명의 일 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도50은 본 발명의 일 실시예에 있어서 포인트 위치 변동폭의 확정방법을 나타내는 흐름도이고;
도51은 본 발명의 일 실시예에 있어서 제2 균치의 확정방법을 나타내는 흐름도이고;
도52는 본 발명의 일 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도53은 본 발명의 다른 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도54은 본 발명의 또 다른 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도55는 본 발명의 또 하나의 실시예에 있어서 데이터 비트폭 조정방법을 나타내는 흐름도이고;
도56은 본 발명의 다른 실시예에 있어서 제2 균치의 확정방법을 나타내는 흐름도이고;
도57는 본 발명의 다른 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도58은 본 발명의 일 실시예의 양자화 파라미터 조정방법 중 양자화 파라미터의 조정을 나타내는 흐름도이고;
도59은 본 발명의 다른 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도60은 본 발명의 또 다른 실시예의 파라미터 조정방법 중 목표반복간격의 확정방법을 나타내는 흐름도이고;
도61은 본 발명의 또 다른 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도62는 본 발명의 또 하나의 실시예의 양자화 파라미터 조정방법을 나타내는 흐름도이고;
도63은 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도64은 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도65은 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도66은 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도67은 본 발명의 일 실시예의 양자화 파라미터 조정장치를 나타내는 구조 블록도이고;
도68은 본 발명 실시예에 따른 보드 카드를 나타내는 구조 블록도이다.
양자화 파라미터의 조정문제를 해결하기 위해, 다음과 같은 방안(201910528537.8)을 제안하였다. 이하, 본 발명 실시예에 따른 도면을 참조하여 본 발명 실시예에 따른 기술방안을 명확하고 완전하게 설명한다, 물론, 所설명의 실시예是본 발명일부실시예, 而不是전부의 실시예. 본 발명의 실시예를 기반으로, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 창조적인 노력 없이 획득한 모든 다른 실시예는 모두 본 발명의 보호범위에 속한다.
또한, 본 발명의 청구항, 명세서 및 도면 중의 "제1 ", "제2 "등 용어는 특정 순서를 설명하기보다는 다를 대상을 구별하는 데 사용된다는 것을 이해해야 한다. 본 발명의 명세서와 청구범위에서 사용한 "포함한다" 및 "가진다" 등 용어는 설명하는 특징, 전체, 단계, 작업, 요소 및/또는 컴포넌트의 존재를 나타내지만, 하나 또는 복수의 다른 특징, 전체, 단계, 작업, 요소, 컴포넌트 및/또는 이들 컬렉션의 존재 또는 추가를 배제하지 않는다.
여기에서 본 발명 명세서에서 사용한 용어는 특정 실시예를 설명할 목적 뿐이며, 본 발명을 한정하는 것을 의도하지 않는 것도 이해해야 한다. 본 발명 명세서 및 청구범위에서 사용된 바와 같이, 문매이 다른 상황을 명확히 명시하지 않는 한, 단수 형식의 “하나”, “한 개” 및 “당해”는 복수 형식을 포함하도록 의도된다. 또한, 본 발명 명세서 및 청구범위에서 사용한 “및/또는 ” 용어는 관련하여 열거한 항목 중의 하나 또는 복수의 의 임의의 조합 및 모든 가능한 조합을 의미하며, 또한 이들 조합을 포함하는 것이 이해되어야 한다.
인공지능 알고리즘의 복잡성이 증가함에 따라, 처리될 데이터의 데이터 량과 데이터 차원도 끊임 없이 증가되고 있으며, 종래의 신경망 알고리즘은 일반적으로 부동 소수점 데이터 형식을 채용하여 신경망 연산을 실행하였다. 끊임 없이 증가되는 데이터 량 등은 연산장치의 데이터 처리효율, 저장장치의 저장용량 및 액세스 효율 등에 대하여 비교적 큰 도전을 제기하고 있다. 상술한 문제를 해결하기 위해, 신경망 연산과정에 관련된 연산 데이터를 양자화할 수 있다. 즉 부동 소수점 표현의 연산 데이터를 고정 소수점 표현의 연산 데이터로 전환하여, 저장장치의 저장용량 및 액세스 효율을 감소시키며, 연산장치의 연산효율을 향상시킬 수 있다. 그러나 종래의 양자화방법은 신경망의 전체 훈련과정에서 모두 동일한 데이터 비트폭과 양자화 파라미터(소수점의 위치 등)를 채용하여 신경망의 상이한 연산 데이터를 양자화한다. 상이한 연산 데이터 사이의 차이, 또는, 훈련과정의 여러 단계의 연산 데이터의 차이로 인해, 상술한 양자화방법을 채용하여 양자화할 때, 종종 정밀도가 불충분하여 연산결과에 영향을 주게 된다.
이를 바탕으로, 본 발명은 신경망의 양자화 파라미터 조정방법을 제공하는 바, 당해 방법은 메모리(110)와 프로세서(120)를 포함한 양자화 파라미터 조정장치에 적용된다. 도44은 당해 양자화 파라미터 조정장치(100)의 구조 블록도이고, 여기에서, 당해 양자화 파라미터 조정장치(100)의 프로세서(120)는 범용 프로세서일 수 있으며, 당해 양자화 파라미터 조정장치(100)의 프로세서(120)도 인공지능 프로세서일 수도 있으며, 당해 양자화 파라미터 조정장치(100)의 프로세서는 범용 프로세서와 인공지능 프로세서를 포함할 수도 있다. 여기에서는 구체적으로 한정하지 않는다. 당해 메모리(110)는 신경망 연산과정중의 연산 데이터를 저장하는 데 사용되며, 당해 연산 데이터는 뉴런 데이터, 가중치 데이터 또는 그래디언트 데이터 중의 한 가지 또는 여러 가지일 수 있다. 당해 메모리(110)는 컴퓨터 프로그램을 저장하는 데도 사용되며, 당해 컴퓨터 프로그램은 상술한 프로세서(120)에 의해 실행될 때, 본 발명 실시예에서의 양자화 파라미터 조정방법을 실현할 수 있다. 당해 방법은 신경망의 훈련 또는 미조정과정에 응용할 수 있으며, 신경망의 훈련 또는 미조정과정의 상이한 단계의 연산 데이터의 분포특성에 근거하여, 연산 데이터의 양자화 파라미터를 동적으로 조정할 수 있으며, 따라서 신경망의 양자화 과정의 정밀도를 향상하고, 연산결과의 정확성 및 신뢰성을 보장할 수 있다.
특히 명기되지 않는 한, 상기 인공지능 프로세서는 임의의 적절한 하드웨어 프로세서, 예를 들어, CPU, GPU, FPGA, DSP 및 ASIC 등일 수 있다 . 특히 명기되지 않는 한, 상기 메모리는 임의의 적절한 자기 저장 매체 또는광 자기 저장 매체, 예를 들어, 저항변화 메모리RRAM(Resistive Random Access Memory), 다이나믹 랜덤 액세스 메모리DRAM(Dynamic Random Access Memory), 스태틱 랜덤 액세스 메모리SRAM(Static Random-Access Memory), 임베디드 다이나믹 랜덤 액세스 메모리EDRAM(Enhanced Dynamic Random Access Memory), 고대역폭 메모리HBM(High-Bandwidth Memory)또는 하이브리드 메모리 큐브 HMC(Hybrid Memory Cube)등일 수 있다.
본 발명의 내용을 보다 쉽게 이해하기 위해, 이하에서는, 먼저 본 발명 실시예에 있어서의 양자화 과정 및 양자화 과정에 관련된 양자화 파라미터에 대하여 설명한다.
본 발명 실시예에서, 양자화는 제1 데이터 형식의 연산 데이터를 제2 데이터 형식의 연산 데이터로 변환하는 것을 의미한다. 여기에서, 당해 제1 데이터 형식의 연산 데이터는 부동 소수점 표현의 연산 데이터일 수 있고, 당해 제2 데이터 형식의 연산 데이터는 고정 소수점 표현의 연산 데이터일 수 있다. 부동 소수점 표현의 연산 데이터는 일반적으로 비교적 큰 저장공간을 점유하며, 따라서 부동 소수점 표현의 연산 데이터를 고정 소수점 표현의 연산 데이터로 변환함으로써, 저장공간을 절약하고, 연산 데이터의 액세스 효율 및 연산효율 등을 향상시킬 수 있다.
바람직하게는, 양자화 과정중의 양자화 파라미터는 점 위치 및/또는 스케일 팩터를 포함할 수 있다. 여기에서, 점 위치는 양자화 후의 연산 데이터에서의 소수점의 위치를 의미한다. 스케일 팩터는 양자화 데이터의 최대 값과 양자화 대상 데이터의 최대 절대치 사이의 비율을 의미한다. 또한, 양자화 파라미터는 오프셋을 포함할 수 있다. 오프셋은, 비대칭의 양자화 대상 데이터에 대하여, 당해 양자화 대상 데이터 중의 복수의 요소의 중간 값을 의미하며, 구체적으로는, 오프셋은 양자화 대상 데이터 중 복수의 요소의 중앙 값일 수 있다. 당해 양자화 대상 데이터가 대칭적인 양자화 대상 데이터인 경우, 양자화 파라미터는 오프셋을 포함하지 않아도 된다. 이 때 당해 양자화 대상 데이터에 근거하여 점 위치 및/또는 스케일 팩터 등 양자화 파라미터를 확정할 수 있다.
도67에 도시된 바와 같이, 양자화 대상 데이터는 원점에 대하여 대칭되는 데이터이며, Z1가 양자화 대상 데이터 중 요소의 절대치의 최대 값이고, 양자화 대상 데이터에 대응하는 데이터 비트폭이 n이며, A가 데이터 비트폭 n으로 양자화 대상 데이터를 양자화한 후의 양자화 데이터로서 표현할 수 있는 최대 값이라고 가정하면,
Figure pat00662
이다. A는 Z1을 포함하며 Z1>
Figure pat00663
인 필요가 있다. 따라서 수학식(1)의 제약이 있다.
Figure pat00664
수학식(1)
프로세서는 양자화 대상 데이터 중의 절대치 최대 값Z1과 데이터 비트폭n에 근거하여, 점 위치s를 계산할 수 있다. 예를 들어, 다음과 같은 수학식(2)을 이용하여 양자화 대상 데이터에 대응하는 점 위치s를 계산하여 얻을 수 있다.
Figure pat00665
수학식(2)
여기에서, ceil은 정수로 올림이고, Z1은 양자화 대상 데이터 중의 절대치 최대 값이며, s는 점 위치이고, n은 데이터 비트폭이다.
이 때, 점 위치s를 채용하여 양자화 대상 데이터를 양자화할 때, 부동 소수점 표현의 양자화 대상 데이터
Figure pat00666
Figure pat00667
로 표현할 수 있다. 여기에서,
Figure pat00668
는 양자화 후의 n비트 바이너리 표현 값이고, s는 점 위치를 표현한다. 여기에서, 당해 양자화 대상 데이터에 대응하는 양자화 데이터는 다음과 같다.
Figure pat00669
수학식(3)
여기에서, s는 점 위치이고,
Figure pat00670
는 양자화 데이터이며,
Figure pat00671
는 양자화 대상 데이터이고,
Figure pat00672
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다, 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(3)중의 반올림의 정수연산을 대체할 수 있다. 이해할 수 있은 것은, 데이터 비트폭이 일정한 경우, 점 위치에 근거하여 양자화하여 얻은 양자화 데이터에서, 소수점 뒤의 비트 수가 많으면 많을수록 양자화 데이터의 양자화 정밀도가 높아진다.
또한, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터
Figure pat00673
은 다음과 같을 수 있다.
Figure pat00674
수학식(4)
여기에서, s는 상술한 수학식(2)에 따라 확정한 점 위치이고,
Figure pat00675
는 양자화 대상 데이터이며,
Figure pat00676
는 반올림에 따른 정수연산이다.
Figure pat00677
은 상술한 양자화 데이터
Figure pat00678
에 대해 역 양자화하여 획득한 데이터이고, 당해 중간표현 데이터
Figure pat00679
의 데이터 표현형식은 상술한 양자화 대상 데이터
Figure pat00680
의 데이터 표현형식과 일치하며, 당해 중간표현 데이터
Figure pat00681
는 양자화 오차를 계산는 사용된다(상세에 대해 후술함). 여기에서, 역 양자화는 양자화의 반대과정을 의미한다.
바람직하게는, 스케일 팩터는 제1 스케일 팩터를 포함할 수 있다. 당해 제1 스케일 팩터는 다음과 같은 방식으로 계산할 수 있다.
Figure pat00682
=
Figure pat00683
수학식(5)
여기에서, Z1은 양자화 대상 데이터 중의 절대치 최대 값이고, A는 데이터 비트폭 n으로 양자화 대상 데이터를 양자화한 후 데이터의 양자화 데이터가 표현할 수 있는 최대 값이며,
Figure pat00684
이다.
이 때, 프로세서는 점 위치와 제1 스케일 팩터를 결합한 방식을 채용하여 양자화 대상 데이터
Figure pat00685
를 양자화하여 양자화 데이터를 획득할 수 있다.
Figure pat00686
수학식(6)
여기에서, s는 상술한 수학식(2)따라 확정한 점 위치이고,
Figure pat00687
은 제1 스케일 팩터이고,
Figure pat00688
는 양자화 데이터이며,
Figure pat00689
는 양자화 대상 데이터이고,
Figure pat00690
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(6)중의 반올림의 정수연산을 대체할 수 있다.
또한, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터
Figure pat00691
는 다음과 같을 수 있다.
Figure pat00692
수학식(7)
여기에서, s는 상술한 수학식(2)에 따라 확정한 점 위치이고,
Figure pat00693
은 스케일 팩터이며,
Figure pat00694
는 양자화 대상 데이터이고,
Figure pat00695
는 반올림에 따른 정수연산이다.
Figure pat00696
은 상술한 양자화 데이터
Figure pat00697
에 대하여 역 양자화하여 획득한 데이터이고, 당해 중간표현 데이터
Figure pat00698
의 데이터 표현형식은 상술한 양자화 대상 데이터
Figure pat00699
의 데이터 표현형식과 일치하며, 당해 중간표현 데이터
Figure pat00700
은 양자화 오차의 계산에 사용될 수 있다(상세에 대해 후술함). 여기에서, 역 양자화는 양자화의 반대과정을 의미한다.
바람직하게는, 당해 스케일 팩터는 제2 스케일 팩터를 포함할 수 있다. 당해 제2 스케일 팩터는 다음과 같은 방식으로 계산될 수 있다.
Figure pat00701
=
Figure pat00702
수학식(8)
프로세서는 제2 스케일 팩터를 별도로 사용하여 양자화 대상 데이터
Figure pat00703
를 양자화하여 양자화 데이터를 획득할 수 있다.
Figure pat00704
수학식(9)
여기에서,
Figure pat00705
는 제2 스케일 팩터이고,
Figure pat00706
는 양자화 데이터이며,
Figure pat00707
는 양자화 대상 데이터이고,
Figure pat00708
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(9)중의 반올림의 정수연산을 대체할 수 있다. 이해할 수 있은 것은, 데이터 비트폭이 일정한 경우, 상이한 스케일 팩터를 채용하면 양자화 된 데이터의 수치범위를 조정할 수 있다.
또한, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터
Figure pat00709
은 다음과 같을 수 있다.
Figure pat00710
수학식(10)
여기에서,
Figure pat00711
는 제2 스케일 팩터이고,
Figure pat00712
는 양자화 대상 데이터이고,
Figure pat00713
는 반올림에 따른 정수연산이다.
Figure pat00714
은 상술한 양자화 데이터
Figure pat00715
에 대해 역 양자화하여 획득한 데이터일 수 있으며, 당해 중간표현 데이터
Figure pat00716
의 데이터 표현형식은 상술한 양자화 대상 데이터
Figure pat00717
의 데이터 표현형식과 일치하고, 당해 중간표현 데이터
Figure pat00718
은 양자화 오차를 계산하는 데 사용될 수 있다 (상세에 대해 후술함). 여기에서, 역 양자화는 양자화의 반대과정을 의미한다.
또한, 상술한 제2 스케일 팩터는 점 위치와 제1 스케일 팩터
Figure pat00719
에 근거하여 확정한 것일 수 있다. 즉 제2 스케일 팩터는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00720
=
Figure pat00721
수학식(11)
여기에서, s는 상술한 수학식(2)에 따라 확정한 점 위치이고,
Figure pat00722
은 상술한 수학식(5)에 따라 계산하여 획득한 제1 스케일 팩터이다.
바람직하게는, 본 발명 실시예의 양자화방법은 대칭적 데이터의 양자화를 실현할 뿐만 아니라, 비대칭적 데이터의 양자화도 실현할 수 있다. 이 때, 프로세서는 비대칭적인 데이터를 대칭적 데이터로 변환하여 데이터의 "오버플로"를 회피할 수 있다. 구체적으로는, 양자화 파라미터는 오프셋을 포함할 수 있다. 당해 오프셋은 양자화 대상 데이터의 중앙 값일 수 있고, 당해 오프셋은 양자화 대상 데이터의 중앙 값이 원점에 대한 오프셋을 표현할 수 있다. 도3-3에 도시된 바와 같이, 프로세서는 양자화 대상 데이터의 데이터분포에 대해 통계하여, 양자화 대상 데이터 중 모든 요소 중의 최소 값
Figure pat00723
, 및 당해 양자화 대상 데이터 중 모든 요소 중의 최대 값
Figure pat00724
을 획득할 수 있으며, 그 다음에는, 프로세서는 당해 최소 값
Figure pat00725
과 최대 값
Figure pat00726
에 근거하여 상술한 오프셋을 계산하여 획득할 수 있다. 구체적인 오프셋 계산방식은 다음과 같다.
Figure pat00727
수학식(12)
여기에서, o는 오프셋을 나타내고,
Figure pat00728
은 양자화 대상 데이터 모든 요소 중의 최소 값을 나타내고,
Figure pat00729
은 양자화 대상 데이터 모든 요소 중의 최대 값을 나타낸다.
또한, 프로세서는 당해 양자화 대상 데이터 모든 요소 중의 최소 값
Figure pat00730
과 최대 값
Figure pat00731
에 근거하여 당해 양자화 대상 데이터 중의 절대치 최대 값
Figure pat00732
를 확정할 수 있다.
Figure pat00733
수학식(13)
이러한 방식으로, 도3-3에 도시된 바와 같이, 프로세서는 오프셋o에 근거하여 양자화 대상 데이터를 평행이동시켜, 비대칭인 양자화 대상 데이터를 대칭적인 양자화 대상 데이터로 변환할 수 있다. 프로세서는 당해 양자화 대상 데이터 중의 절대치 최대 값
Figure pat00734
에 근거하여 진일보로 점 위치s를 확정할 수 있다. 여기에서, 점 위치는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00735
수학식(14)
여기에서, ceil은 정수로 올림이고, s는 점 위치이고, n은 데이터 비트폭이다.
그 다음에는, 프로세서는 당해 오프셋 및 그에 대응하는 점 위치에 근거하여 양자화 대상 데이터를 양자화하며, 양자화 데이터를 획득할 수 있다.
Figure pat00736
수학식(15)
여기에서, s는 상술한 수학식(14)에 따라 확정한 점 위치이고,
Figure pat00737
는 양자화 데이터이며,
Figure pat00738
는 양자화 대상 데이터이고,
Figure pat00739
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다, 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(15)중의 반올림의 정수연산을 대체할 수 있다.
또한, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터
Figure pat00740
은 다음과 같을 수 있다.
Figure pat00741
수학식(16)
여기에서, s는 상술한 수학식(14)에 따라 확정한 점 위치이고,
Figure pat00742
는 오프셋이며,
Figure pat00743
는 양자화 대상 데이터이고,
Figure pat00744
는 반올림에 따른 정수연산이다.
Figure pat00745
은 상술한 양자화 데이터
Figure pat00746
에 대해 역 양자화하여 획득한 데이터일 수 있고, 당해 중간표현 데이터
Figure pat00747
의 데이터 표현형식은 상술한 양자화 대상 데이터
Figure pat00748
의 데이터 표현형식과 일치하며, 당해 중간표현 데이터
Figure pat00749
은 양자화 오차를 계산하는 데 사용될 수 있다 (상세에 대해 후술함). 여기에서, 역 양자화는 양자화의 반대과정을 의미한다.
더 바람직하게는, 프로세서는 당해 양자화 대상 데이터 중의 절대치 최대 값
Figure pat00750
에 근거하여 진일보로 점 위치s와 제1 스케일 팩터
Figure pat00751
을 확정할 수 있다. 여기에서, 점 위치s의 구체적 계산방식은 상술한 수학식(14)를 참조하면 된다. 제1 스케일 팩터
Figure pat00752
는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00753
=
Figure pat00754
수학식(17)
프로세서는 오프셋 및 그에 대응하는 제1 스케일 팩터
Figure pat00755
과 점 위치s에 근거하여, 양자화 대상 데이터를 양자화하며, 양자화 데이터를 획득할 수 있다.
Figure pat00756
수학식(18)
여기에서,
Figure pat00757
은 제1 스케일 팩터이고, s는 상술한 수학식(14)에 따라 확정한 점 위치이고,
Figure pat00758
는 양자화 데이터이며,
Figure pat00759
는 양자화 대상 데이터이고,
Figure pat00760
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(18)중의 반올림의 정수연산을 대체할 수 있다.
또한, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터
Figure pat00761
는 다음과 같을 수 있다.
Figure pat00762
수학식(19)
여기에서,
Figure pat00763
은 제1 스케일 팩터이고, s는 상술한 수학식(14)에 따라 확정한 점 위치이고, o는 오프셋이며,
Figure pat00764
는 양자화 대상 데이터이고,
Figure pat00765
는 반올림에 따른 정수연산이다.
Figure pat00766
은 상술한 양자화 데이터
Figure pat00767
에 대하여 역 양자화하여 획득한 데이터일 수 있으며, 당해 중간표현 데이터
Figure pat00768
의 데이터 표현형식은 상술한 양자화 대상 데이터
Figure pat00769
의 데이터 표현형식과 일치하며, 당해 중간표현 데이터
Figure pat00770
은 양자화 오차를 계산하는 데 사용될 수 있다,(상세에 대해 후술함). 여기에서, 역 양자화는 양자화의 반대과정을 의미한다.
바람직하게는, 당해 스케일 팩터는 제2 스케일 팩터를 포함할 수 있고, 당해 제2 스케일 팩터는 다음과 같은 방식으로 계산될 수 있다.
Figure pat00771
=
Figure pat00772
수학식(20)
프로세서는 제2 스케일 팩터를 별도로 사용하여 양자화 대상 데이터
Figure pat00773
를 양자화함으로써, 양자화 데이터를 획득할 수 있다.
Figure pat00774
수학식(21)
여기에서,
Figure pat00775
는 제2 스케일 팩터이고,
Figure pat00776
는 양자화 데이터이며,
Figure pat00777
는 양자화 대상 데이터이고,
Figure pat00778
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(21)중의 반올림의 정수연산을 대체할 수 있다. 이해할 수 있은 것은, 데이터 비트폭이 일정한 경우, 상이한 스케일 팩터를 채용하면 양자화 된 데이터의 수치범위를 조정할 수 있다.
또한, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터
Figure pat00779
은 다음과 같을 수 있다.
Figure pat00780
수학식(22)
여기에서,
Figure pat00781
는 제2 스케일 팩터이고,
Figure pat00782
는 양자화 대상 데이터이며,
Figure pat00783
는 반올림에 따른 정수연산이다.
Figure pat00784
은 상술한 양자화 데이터
Figure pat00785
에 대해 역 양자화하여 획득한 데이터일 수 있고, 당해 중간표현 데이터
Figure pat00786
의 데이터 표현형식은 상술한 양자화 대상 데이터
Figure pat00787
의 데이터 표현형식과 일치하며, 당해 중간표현 데이터
Figure pat00788
은 양자화 오차를 계산하는 데 사용될 수 있다 (상세에 대해 후술함). 여기에서, 역 양자화는 양자화의 반대과정을 의미한다.
또한, 상술한 제2 스케일 팩터는 점 위치와 제1 스케일 팩터
Figure pat00789
에 근거하여 확정할 수 있다. 즉 제2 스케일 팩터는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00790
=
Figure pat00791
수학식(23)
여기에서, s는 상술한 수학식(14)에 따라 확정한 점 위치이고,
Figure pat00792
은 상술한 수학식(17)에 따라 계산하여 획득한 제1 스케일 팩터이다.
바람직하게는, 프로세서는 오프셋o에 근거하여 양자화 대상 데이터를 양자화할 수 있다. 이 때 점 위치s 및/또는 스케일 팩터는 미리 설정된 값일 수 있다. 이 때, 프로세서는 오프셋에 근거하여 양자화 대상 데이터를 양자화하며, 양자화 데이터를 획득한다.
Figure pat00793
수학식(24)
여기에서,
Figure pat00794
는 오프셋이고,
Figure pat00795
는 양자화 데이터이며,
Figure pat00796
는 양자화 대상 데이터이고,
Figure pat00797
는 반올림에 따른 정수연산이다. 이해할 수 있은 것은, 다른 정수연산방법을 채용할 수도 있다. 예를 들어, 정수로 올림, 정수로 내림, 0을 향해 버림 또는 올림 등 정수연산을 채용하여, 수학식(24)중의 반올림의 정수연산을 대체할 수 있다. 이해할 수 있은 것은, 데이터 비트폭이 일정한 경우, 서로 다른 오프셋을 채용하여 양자화 된 데이터의 수치와 양자화 전의 데이터 사이의 오프셋을 조정할 수 있다.
또한, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터
Figure pat00798
은 다음과 같을 수 있다.
Figure pat00799
수학식(25)
여기에서, o는 오프셋이며,
Figure pat00800
는 양자화 대상 데이터이고,
Figure pat00801
는 반올림에 따른 정수연산이다.
Figure pat00802
은 상술한 양자화 데이터
Figure pat00803
에 대해 역 양자화하여 획득한 데이터일 수 있고, 당해 중간표현 데이터
Figure pat00804
의 데이터 표현형식은 상술한 양자화 대상 데이터
Figure pat00805
의 데이터 표현형식과 일치하며, 당해 중간표현 데이터
Figure pat00806
은 양자화 오차를 계산하는 데 사용될 수 있다 (상세에 대해 후술함). 여기에서, 역 양자화는 양자화의 반대과정을 의미한다.
본 발명의 양자화작업은 상술한 부동 소수점 데이터의 양자화에 사용될 수 있을 뿐만 아니라, 고정 소수점 데이터의 양자화를 실현하는 데도 사용될 수 있다. 바람직하게는, 당해 제1 데이터 형식의 연산 데이터는 고정 소수점 표현의 연산 데이터일 수 있고, 당해 제2 데이터 형식의 연산 데이터는 고정 소수점 표현의 연산 데이터일 수 있으며, 제2 데이터 형식의 연산 데이터의 데이터 표현범위는 제1 데이터 형식의 데이터 표현범위보다 작고, 제2 데이터 형식의 소수점 비트 수는 제1 데이터 형식의 소수점 비트 수보다 크다. 즉 제2 데이터 형식의 연산 데이터는 제1 데이터 형식의 연산 데이터에 비해 보다 높은 정밀도를 가진다. 예를 들어, 당해 제1 데이터 형식의 연산 데이터는 16비트를 점유한 고정 소수점 데이터이며, 당해 제2 데이터 형식은 8비트를 점유한 고정 소수점 데이터일 수 있다. 본 발명 실시예에서, 고정 소수점이 나타내는 연산 데이터를 양자화 처리함으로써 연산 데이터가 점유의 저장공간을 진일보로 삭감하고, 연산 데이터의 액세스 효율 및 연산효율을 향상시킬 수 있다.
본 발명의 일 실시예의 양자화 파라미터 조정방법은, 신경망의 훈련 또는 미조정과정에 응용할 수 있으며, 신경망의 훈련 또는 미조정과정에서, 신경망 연산과정의 연산 데이터의 양자화 파라미터를 동적으로 조정하여 당해 신경망의 양자화 정밀도를 향상시킬 수 있다. 여기에서, 신경망은 심층 신경망 또는 컨볼루션 신경망 등일 수 있으며, 여기에서는 구체적으로 한정하지 않는다.
또한, 신경망의 훈련(Training)은 신경망(당해 신경망의 가중치는 난수일 수 있다)에 대해 여러번 반복연산(iteration)을 수행하여 신경망의 가중치가 미리 설정된 조건을 충족할 수 있게 하는 과정이라는 것이 분명해야 한다. 여기에서, 1회 반복연산은 일반적으로 1회 순방향 연산, 1회 역방향 연산 및 1회 가중치 업데이트 연산을 포함한다. 순방향 연산은 신경망의 입력 데이터에 근거하여 순방향 추론을 수행하여 순방향 연산결과를 획득하는 과정을 의미한다. 역방향 연산은 순방향 연산결과와 미리 설정된 기준 값에 근거하여 손실 값을 확정하고, 당해 손실 값에 근거하여 가중치 그래디언트 값 및/또는 입력 데이터 그래디언트 값을 확정하는 과정을 의미한다. 가중치 업데이트 연산은 가중치 그래디언트 값에 근거하여 신경망의 가중치를 조정하는 과정을 의미한다. 구체적으로는, 신경망의 훈련과정은 다음과 같다. 프로세서는 가중치가 난수인 신경망을 채용하여 입력 데이터에 대해 순방향 연산을 수행하여 순방향 연산결과를 획득할 수 있다. 그 다음에는 프로세서는 당해 순방향 연산결과와 미리 설정된 기준 값에 근거하여 손실 값을 확정하고, 당해 손실 값에 근거하여 가중치 그래디언트 값 및/또는 입력 데이터 그래디언트 값을 확정한다. 마지막, 프로세서는 가중치 그래디언트 값에 근거하여 신경망의 그래디언트 값을 업데이트하여 새로운 가중치를 획득하여 1회 반복연산을 완료할 수 있다. 프로세서는 신경망의 순방향 연산결과가 미리 설정된 조건을 충족할 때까지 반복연산을 여러번 루프 실행한다. 예를 들어, 신경망의 순방향 연산결과가 미리 설정된 기준 값에 수렴되면 훈련이 종료된다. 또는, 신경망의 순방향 연산결과와 미리 설정된 기준 값이 확정한 손실 값이 미리 설정된 정밀도 이하인 경우 훈련이 종료된다.
미조정은 신경망(당해 신경망의 가중치는 이미 수렴상태에 있으며 난수가 아니다)에 대해 여러번 반복연산을 수행하여 신경망의 정밀도가 미리 설정된 요구사항을 충족시킬 수 있도록 하는 과정을 의미한다. 당해 미조정과정과 상술한 훈련과정은 기본적으로 일치하며, 수렴상태에 있는 신경망을 다시 훈련하는 과정이라고 간주할 수 있다. 추론(Inference)은 가중치가 미리 설정된 조건을 충족하는 신경망을 채용하여 순방향 연산을 수행하여 식별 또는 분류 등 기능을 실현하는 과정을 의미한다. 예를 들어 신경망을 채용하여 화상식별 등을 수행한다 .
본 발명 실시예에서, 상술한 신경망의 훈련 또는 미조정과정에서, 신경망 연산의 상이한 단계에서 상이한 양자화 파라미터를 채용하여 신경망의 연산 데이터를 양자화하며, 양자화 후의 데이터에 근거하여 반복연산을 수행할 수 있다. 따라서 신경망 연산과정에서의 데이터 저장공간을 감소시키고, 데이터 액세스 효율 및 연산효율을 향상시킬 수 있다. 도3-4에 도시된 바와 같이, 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
S100, 양자화 대상 데이터의 데이터 변동폭을 획득한다.
바람직하게는, 프로세서는 당해 양자화 대상 데이터의 데이터 변동폭을 직접 읽어 낼 수 있으며, 당해 양자화 대상 데이터의 데이터 변동폭은 사용자가 입력할 수 있다.
바람직하게는, 프로세서는 현재 반복의 양자화 대상 데이터와 이력 반복의 양자화 대상 데이터에 근거하여 계산을 통해 상술한 양자화 대상 데이터의 데이터 변동폭을 획득할 수도 있다, 여기에서 현재 반복은 현재 실행하는 반복연산을 의미하고, 이력 반복은 현재 반복 전에 실행한 반복연산을 의미한다. 예를 들어, 프로세서는 현재 반복의 양자화 대상 데이터 중 요소의 최대 값과 요소의 평균 값, 및 각 이력 반복의 양자화 대상 데이터 중 요소의 최대 값과 요소의 평균 값를 획득하고, 매번 반복 중 요소의 최대 값과 요소의 평균 값에 근거하여 양자화 대상 데이터의 변동폭을 확정할 수 있다. 현재 반복의 양자화 대상 데이터 중 요소의 최대 값이 미리 설정된 수의 이력 반복의 양자화 대상 데이터 중 요소의 최대 값에 가까울 경우, 또 현재 반복의 양자화 대상 데이터 중 요소의 평균 값가 미리 설정된 수의 이력 반복의 양자화 대상 데이터 중 요소의 평균 값에 가까울 경우, 상술한 양자화 대상 데이터의 데이터 변동폭이 작다고 확정할 수 있다. 그렇지 않을 경우, 양자화 대상 데이터의 데이터 변동폭이 크다고 확정할 수 있다. 한편, 당해 양자화 대상 데이터의 데이터 변동폭은 양자화 대상 데이터의 이동평균 값 또는 분산 등을 채용하여 표현할 수 있으며, 여기에서는 구체적으로 한정하지 않는다.
본 발명 실시예에서, 당해 양자화 대상 데이터의 데이터 변동폭은 양자화 대상 데이터의 양자화 파라미터를 조정할 필요가 있는지 여부를 확정하는 데 사용할 수 있다. 예를 들어, 양자화 대상 데이터의 데이터 변동폭이 비교적 크면 양자화 정밀도를 보장하기 위해 양자화 파라미터를 제때에 조정할 필요가 있는 것을 설명할 수 있다. 양자화 대상 데이터의 데이터 변동폭이 비교적 작으면 현재 검사 반복 및 그 다음의 일정 수의 반복에서 이력 반복의 양자화 파라미터를 계속하여 사용할 수 있으며, 양자화 파라미터의 빈번한 조정을 회피할 수 있고 양자화 효율을 향상시킬 수 있다.
여기에서, 매번 반복은 적어도 하나의 양자화 대상 데이터에 관련되며, 당해 양자화 대상 데이터는 부동 소수점으로 표현하는 연산 데이터일 수 있고, 고정 소수점으로 표현하는 연산 데이터일 수도 있다. 바람직하게는, 매번 반복의 양자화 대상 데이터는 뉴런데이터, 가중치 데이터 또는 그래디언트 데이터 중 적어도 한 가지일 수 있으며, 그래디언트 데이터는 뉴런 그래디언트 데이터와 가중치 그래디언트 데이터 등을 포함할 수도 있다.
S200, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 당해 목표반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 조정한다. 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하며, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
바람직하게는, 당해 양자화 파라미터는 상술한 점 위치 및/또는 스케일 팩터를 포함할 수 있다. 여기에서, 스케일 팩터는 제1 스케일 팩터와 제2 스케일 팩터를 포함할 수 있다. 구체적인 점 위치 계산방법은 상술한 수학식(2)를 참조할 수 있다. 스케일 팩터의 계산방법은 상술한 수학식(5) 또는 (8)을 참조할 수 있으며, 여기에서 다시 언급하지 않는다. 바람직하게는, 당해 양자화 파라미터는 오프셋을 포함할 수 있으며, 당해 오프셋의 계산방법은 상술한 수학식(12)을 참조할 수 있다. 또한, 프로세서는 수학식(14)에 따라 점 위치를 확정하고, 상술한 수학식(17) 또는 (20)에 따라 스케일 팩터를 확정할 수 있다. 본 발명 실시예에서, 프로세서는 확정한 목표반복간격에 근거하여, 상술한 점 위치, 스케일 팩터 또는 오프셋 중 적어도 한 가지를 업데이트하여 당해 신경망 연산 중의 양자화 파라미터를 조정할 수 있다. 즉, 당해 신경망 연산 중의 양자화 파라미터는 신경망 연산 중 양자화 대상 데이터의 데이터 변동폭에 근거하여 업데이트함으로써 양자화 정밀도를 보장할 수 있다.
또한, 신경망의 훈련 또는 미조정과정에서 연산 데이터의 변화추세를 통계 및 분석하는 것을 통해 양자화 대상 데이터의 데이터 변동곡선을 얻을 수 있음을 이해할 수 있다. 도3-5에 도시된 바와 같이, 당해 데이터 변동곡선으로부터, 신경망의 훈련 또는 미조정 초기에서, 상이한 반복의 양자화 대상 데이터의 데이터 변동이 격렬하며, 훈련 또는 미조정 연산이 진행함에 따라 상이한 반복의 양자화 대상 데이터의 데이터 변동이 점차 평탄해지는 경향이 있음을 알 수 있다. 따라서, 신경망 훈련 또는 미조정의 초기에서, 양자화 파라미터를 비교적 빈번하게 조정할 수 있다. 신경망 훈련 또는 미조정의 중기 및 후기에서, 여러번 반복 또는 훈련주기 간격으로 양자화 파라미터를 다시 조정할 수 있다. 본 발명의 방법은 적절한 반복간격을 확정함으로써 양자화 정밀도와 양자화 효율의 균형을 달성하는 것이다.
구체적으로는, 프로세서는 양자화 대상 데이터의 데이터 변동폭을 통해 목표반복간격을 확정하여, 당해 목표반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 조정한다. 바람직하게는, 당해 목표반복간격은 양자화 대상 데이터의 데이터 변동폭의 감소에 따라 증가할 수 있다. 즉, 당해 양자화 대상 데이터의 데이터 변동폭이 크면 클 수록 당해 목표반복간격이 작아지며, 양자화 파라미터의 조정이 빈번해 진다는 것을 나타낸다. 당해 양자화 대상 데이터의 데이터 변동폭이 작으면 작을 수록 당해 목표반복간격이 커지며, 양자화 파라미터의 조정이 빈번하지 않은 것을 나타낸다. 물론, 다른 실시예에서, 상술한 목표반복간격은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 목표반복간격은 사용자 자신의 이해에 따라 설정될 수 있다.
바람직하게는, 상술한 가중치 데이터, 뉴런 데이터 및 그래디언트 데이터 등 각종 양자화 대상 데이터는 서로 다른 반복간격을 가질 수 있다. 이에 대응하여, 프로세서는 각종 양자화 대상 데이터에 대응하는 데이터 변동폭을 각각 획득하여 각 종류의 양자화 대상 데이터의 데이터 변동폭에 근거하여 대응 종류의 양자화 대상 데이터에 대응하는 목표반복간격을 각각 확정할 수 있다. 즉, 각종 양자화 대상 데이터의 양자화 과정은 비동기적으로 수행할 수 있다. 본 발명 실시예에서, 서로 다른 종류의 양자화 대상 데이터 사이에는 차이가 있어서, 서로 다른 양자화 대상 데이터의 데이터 변동폭을 채용하여 대응하는 목표반복간격을 확정하고, 대응하는 목표반복간격에 근거하여 대응하는 양자화 파라미터를 각각 확정할 수 있다. 따라서 양자화 대상 데이터의 양자화 정밀도를 보장하고, 신경망의 연산결과의 정확성도 보장할 수 있다.
물론, 다른 실시예에서, 서로 다른 종류의 양자화 대상 데이터에 대하여, 동일한 목표반복간격을 확정하여 당해 목표반복간격에 근거하여 대응하는 양자화 대상 데이터에 대응하는 양자화 파라미터를 조정할 수도 있다. 예를 들어, 프로세서는 각종 양자화 대상 데이터의 데이터 변동폭을 각각 획득하고, 최대의 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하며, 당해 목표반복간격에 근거하여 각종 양자화 대상 데이터의 양자화 파라미터를 각각 확정할 수 있다. 또한, 서로 다른 종류의 양자화 대상 데이터는 동일한 양자화 파라미터를 채용할 수도 있다.
더 바람직하게는, 상술한 신경망은 적어도 하나의 연산층을 포함할 수 있으며, 당해 양자화 대상 데이터는 각 연산층에 관련된 뉴런 데이터, 가중치 데이터 또는 그래디언트 데이터 중의 적어도 한 가지일 수 있다. 이 때, 프로세서는 현재 연산층에 관련된 양자화 대상 데이터를 획득하고, 상술한 방법에 따라 현재 연산층 중 각종 양자화 대상 데이터의 데이터 변동폭 및 대응하는 목표반복간격을 확정할 수 있다.
바람직하게는, 프로세서는 매번 반복연산과정에서 모두 상술한 양자화 대상 데이터의 데이터 변동폭을 한번 확정하고, 대응하는 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 한번 확정할 수 있다. 즉, 프로세서는 매번 반복할 때마다 목표반복간격을 한번 계산할 수 있다. 구체적인 목표반복간격의 계산방식은 다음의 설명을 참조할 수 있다. 또한, 프로세서는 미리 설정된 조건에 따라 각 반복에서 검사 반복을 선정하고, 각 검사 반복에서 양자화 대상 데이터의 변동폭을 확정하며, 검사 반복에 대응하는 목표반복간격에 근거하여 양자화 파라미터 등의 업데이트를 조정할 수 있다. 이 때, 당해 반복이 선정된 검사 반복이 아닌 경우, 프로세서는 당해 반복에 대응하는 목표반복간격을 무시할 수 있다.
바람직하게는, 각 목표반복간격은 하나의 검사 반복에 대응할 수 있고, 당해 검사 반복은 당해 목표반복간격의 처음 반복일 수 있으며, 당해 목표반복간격의 종료 반복일 수도 있다. 프로세서는 각 목표반복간격의 검사 반복에서 신경망의 양자화 파라미터를 조정하여 목표반복간격에 따른 신경망 연산의 양자화 파라미터의 조정을 실현할 수 있다. 여기에서, 검사 반복은 현재 양자화 파라미터가 양자화 대상 데이터의 요구사항을 충족하는지 여부를 검증하기 위한 시점일 수 있다. 당해 조정하기 전의 양자화 파라미터는 조정 후의 양자화 파라미터와 같을 수 있고, 조정 후의 양자화 파라미터와 다를 수도 있다. 바람직하게는, 인접하는 검사 반복 사이의 간격은 하나의 목표반복간격 이상일 수 있다.
예를 들어, 당해 목표반복간격은 현재 검사 반복으로부터 반복회수를 계산할 수 있으며, 당해 현재 검사 반복은 당해 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제100회 반복, 제101회 반복 및 제102회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 프로세서는 당해 제100회 반복에서 신경망 연산 중의 양자화 파라미터를 조정할 수 있다 . 여기에서, 현재 검사 반복은 프로세서가 현재 양자화 파라미터 업데이트의 조정을 실행하는 경우에 대응하는 반복연산이다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있고, 당해 현재 검사 반복은 현재 검사 반복 이전의 이전 반복간격의 종료 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제101회 반복, 제102회 반복 및 제103회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 프로세서는 당해 제100회 반복과 제103회 반복에서 신경망 연산 중의 양자화 파라미터를 조정할 수 있다 . 본 발명은 목표반복간격의 확정방식에 대하여 특히 한정하지 않는다.
일 실시예에서, 상술한 점 위치, 스케일 팩터 및 오프셋의 계산 수학식으로부터 알 수 있는 바와 같이, 양자화 파라미터는 종종 양자화 대상 데이터와 관련되며, 따라서, 상술한 작업(S100)에서, 양자화 대상 데이터의 데이터 변동폭은 양자화 파라미터의 변동폭을 통해 간접적으로 확정할 수도 있고, 당해 양자화 대상 데이터의 데이터 변동폭은 양자화 파라미터의 변동폭을 통해 특성화할 수 있다. 구체적으로는, 도3-6에 도시된 바와 같이, 상술한 작업(S100)은 다음과 같은 단계를 포함할 수 있다.
S110, 점 위치의 변동폭을 획득한다. 여기에서, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용할 수 있으며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있다.
바람직하게는, 점 위치의 변동폭은 간접적으로 양자화 대상 데이터의 변동폭을 반영할 수 있다. 당해 점 위치의 변동폭은 현재 검사 반복의 점 위치와 적어도 1회의 이력 반복의 점 위치에 의해 확정될 수 있다 . 여기에서, 현재 검사 반복의 점 위치 및 각회 이력 반복의 점 위치는 수학식(2)에 의해 확정할 수 있다. 물론, 현재 검사 반복의 점 위치및 각회 이력 반복의 점 위치는 수학식(14)에 의해 확정할 수 있다.
예를 들어, 프로세서는 현재 검사 반복의 점 위치와 이력 반복의 점 위치의 분산 등을 계산하고, 당해 분산에 근거하여 점 위치의 변동폭을 확정할 수도 있다. 또한, 프로세서는 현재 검사 반복의 점 위치와 이력 반복의 점 위치의 평균치에 근거하여 점 위치의 변동폭을 확정할 수 있다. 구체적으로는, 도3-7에 도시된 바와 같이, 상술한 작업(S110)은 다음과 같은 단계를 포함할 수 있다.
S111, 상기 현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정한다. 여기에서, 전회 검사 반복은 전회에서 상기 양자화 파라미터를 조정하는 경우에 대응하는 반복이며, 전회 검사 반복과 상기 현재 검사 반복 사이에 적어도 하나의 반복간격을 둔다.
바람직하게는, 적어도 1회 이력 반복은 적어도 하나의 반복간격에 각각 속할 수 있으며, 각 반복간격은 대응하여 하나의 검사 반복이 있을 수 있고, 인접한 2개의 검사 반복은 하나의 반복간격을 가질 수 있다. 상술한 작업(S111)중의 전회 검사 반복은 목표반복간격 전의 전회 반복간격에 대응하는 검사 반복일 수 있다.
바람직하게는, 당해 제1 균치는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00807
수학식(26)
여기에서, a1~am은 각 반복의 점 위치에 대응하는 계산 가중치이고,
Figure pat00808
는 전회 검사 반복에 대응하는 점 위치이며,
Figure pat00809
...
Figure pat00810
는 전회 검사 반복 전의 이력 반복에 대응하는 점 위치이고, M1은 상술한 제1 균치이다. 또한, 데이터의 분포특성에 따라, 이력 반복이 당해 전회 검사 반복에서 멀리 떨어질 수록 당해 전회 검사 반복의 근방의 반복의 점 위치의 분포 및 변동폭에 대한 영향이 작으며, 따라서, 상술한 계산 가중치는 a1~am의 순서에 따라 점차 작아질 수 있다.
예를 들어, 전회 검사 반복이 신경망 연산의 제100회 반복이고, 이력 반복이 제1회 반복부터 제99회 반복일 수 있으며, 프로세서는 당해 제100회 반복의 점 위치를 획득할 수 있고(즉
Figure pat00811
), 당해 제100회 반복 전의 이력 반복의 점 위치를 획득한다, 즉
Figure pat00812
는 신경망의 제1회 반복에 대응하는 점 위치일 수 있고......,
Figure pat00813
는 신경망의 제98회 반복에 대응하는 점 위치일 수 있으며,
Figure pat00814
는 신경망의 제99회 반복에 대응하는 점 위치일 수 있다. 또한, 프로세서는 상술한 수학식에 따라 계산을 통해 제1 균치를 획득할 수 있다.
또한, 당해 제1 균치는 각 반복간격에 대응하는 검사 반복의 점 위치에 근거하여 계산할 수 있다. 예를 들어, 당해 제1 균치는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00815
;
여기에서, a1~am은 각 검사 반복의 점 위치에 대응하는 계산 가중치이고,
Figure pat00816
는 전회 검사 반복에 대응하는 점 위치이며,
Figure pat00817
...
Figure pat00818
는 전회 검사 반복 전의 미리 설정된 수의 반복간격의 검사 반복에 대응하는 점 위치이고, M1은 상술한 제1 균치이다.
예를 들어, 전회 검사 반복이 신경망 연산의 제100회 반복이고, 이력 반복이 제1회 반복부터 제99회 반복일 수 있으며, 당해 99회의 이력 반복은 11개의 반복간격에 각각 속할 수 있다. 예를 들어, 제1회 반복 내지 제9회 반복은 첫 번째 반복간격에 속하고, 제10회 반복 내지 제18회 반복은 두 번째 반복간격에 속하며, ......, 제90회 반복 내지 제99회 반복은 열한 번째 반복간격에 속한다. 프로세서는 당해 제100회 반복의 점 위치를 획득할 수 있고(즉
Figure pat00819
), 당해 제100회 반복 전의 반복간격 중 검사 반복의 점 위치를 획득한다. 즉
Figure pat00820
는 신경망의 첫 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있고(예를 들어
Figure pat00821
는 신경망의 제1회 반복에 대응하는 점 위치일 수 있다), ......,
Figure pat00822
는 신경망의 열 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있으며(예를 들어
Figure pat00823
는 신경망의 제81회 반복에 대응하는 점 위치일 수 있다),
Figure pat00824
는 신경망의 열한 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있다(예를 들어,
Figure pat00825
는 신경망의 제90회 반복에 대응하는 점 위치일 수 있다). 또한, 프로세서는 상술한 수학식에 따라 계산을 통해 제1 균치M1를 획득할 수 있다.
본 발명 실시예에서, 쉽게 예를 들어 설명하기 위해, 당해 반복간격에 포함된 반복회수가 같다고 가정한다. 그러나 실제의 사용과정에서 당해 반복간격에 포함된 반복회수는 다를 수 있다. 바람직하게는, 당해 반복간격에 포함된 반복회수는 반복의 증가에 따라 증가된다, 즉 신경망 훈련 또는 미조정이 진행됨에 따라 반복간격은 갈수록 커질 수 있다.
또한, 계산을 보다 단순화하고, 데이터가 점유하는 저장공간을 저감하기 위해, 상술한 제1 균치 M1은 다음과 같은 수학식을 채용하여 계산할 수 있다:
Figure pat00826
수학식(27)
여기에서,
Figure pat00827
는 전회 검사 반복에 대응하는 점 위치의 계산 가중치이며,
Figure pat00828
는 전회 검사 반복에 대응하는 점 위치이며, M0은 당해 전회 검사 반복 전의 검사 반복에 대응하는 이동평균 값이고, 당해 M0의 구체적 계산방식은 상술한 M1의 계산방식을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
S112, 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정한다. 여기에서, 현재 검사 반복에 대응하는 점 위치는 현재 검사 반복의 목표데이터 비트폭과 양자화 대상 데이터에 근거하여 확정할 수 있다.
바람직하게는, 당해 제2 균치M2는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00829
수학식(28)
여기에서, b1~bm은 각 반복의 점 위치에 대응하는 계산 가중치이고,
Figure pat00830
는 현재 검사 반복에 대응하는 점 위치이며,
Figure pat00831
...
Figure pat00832
는 현재 검사 반복 전의 이력 반복에 대응하는 점 위치이고, M2는 상술한 제2 균치이다. 또한, 데이터의 분포특성에 따라 이력 반복이 당해 현재 검사 반복거리에서 멀리 떨어질 수록 당해 현재 검사 반복의 근방의 반복의 점 위치의 분포 및 변동폭에 대한 영향이 작아진다, 따라서, 상술한 계산 가중치는 b1~bm의 순서에 따라 점차 작아질 수 있다.
예를 들어, 현재 검사 반복이 신경망 연산의 제101회 반복이면, 당해 현재 검사 반복 전의 이력 반복은 제1회 반복 내지 제100회 반복이다. 프로세서는 당해 제101회 반복의 점 위치를 획득할 수 있고(즉
Figure pat00833
), 또 당해 제101회 반복 전의 이력 반복의 점 위치를 획득한다. 즉
Figure pat00834
는 신경망의 제1회 반복에 대응하는 점 위치일 수 있고......,
Figure pat00835
는 신경망의 제99회 반복에 대응하는 점 위치일 수 있다,
Figure pat00836
는 신경망의 제100회 반복에 대응하는 점 위치일 수 있다. 또한, 프로세서는 상술한 수학식에 따라 계산을 통해 제2 균치 M2를 획득할 수 있다.
바람직하게는, 당해 제2 균치는 각 반복간격에 대응하는 검사 반복의 점 위치에 근거하여 계산할 수 있다. 구체적으로는, 도3-8에 도시된 바와 같이, 상술한 작업(S112)은 다음과 같은 작업을 포함할 수 있다:
S1121, 미리 설정된 수의 중간 이동평균 값을 획득한다. 여기에서, 각 상기 중간 이동평균 값은 상기 현재 검사 반복하기 전 상기 미리 설정된 수의 검사 반복에 근거하여 확정되며, 상기 검사 반복은 상기 신경망 양자화 과정에서의 파라미터를 조정하는 경우에 대응하는 반복이다.
S1122, 상기 현재 검사 반복의 점 위치 및 상기 미리 설정된 수의 중간 이동평균 값에 근거하여 상기 제2 균치를 확정한다.
예를 들어, 당해 제2 균치는 다음과 같은 수학식에 따라 계산할 수 있다:
Figure pat00837
;
여기에서, b1~bm은 각 반복의 점 위치에 대응하는 계산 가중치이고,
Figure pat00838
는 현재 검사 반복에 대응하는 점 위치이며,
Figure pat00839
...
Figure pat00840
는 현재 검사 반복 전의 검사 반복에 대응하는 점 위치이고, M2는 상술한 제2 균치이다.
예를 들어, 현재 검사 반복이 제100회 반복이고, 이력 반복이 제1회 반복부터 제99회 반복일 수 있으며, 당해 99회의 이력 반복은 11개의 반복간격에 각각 속할 수 있다. 예를 들어, 제1회 반복 내지 제9회 반복은 첫 번째 반복간격에 속하고, 제10회 반복 내지 제18회 반복은 두 번째 반복간격에 속하며, ......, 제90회 반복 내지 제99회 반복은 열한 번째 반복간격에 속한다. 프로세서는 당해 제100회 반복의 점 위치를 획득할 수 있고(즉
Figure pat00841
), 당해 제100회 반복 전의 반복간격 중 검사 반복의 점 위치를 획득한다. 즉
Figure pat00842
는 신경망의 첫 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있고(예를 들어
Figure pat00843
는 신경망의 제1회 반복에 대응하는 점 위치일 수 있다), ......,
Figure pat00844
는 신경망의 열 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있으며(예를 들어
Figure pat00845
는 신경망의 제81회 반복에 대응하는 점 위치일 수 있다),
Figure pat00846
는 신경망의 열한 번째 반복간격의 검사 반복에 대응하는 점 위치일 수 있다(예를 들어,
Figure pat00847
는 신경망의 제90회 반복에 대응하는 점 위치일 수 있다). 또한, 프로세서는 상술한 수학식에 따라 계산을 통해 제2 균치 M2를 획득할 수 있다.
본 발명 실시예에서, 쉽게 예를 들어 설명하기 위해, 당해 반복간격에 포함된 반복회수가 같다고 가정한다. 그러나 실제의 사용과정에서 당해 반복간격에 포함된 반복회수는 다를 수 있다. 바람직하게는, 당해 반복간격에 포함된 반복회수는 반복의 증가에 따라 증가된다. 즉 신경망 훈련 또는 미조정이 진행됨에 따라 반복간격은 갈수록 커질 수 있다.
또한, 계산을 단순화하고, 데이터가 점유하는 저장공간을 저감하기 위해, 프로세서는 상기 현재 검사 반복에 대응하는 점 위치 및 상기 제1 균치에 근거하여 상기 제2 균치를 확정할 수 있다, 즉 상술한 제2 균치는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00848
수학식(29)
여기에서,
Figure pat00849
는 현재 검사 반복에 대응하는 점 위치의 계산 가중치이며, M1은 상술한 제1 균치이다.
S113, 상기 제1 균치와 상기 제2 균치에 근거하여 제1 오차를 확정한다. 상기 제1 오차는 상기 현재 검사 반복 및 상기 이력 반복의 점 위치의 변동폭을 특성화하는 데 사용된다.
바람직하게는, 제1 오차는 제2 균치와 상술한 제1 균치 간의 차이 값의 절대치일 수 있다. 구체적으로는, 상술한 제1 오차는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00850
수학식(30)
바람직하게는, 상술한 현재 검사 반복의 점 위치는 현재 검사 반복의 양자화 대상 데이터와 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 확정할 수 있으며, 구체적인 점 위치 계산방식은 위의 수학식(2)또는 수학식(14)을 참조할 수 있다. 여기에서, 상술한 현재 검사 반복에 대응하는 목표데이터 비트폭은 하이퍼 파라미터일 수도 있다. 더 바람직하게는, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 사용자가 자신의 이해에 따라 입력한 것일 수 있다. 바람직하게는, 신경망 훈련 또는 미조정과정에서 양자화 대상 데이터에 대응하는 데이터 비트폭은 일정할 수 있다. 즉 동일한 신경망의 같은 종류의 양자화 대상 데이터는 동일한 데이터 비트폭을 채용하여 양자화된다. 예를 들어, 당해 신경망에 대하여 각 반복 중의 뉴런 데이터는 모두 8비트의 데이터 비트폭을 채용하여 양자화된다.
바람직하게는, 신경망 훈련 또는 미조정과정에서의 양자화 대상 데이터에 대응하는 데이터 비트폭은, 데이터 비트폭이 양자화 대상 데이터의 양자화 요구사항을 충족시킬 수 있게 보장하기 위해 가변적이다. 즉, 프로세서는 양자화 대상 데이터에 근거하여 자기 적응적으로 당해 양자화 대상 데이터에 대응하는 데이터 비트폭을 조정하여 당해 양자화 대상 데이터에 대응하는 목표데이터 비트폭을 획득할 수 있다. 구체적으로는, 프로세서는 먼저 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정할 수 있다. 그 다음에는, 프로세서는 당해 현재 검사 반복에 대응하는 목표데이터 비트폭 및 당해 현재 검사 반복에 대응하는 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 점 위치를 확정할 수 있다.
구체적으로는, 도3-9에 도시된 바와 같이, 상술한 작업(S110)은 다음과 같은작업을 포함할 수 있다.
S114, 상기 현재 검사 반복의 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정한다. 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 현재 검사 반복의 양자화 대상 데이터에 대해 양자화하는 것을 통해 획득한다.
바람직하게는, 상술한 프로세서는 초기 데이터 비트폭을 채용하여 양자화 대상 데이터를 양자화하며, 상술한 양자화 데이터를 획득할 수 있다. 당해 현재 검사 반복의 초기 데이터 비트폭은 하이퍼 파라미터일 수도 있고, 당해 현재 검사 반복의 초기 데이터 비트폭은 당해 현재 검사 반복하기 전의 이전 검사 반복의 양자화 대상 데이터에 근거하여 확정될 수도 있다.
구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 현재 검사 반복의 양자화 데이터에 근거하여 중간표현 데이터를 확정할 수 있다. 바람직하게는, 상기 중간표현 데이터는 상술한 양자화 대상 데이터의 표현형식과 일치하다. 예를 들어, 프로세서는 상술한 양자화 데이터에 대해 역 양자화를 수행하여 양자화 대상 데이터의 표현형식과 이치한 중간표현 데이터를 획득할 수 있다, 여기에서, 역 양자화는 양자화의 반대과정을 의미한다. 예를 들어, 당해 양자화 데이터는 상술한 수학식(3)을 채용하여 획득할 수 있고, 프로세서는 상술한 수학식(4)에 따라 양자화 데이터를 역 양자화하여 대응하는의 중간표현 데이터를 획득할 수 있으며, 양자화 대상 데이터와 중간표현 데이터에 근거하여 양자화 오차를 확정할 수 있다.
또한, 프로세서는 양자화 대상 데이터 및 그에 대응하는 중간표현 데이터에 근거하여 계산을 통해 양자화 오차를 획득할 수 있다. 현재 검사 반복의 양자화 대상 데이터가
Figure pat00851
=[
Figure pat00852
]이면, 당해 양자화 대상 데이터에 대응하는 중간표현 데이터는
Figure pat00853
=[
Figure pat00854
]이다. 프로세서는 당해 양자화 대상 데이터
Figure pat00855
및 그에 대응하는 중간표현 데이터
Figure pat00856
에 근거하여 오차항을 확정하고, 당해 오차항에 근거하여 양자화 오차를 확정할 수 있다.
바람직하게는, 프로세서는 중간표현 데이터
Figure pat00857
중 각 요소의 합, 및 양자화 대상 데이터
Figure pat00858
중 각 요소의 합에 근거하여 상술한 오차항을 확정할 수 있으며, 당해 오차항은 중간표현 데이터
Figure pat00859
중 각 요소의 합과 양자화 대상 데이터
Figure pat00860
중 각 요소의 합의 차이 값일 수 있다. 그 다음에는, 프로세서는 당해 오차항에 근거하여 양자화 오차를 확정할 수 있다. 구체적인 양자화 오차는 다음과 같은 수학식에 따라 확정할 수 있다.
Figure pat00861
수학식(31)
여기에서,
Figure pat00862
는 양자화 대상 데이터 중의 요소이고,
Figure pat00863
는 중간표현 데이터
Figure pat00864
의 요소이다.
바람직하게는, 프로세서는 양자화 대상 데이터 중 각 요소와 중간표현 데이터
Figure pat00865
중 대응하는 요소의 차이 값을 각각 계산하여, m 개의 차이 값을 얻고, 당해 m 개의 차이 값의 합을 오차항으로 할 수 있다. 그 다음에는, 프로세서는 당해 오차항에 근거하여 양자화 오차를 확정할 수 있다. 구체적인 양자화 오차는 다음과 같은 수학식에 따라 확정할 수 있다.
Figure pat00866
수학식(32)
여기에서,
Figure pat00867
는 양자화 대상 데이터 중의 요소이고,
Figure pat00868
는 중간표현 데이터
Figure pat00869
의 요소이다.
바람직하게는, 상술한 양자화 대상 데이터 중 각 요소와 중간표현 데이터
Figure pat00870
중 대응하는 요소의 차이 값은 대략
Figure pat00871
과 같을 수 있다. 따라서, 상술한 양자화 오차는 다음과 같은 수학식에 따라 확정할 수도 있다.
Figure pat00872
수학식(33)
여기에서, m는 목표데이터에 대응하는 중간표현 데이터
Figure pat00873
의 수이고, s는 점 위치이며,
Figure pat00874
는 양자화 대상 데이터 중의 요소이다.
바람직하게는, 상기 중간표현 데이터는 상술한 양자화 데이터의 데이터 표현형식과 일치하고, 당해 중간표현 데이터와 양자화 데이터에 근거하여 양자화 오차를 확정할 수도 있다. 예를 들어, 양자화 대상 데이터는
Figure pat00875
로 표현할 수 있고, 중간표현 데이터
Figure pat00876
임을 확정할 수 있으며, 당해 중간표현 데이터
Figure pat00877
은 상술한 양자화 데이터와 동일한 데이터 표현형식일 수 있다. 이 때 프로세서는 중간표현 데이터
Figure pat00878
과 상술한 수학식(3)에 의해 계산하여 획득한
Figure pat00879
에 근거하여 양자화 오차를 확정할 수 있다. 구체적인 양자화 오차의 확정방식은 상술한 수학식(31)~수학식(33)을 참조할 수 있다.
S115, 상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정한다.
구체적으로는, 프로세서는 당해 양자화 오차에 근거하여, 자기 적응적으로 현재 검사 반복에 대응하는 데이터 비트폭을 조정하여 당해 현재 검사 반복이 조정된 후의 목표데이터 비트폭을 확정할 수 있다. 당해 양자화 오차가 미리 설정된 조건을 충족하는 경우, 현재 검사 반복에 대응하는 데이터 비트폭을 변하지 않도록 유지할 수 있다. 즉 당해 현재 검사 반복의 목표데이터 비트폭은 초기 데이터 비트폭과 같을 수 있다. 양자화 오차가 미리 설정된 조건을 충족하지 않는 경우, 프로세서는 현재 검사 반복의 양자화 대상 데이터에 대응하는 데이터 비트폭을 조정하여 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득할 수 있다. 프로세서가 당해 목표데이터 비트폭을 채용하여 현재 검사 반복의 양자화 대상 데이터를 양자화할 때 양자화 오차가 상술한 미리 설정된 조건을 충족한다. 바람직하게는, 상술한 미리 설정된 조건은 사용자가 설정한 미리 설정한 한계 값이여도 좋다.
바람직하게는, 도3-10에 도시된 바와 같이, 상술한 작업(S115)은 다음과 같은 단계를 포함할 수 있다.
S1150, 프로세서는 상술한 양자화 오차가 제1 미리 설정된 한계 값 이상인지 판정할 수 있다.
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 작업(S1151)을 수행하여 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가시켜 현재 검사 반복의 목표데이터 비트폭을 획득할 수 있다. 양자화 오차가 제1 미리 설정된 한계 값보다도 작으면, 현재 검사 반복의 데이터 비트폭을 변하지 않도록 유지할 수 있다.
더 바람직하게는, 프로세서는 1회 조정을 경유하여 상술한 목표데이터 비트폭을 획득할 수 있다. 예를 들어, 현재 검사 반복의 초기 데이터 비트폭이 n1인 경우, 프로세서는 1회 조정을 경유하여 당해 목표데이터 비트폭 n2=n1+t를 확정할 수 있다. 여기에서, t는 데이터 비트폭의 조정 값이다. 여기에서, 당해 목표데이터 비트폭 n2를 채용하여 현재 검사 반복의 양자화 대상 데이터를 양자화할 때, 획득한 양자화 오차는 상기 제1 미리 설정된 한계 값보다도 작을 수 있다.
더 바람직하게는, 프로세서는 양자화 오차가 제1 미리 설정된 한계 값 미만이 될 때까지 여러 번의 조정을 경유하여 목표데이터 비트폭을 획득하고, 당해 양자화 오차가 제1 미리 설정된 한계 값 미만인 경우 데이터 비트폭을 목표데이터 비트폭으로 할 수 있다. 구체적으로는, 상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 제1 미리 설정된 비트폭 스텝에 근거하여 제1 중간 데이터 비트폭을 확정하며; 그 다음에 프로세서는 당해 제1 중간 데이터 비트폭에 근거하여 현재 검사 반복의 양자화 대상 데이터를 양자화하여 양자화 데이터를 획득하고, 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제1 미리 설정된 한계 값 미만이 될 때까지 양자화 오차를 확정할 수 있다. 프로세서는 당해 양자화 오차가 제1 미리 설정된 한계 값 미만인 경우에 대응하는 데이터 비트폭을 당해 목표데이터 비트폭으로 할 수 있다.
예를 들어, 현재 검사 반복의 초기 데이터 비트폭이 n1인 경우, 프로세서는 당해 초기 데이터 비트폭 n1을 채용하여 현재 검사 반복의 양자화 대상 데이터 A를 양자화하여 양자화 데이터 B1을 획득하고, 당해 양자화 대상 데이터 A와 양자화 데이터 B1에 근거하여 계산을 통해 양자화 오차 C1을 획득할 수 있다. 양자화 오차 C1이 제1 미리 설정된 한계 값 이상인 경우, 프로세서확정제1 중간 데이터 비트폭n2=n1+t1, 여기에서, t1은 제1 미리 설정된 비트폭 스텝이다. 그 다음에는, 프로세서는 당해 제1 중간 데이터 비트폭 n2에 근거하여 현재 검사 반복의 양자화 대상 데이터를 양자화하여 현재 검사 반복의 양자화 데이터 B2를 획득하고, 당해 양자화 대상 데이터 A와 양자화 데이터 B2에 근거하여 계산을 통해 양자화 오차 C2를 획득할 수 있다. 당해 양자화 오차 C2가 제1 미리 설정된 한계 값 이상인 경우, 프로세서확정제1 중간 데이터 비트폭n2=n1+t1+t1, 그 다음에는 당해 새로운 제1 중간 데이터 비트폭에 근거하여 현재 검사 반복의 양자화 대상 데이터 A를 양자화하고, 양자화 오차가 제1 미리 설정된 한계 값 미만이 될 때까지 대응하는 양자화 오차를 계산한다. 양자화 오차 C1이 제1 미리 설정된 한계 값 미만이면, 당해 초기 데이터 비트폭 n1을 변하지 않도록 유지할 수 있다.
또한, 상술한 제1 미리 설정된 비트폭 스텝은 일정한 값일 수 있다. 예를 들어, 양자화 오차가 제1 미리 설정된 한계 값보다도 클 때 마다, 프로세서는 현재 검사 반복에 대응하는 데이터 비트폭을 같은 비트폭 값 만큼 증가시킬 수 있다. 바람직하게는, 상술한 제1 미리 설정된 비트폭 스텝은 가변 값일 수도 있다. 예를 들어, 프로세서는 양자화 오차와 제1 미리 설정된 한계 값의 차이 값을 계산할 수 있다. 당해 양자화 오차와 제1 미리 설정된 한계 값의 차이 값이 작으면 작을 수록 제1 미리 설정된 비트폭 스텝의 값이 작아진다.
바람직하게는, 도3-11에 도시된 바와 같이, 상술한 작업(S115)은 다음과 같은 단계를 포함할 수 있다.
S1152, 프로세서는 상술한 양자화 오차가 제1 미리 설정된 한계 값 이하인지 여부를 판정할 수 있다.
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 작업(S1153)을 실행할 수 있으며, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 현재 검사 반복의 목표데이터 비트폭을 획득한다. 양자화 오차가 제2 미리 설정된 한계 값보다도 클 경우, 현재 검사 반복의 데이터 비트폭을 변하지 않도록 유지할 수 있다.
더 바람직하게는, 프로세서는 1회 조정을 경유하여 상술한 목표데이터 비트폭을 획득할 수 있다. 예를 들어, 현재 검사 반복의 초기 데이터 비트폭이 n1인 경우, 프로세서는 1회 조정을 경유하여 당해 목표데이터 비트폭 n2=n1-t를 확정할 수 있다, 여기에서, t는 데이터 비트폭의 조정 값이다. 여기에서, 당해 목표데이터 비트폭 n2를 채용하여 현재 검사 반복의 양자화 대상 데이터를 양자화할 때, 획득한 양자화 오차가 상기 제2 미리 설정된 한계 값보다도 클 수 있다.
더 바람직하게는, 프로세서는 양자화 오차가 제2 미리 설정된 한계 값보다 클 때까지 여러 번 조정을 통해 목표데이터 비트폭을 획득하고 , 당해 양자화 오차가 제2 미리 설정된 한계 값보다 클 때의 데이터 비트폭을 목표데이터 비트폭으로 할 수 있다. 구체적으로는, 상기 양자화 오차가 제1 미리 설정된 한계 값 이하이면, 제2 미리 설정된 비트폭 스텝에 의해 제2 중간 데이터 비트폭을 확정한다. 그 다음에는 프로세서는 당해 제2 중간 데이터 비트폭에 근거하여 현재 검사 반복의 양자화 대상 데이터를 양자화하여 양자화 데이터를 획득하고, 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 양자화 오차를 확정할 수 있다. 프로세서는 당해 양자화 오차가 제2 미리 설정된 한계 값보다 큰 경우에 대응하는 데이터 비트폭을 당해 목표데이터 비트폭으로 할 수 있다.
예를 들어, 현재 검사 반복의 초기 데이터 비트폭이 n1인 경우, 프로세서는 당해 초기 데이터 비트폭 n1을 채용하여 현재 검사 반복의 양자화 대상 데이터 A를 양자화하여 양자화 데이터 B1을 획득하고, 당해 양자화 대상 데이터 A와 양자화 데이터 B1에 근거하여 계산을 통해 양자화 오차 C1을 획득할 수 있다. 양자화 오차 C1이 제2 미리 설정된 한계 값 이하인 겨우, 프로세서는 제2 중간 데이터 비트폭 n2=n1-t2를 확정한다. 여기에서, t2는 제2 미리 설정된 비트폭 스텝이다. 그 다음에는, 프로세서는 당해 제2 중간 데이터 비트폭 n2에 근거하여 현재 검사 반복의 양자화 대상 데이터를 양자화하여 현재 검사 반복의 양자화 데이터 B2를 획득하고, 당해 양자화 대상 데이터 A와 양자화 데이터 B2에 근거하여 계산을 통해 양자화 오차 C2를 획득할 수 있다. 당해 양자화 오차 C2가 제2 미리 설정된 한계 값 이하인 경우, 프로세서는 제2 중간 데이터 비트폭 n2=n1-t2-t2를 확정한다, 그 다음에는 당해 새로운 제2 중간 데이터 비트폭에 근거하여 현재 검사 반복의 양자화 대상 데이터 A를 양자화하며, 양자화 오차가 제2 미리 설정된 한계 값보다 클 때까지 대응하는 양자화 오차를 계산한다. 양자화 오차 C1이 제2 미리 설정된 한계 값보다 크면, 당해 초기 데이터 비트폭 n1을 변하지 않도록 유지할 수 있다.
또한, 상술한 제2 미리 설정된 비트폭 스텝은 일정한 값일 수 있다. 예를 들어, 양자화 오차가 제2 미리 설정된 한계 값 미만인 경우, 프로세서는 현재 검사 반복에 대응하는 데이터 비트폭을 동일한 비트폭 값으로 감소시킬 수 있다. 바람직하게는, 상술한 제2 미리 설정된 비트폭 스텝은 가변 값일 수도 있다. 예를 들어, 프로세서는 양자화 오차와 제2 미리 설정된 한계 값의 차이 값을 계산할 수 있다. 당해 양자화 오차와 제2 미리 설정된 한계 값의 차이 값이 작으면 작을 수록 제2 미리 설정된 비트폭 스텝의 값은 작아진다.
바람직하게는, 도3-12에 도시된 바와 같이, 프로세서는 양자화 오차가 제1 미리 설정된 한계 값보다 작고, 또 양자화 오차가 제2 미리 설정된 한계 값보다 큼을 확정한 경우, 현재 검사 반복의 데이터 비트폭이 변하지 않도록 유지할 수 있다. 여기에서, 제1 미리 설정된 한계 값은 제2 미리 설정된 한계 값보다 크다. 즉 현재 검사 반복의 목표데이터 비트폭은 초기 데이터 비트폭과 같을 수 있다. 여기에서, 도3-12에서는 예시적인 방식으로만 본 발명의 일 실시예의 데이터 비트폭 확정방식을 설명하며, 도3-12에서의 각 작업의 순서는 적응성에 따라 조정할 수 있으므로 여기에서는 구체적으로 한정하지 않는다.
본 발명 실시예에서, 현재 검사 반복의 데이터 비트폭이 변화될 때, 점 위치는 그에 따라 변화된다. 이 때 점 위치의 변화는 양자화 대상 데이터의 데이터 변동에 의해 초래된 것이 아니며, 상술한 수학식(30)에 의해 확정된 제1 오차에 근거하여 계산을 통해 획득한 목표반복간격은 정확하지 않을 가능성이 있으며, 따라서 양자화의 정밀도에 영향을 줄 수 있다. 따라서, 현재 검사 반복의 데이터 비트폭이 변화될 때, 상술한 제2 균치를 그것에 따라 조정하여 제1 오차가 점 위치의 변동폭을 정확하게 반영할 수 있게 보장할 수 있으며, 진일보로 목표반복간격의 정확성과 신뢰성을 보장하게 할 수 있다. 구체적으로는, 도3-13에 도시된 바와 같이, 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
S116, 상기 목표데이터 비트폭에 근거하여 상기 현재 검사 반복의 데이터 비트폭 조정 값을 확정한다.
구체적으로는, 프로세서는 현재 검사 반복의 목표데이터 비트폭과 초기 데이터 비트폭에 근거하여 현재 검사 반복의 데이터 비트폭 조정 값을 확정한다. 여기에서, 당해 데이터 비트폭 조정 값=목표데이터 비트폭-초기 데이터 비트폭이다. 물론, 프로세서는 현재 검사 반복의 데이터 비트폭 조정 값을 직접 획득할 수 있다.
S117, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상술한 제2 균치를 업데이트한다.
구체적으로는, 데이터 비트폭 조정 값이 미리 설정된 파라미터(예를 들어, 당해 미리 설정된 파라미터는 령일 수 있다)보다 클 경우, 즉 현재 검사 반복의 데이터 비트폭이 증가될 때, 프로세서는 이에 대응하여 제2 균치를 감소할 수 있다. 데이터 비트폭 조정 값이 미리 설정된 파라미터(예를 들어, 당해 미리 설정된 파라미터는 령일 수 있다)보다 작은 경우, 즉 현재 검사 반복의 데이터 비트폭이 감소될 때, 프로세서는 이에 대응하여 제2 균치를 증가시킬 수 있다. 데이터 비트폭 조정 값이 미리 설정된 파라미터와 같은 경우, 즉 데이터 비트폭 조정 값이 0인 경우, 이 때 현재 반복에 대응하는 양자화 대상 데이터에 변경이 없으면, 업데이트 후의 제2 균치는 업데이트하기 전의 제2 균치와 같으며, 당해 업데이트하기 전의 제2 균치는 상술한 수학식(29)에 의해 계산하여 획득한다. 바람직하게는, 데이터 비트폭 조정 값이 미리 설정된 파라미터와 같은 경우, 즉 데이터 비트폭 조정 값이 0인 경우, 프로세서는 제2 균치를 업데이트하지 않는다. 즉 프로세서는 상술한 작업(S117)을 실행하지 않을 수 있다.
예를 들어, 업데이트하기 전의 제2 균치
Figure pat00880
이고; 현재 검사 반복에 대응하는 목표데이터 비트폭n2=초기 데이터 비트폭n1+
Figure pat00881
인 경우, 여기에서,
Figure pat00882
은 데이터 비트폭 조정 값을 표현한다. 이 때, 업데이트 후의 제2 균치
Figure pat00883
이다. 현재 검사 반복에 대응하는 목표데이터 비트폭n2=초기 데이터 비트폭n1-
Figure pat00884
인 경우, 여기에서,
Figure pat00885
은 데이터 비트폭 조정 값을 표현하며, 이 때, 업데이트 후의 제2 균치
Figure pat00886
이고, 여기에서,
Figure pat00887
는 현재 검사 반복이 목표데이터 비트폭에 근거하여 확정한 점 위치이다.
또한, 업데이트하기 전의 제2 균치
Figure pat00888
이고; 현재 검사 반복에 대응하는 목표데이터 비트폭n2=초기 데이터 비트폭n1+
Figure pat00889
인 경우, 여기에서,
Figure pat00890
은 데이터 비트폭 조정 값을 표현한다. 이 때, 업데이트 후의 제2 균치
Figure pat00891
이다. 또한, 현재 검사 반복에 대응하는 목표데이터 비트폭n2=초기 데이터 비트폭n1-
Figure pat00892
인 경우, 여기에서,
Figure pat00893
은 데이터 비트폭 조정 값을 표현하며, 이 때, 업데이트 후의 제2 균치
Figure pat00894
이고, 여기에서,
Figure pat00895
는 현재 검사 반복이 목표데이터 비트폭에 근거하여 확정한 점 위치이다.
또한, 도3-6에 도시된 바와 같이, 상술한 작업(S200)은 다음과 같은 단계를 포함할 수 있다.
S210, 점 위치의 변동폭에 근거하여 목표반복간격을 확정할 수 있다. 여기에서, 당해 목표반복간격은 상술한 점 위치의 변동폭과 부의 상관이 있다. 즉 상술한 점 위치의 변동폭이 크면 클 수록, 당해 목표반복간격이 작아 진다. 상술한 점 위치의 변동폭이 작으면 작을 수록 당해 목표반복간격이 크다.
상술한 바와 같이, 상술한 제1 오차는 점 위치의 변동폭을 특성화할 수 있다. 따라서, 도3-7에 도시된 바와 같이, 상술한 작업(S210)은 다음과 같은 단계를 포함할 수 있다.
S211, 프로세서는 상기 제1 오차에 근거하여 상기 목표반복간격을 확정할 수 있으며, 여기에서, 목표반복간격은 상기 제1 오차와 부의 상관이 있다. 즉 제1 오차가 클 수록 점 위치의 변화 폭이 크며, 진일보로 양자화 대상 데이터의 데이터 변동폭이 크다는 것을 설명하며, 이 때, 목표반복간격이 작아진다.
구체적으로는, 프로세서는 이하의 수학식에 따라 계산을 통해 목표반복간격
Figure pat00896
을 얻는다.
Figure pat00897
수학식(31)
여기에서, I는 목표반복간격이고,
Figure pat00898
는 상술한 제1 오차를 나타내며,
Figure pat00899
는 하이퍼 파라미터일 수 있다.
또한, 제1 오차는 점 위치의 변동폭을 가늠하는 데 사용되며, 제1 오차가 클 수록 점 위치의 변동폭이 크고, 진일보로 양자화 대상 데이터의 데이터 변동폭이 큰 것을 나타내며, 목표반복간격을 작게 설정할 필요가 있는 것을 이해해야 한다. 즉, 제1 오차가 클 수록 빈번하게 양자화 파라미터를 조정한다.
본 실시예에서, 점 위치의 변동폭(제1 오차)을 계산함으로써, 점 위치의 변동폭에 근거하여 목표반복간격을 확정한다. 양자화 파라미터는 목표반복간격에 근거하여 확정되기 때문에, 양자화 파라미터에 근거하여 양자화하여 얻은 양자화 데이터를 목표데이터의 점 위치의 변동추세에 보다 부합되도록 할 수 있고, 양자화 정밀도를 보장함과 동시에 신경망의 가동효율을 향상시킬 수 있다.
바람직하게는, 프로세서는 현재 검사 반복에서 목표반복간격을 확정한 후, 현재 검사 반복에서 목표반복간격에 대응하는 양자화 파라미터와 데이터 비트폭등 파라미터를 더 확정하여 목표반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 여기에서, 양자화 파라미터는 점 위치 및/또는 스케일 팩터를 포함할 수 있다. 또한, 당해 양자화 파라미터는 오프셋을 포함할 수 있다. 당해 양자화 파라미터의 구체적 계산방식은 위의 설명을 참조할 수 있다. 도3-14에 도시된 바와 같이, 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
S300, 프로세서는 목표반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 조정한다 .
구체적으로는, 프로세서는 목표반복간격에 근거하여 검사 반복을 확정하고, 각 검사 반복에서 목표반복간격을 업데이트할 수 있으며, 각 검사 반복에서 양자화 파라미터를 업데이트할 수도 있다. 예를 들어, 신경망 연산에서 데이터 비트폭을 변하지 않게 유지하며, 이 때, 프로세서는 각 검사 반복에서 직접 검사 반복의 양자화 대상 데이터에 근거하여 점 위치 등 양자화 파라미터를 조정할 수 있다. 또한, 신경망 연산에서 데이터 비트폭은 가변적이며, 이 때, 프로세서는 각 검사 반복에서 데이터 비트폭을 업데이트하고, 업데이트 후의 데이터 비트폭과 당해 검사 반복의 양자화 대상 데이터에 근거하여 점 위치 등 양자화 파라미터를 조정할 수 있다.
본 발명 실시예에서, 프로세서는 각 검사 반복에서 양자화 파라미터를 업데이트하여 현재 양자화 파라미터가 양자화 대상 데이터의 양자화 요구사항을 충족하도록 보장한다. 여기에서, 업데이트하기 전의 목표반복간격과 업데이트 후의 목표반복간격은 같을 수도 다를 수도 있다. 업데이트하기 전의 데이터 비트폭과 업데이트 후의 데이터 비트폭은 같을 수도 다를 수도 있다. 즉 상이한 반복간격의 데이터 비트폭은 같을 수도 다를 수도 있다. 업데이트하기 전의 양자화 파라미터와 업데이트 후의 양자화 파라미터는 같을 수도 다를 수도 있다. 즉 상이한 반복간격의 양자화 파라미터는 같을 수도 다를 수도 있다.
바람직하게는, 상술한 작업(S300)에서, 프로세서는 검사 반복에서 목표반복간격 중의 양자화 파라미터를 확정하여 신경망 연산에서의 양자화 파라미터를 조정할 수 있다.
한 가지 상황에서, 당해 신경망 연산에서 각 반복에 대응하는 데이터 비트폭은 모두 변화하지 않는다. 즉 당해 신경망 연산에서 각 반복에 대응하는 데이터 비트폭은 모두 같으며, 이 때, 프로세서는 목표반복간격에서의 점 위치 등 양자화 파라미터를 확정하여 목표반복간격에 근거한 신경망 연산에서의 양자화 파라미터의 조정 목적을 실현할 수 있다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 양자화 파라미터는 일치할 수 있다. 즉, 목표반복간격 중의 각 반복은 모두 동일한 점 위치를 채용하며, 각 검사 반복에서만 점 위치 등 양자화 파라미터를 업데이트 및 확정한다. 따라서 매번 반복에서 모두 양자화 파라미터를 업데이트하여 조정하는 것을 회피하고, 양자화 과정에서의 계산량을 삭감하며, 양자화 작업의 효율을 향상시킬 수 있다.
바람직하게는, 상술한 데이터 비트폭이 변하지 않는 경우에 대하여, 목표반복간격 중 반복에 대응하는 점 위치는 일치하게 유지할 수 있다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 당해 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여, 현재 검사 반복에 대응하는 점 위치를 확정하고, 당해 현재 검사 반복에 대응하는 점 위치를 당해 목표반복간격에 대응하는 점 위치로 할 수 있으며, 당해 목표반복간격 중 반복은 모두 현재 검사 반복에 대응하는 점 위치를 계속 사용한다. 바람직하게는, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 사용자가 이해에 의해 입력한 것이다. 당해 현재 검사 반복에 대응하는 점 위치는 위의 수학식(2) 또는 수학식(14)를 참조하여 계산할 수 있다.
한 가지 상황에서, 당해 신경망 연산에서의 각 반복에 대응하는 데이터 비트폭은 변화할 수 있다. 즉 상이한 목표반복간격에 대응하는 데이터 비트폭은 일치하지 않아도 되지만, 목표반복간격 중 각 반복의 데이터 비트폭은 변하지 않도록 유지된다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 사용자가 자신의 이해에 따라 입력한 것일 수 있다. 한 가지 상황에서, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 프로세서가 계산하여 획득한 것일 수도 있다. 예를 들어, 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하고, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭을 목표반복간격에 대응하는 데이터 비트폭으로 할 수 있다.
이 때, 양자화 과정에서의 계산량을 단순화하기 위해, 당해 목표반복간격에서 대응하는 점 위치 등 양자화 파라미터는 변하지 않도록 유지할 수도 있다. 즉, 목표반복간격 중의 각 반복은 모두 동일한 점 위치를 채용하며, 각 검사 반복에서만 점 위치 등 양자화 파라미터 및 데이터 비트폭을 업데이트 및 확정한다. 따라서 매번 반복에서 모두 양자화 파라미터를 업데이트하여 조정하는 것을 회피하고, 양자화 과정에서의 계산량을 삭감하며, 양자화 작업의 효율을 향상시킬 수 있다.
바람직하게는, 상술한 목표반복간격에 대응하는 데이터 비트폭이 변하지 않는 경우에 대하여, 목표반복간격 중 반복에 대응하는 점 위치는 일치하게 유지할 수 있다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 당해 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여, 현재 검사 반복에 대응하는 점 위치를 확정하고, 당해 현재 검사 반복에 대응하는 점 위치를 당해 목표반복간격에 대응하는 점 위치로 할 수 있으며, 당해 목표반복간격 중 반복은 모두 현재 검사 반복에 대응하는 점 위치를 계속 사용한다. 바람직하게는, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 현재 검사 반복에 대응하는 목표데이터 비트폭은 사용자가 이해에 의해 입력한 것이다. 당해 현재 검사 반복에 대응하는 점 위치는 위의 수학식(2) 또는 수학식(14)을 참조하여 계산할 수 있다.
바람직하게는, 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치할 수 있다. 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 스케일 팩터를 확정하고, 당해 현재 검사 반복에 대응하는 스케일 팩터을 목표반복간격 중 각 반복의 스케일 팩터로 할 수 있다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치하다.
바람직하게는, 목표반복간격 중 반복에 대응하는 오프셋은 일치하다. 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 오프셋을 확정하며, 당해 현재 검사 반복에 대응하는 오프셋을 목표반복간격 중 각 반복의 오프셋으로 할 수 있다. 또한, 프로세서는 양자화 대상 데이터의 모든 요소 중 최소 값과 최대 값을 확정하고, 진일보로 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 상세에 대해서는 위의 설명을 참조할 수 있다. 당해 목표반복간격 중 반복에 대응하는 오프셋은 일치하다.
예를 들어, 당해 목표반복간격은 현재 검사 반복부터 반복회수를 계산할 수 있다, 즉 목표반복간격에 대응하는 검사 반복은 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제100회 반복, 제101회 반복 및 제102회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 또한 프로세서는 제100회 반복에 대응하는 양자화 대상 데이터와 목표데이터 비트폭에 근거하여, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 확정할 수 있고, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 채용하여 제100회 반복, 제101회 반복 및 제102회 반복을 양자화할 수 있다. 이러한 방식으로, 프로세서는 제101회 반복과 제102회 반복에서 점 위치 등 양자화 파라미터을 계산할 필요가 없으며, 양자화 과정에서의 계산량을 삭감하여 양자화 작업의 효율을 향상시킨다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있고, 즉 당해 목표반복간격에 대응하는 검사 반복은 당해 목표반복간격의 종료 반복일 수도 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면. 프로세서는 당해 목표반복간격이 제101회 반복, 제102회 반복 및 제103회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 따라서 프로세서는 제100회 반복에 대응하는 양자화 대상 데이터와 목표데이터 비트폭에 근거하여, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 확정할 수 있고, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 채용하여 제101회 반복, 제102회 반복 및 제103회 반복을 양자화할 수 있다. 이러한 방식으로, 프로세서는 제102회 반복과 제103회 반복에서 점 위치 등 양자화 파라미터를 계산할 필요가 없으며, 양자화 과정에서의 계산량을 삭감하여 양자화 작업의 효율을 향상시킨다.
본 발명 실시예에서, 동일한 목표반복간격 중 각 반복에 대응하는 데이터 비트폭 및 양자화 파라미터 모두 일치하다. 즉 동일한 목표반복간격 중 각 반복에 대응하는 데이터 비트폭, 점 위치, 스케일 팩터 및 오프셋은 모두 변하지 않도록 유지되며, 신경망의 훈련 또는 미조정과정에서 양자화 대상 데이터의 양자화 파라미터를 빈번하게 조정하는 것을 회피할 있고 , 양자화 과정에서의 계산량을 삭감하여 양자화 효율을 향상시킬 수 있다. 또한, 훈련 또는 미조정의 상이한 단계에서 데이터 변동폭에 근거하여 동적으로 양자화 파라미터를 조정함으로써 양자화 정밀도를 보장할 수 있다.
다른 상황에서, 당해 신경망 연산에서의 각 반복에 대응하는 데이터 비트폭은 변화할 수 있으나 목표반복간격 중 각 반복의 데이터 비트폭은 변하지 않게 유지된다. 이 때, 목표반복간격 중 반복에 대응하는 점 위치 등 양자화 파라미터는 일치하지 않을 수도 있다. 프로세서는 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 목표반복간격에 대응하는 데이터 비트폭을 확정할 수도 있다. 여기에서, 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 그 다음에는, 프로세서는 당해 목표반복간격에 대응하는 데이터 비트폭과 점 위치 반복간격에 근거하여 신경망 연산과정에서의 점 위치 등 양자화 파라미터를 조정할 수 있다. 바람직하게는, 도3-15에 도시된 바와 같이, 상술한 작업(S300)은 다음과 같은 단계를 포함할 수 있다.
S310, 현재 검사 반복의 양자화 대상 데이터에 근거하여 목표반복간격에 대응하는 데이터 비트폭을 확정한다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 즉, 신경망 연산과정에서의 데이터 비트폭은 하나의 목표반복간격을 사이로 1회 업데이트한다. 바람직하게는, 당해 목표반복간격에 대응하는 데이터 비트폭은 현재 검사 반복의 목표데이터 비트폭일 수 있다. 당해 현재 검사 반복의 목표데이터 비트폭은 위의 작업(S114)과 (S115)을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
예를 들어, 당해 목표반복간격은 현재 검사 반복부터 반복회수를 계산할 수 있다, 즉 목표반복간격에 대응하는 검사 반복은 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정한 반복간격이 6이면, 프로세서는 당해 목표반복간격이 제100회 반복 내지 제105회 반복의 6회 반복을 포함한다는 것을 확정할 수 있다. 이 때, 프로세서는 제100회 반복의 목표데이터 비트폭을 확정하고, 제101회 반복 내지 제105회 반복에서 당해 제100회 반복의 목표데이터 비트폭을 계속 사용할 수 있어 제101회 반복 내지 제105회 반복에서 목표데이터 비트폭을 계산할 필요가 없다. 따라서 계산량을 삭감하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 그 다음에는, 제106회 반복은 현재 검사 반복으로 될 수 있고, 상술한 목표반복간격의 확정 및 데이터 비트폭의 업데이트 작업을 되풀이 할 수 있다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있고, 즉 당해 목표반복간격에 대응하는 검사 반복은 당해 목표반복간격의 종료 반복일 수도 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정한 반복간격이 6이면. 따라서 프로세서는 당해 목표반복간격이 제101회 반복 내지 제106회 반복의 6회 반복을 포함한다는 것을 확정할 수 있다. 이 때, 프로세서는 제100회 반복의 목표데이터 비트폭을 확정하고, 제101회 반복 내지 제106회 반복에서 당해 제100회 반복의 목표데이터 비트폭을 계속 사용할 수 있으며, 제101회 반복 내지 제106회 반복에서 목표데이터 비트폭을 계산할 필요가 없다. 따라서 계산량을 삭감하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 그 다음에는, 제106회 반복은 현재 검사 반복으로 될 수 있고, 상술한 목표반복간격의 확정 및 데이터 비트폭의 업데이트 작업을 되풀이 할 수 있다.
S320, 프로세서는 획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정함으로써, 상기 신경망 연산에서의 점 위치 등 양자화 파라미터를 조정한다.
여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하며, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치하다. 바람직하게는, 당해 점 위치 반복간격은 하이퍼 파라미터일 수 있다. 예를 들어, 당해 점 위치 반복간격은 사용자가 자체의 이해에 따라 입력한 것일 수 있다 .
바람직하게는, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다. 당해 점 위치 반복간격와 상술한 목표반복간격이 같은 경우, 프로세서는 현재 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 동기적으로 업데이트할 수 있다 . 더 바람직하게는, 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치할 수 있다. 또한, 목표반복간격 중 반복에 대응하는 오프셋은 일치하다. 이 때, 당해 목표반복간격에서의 반복에 대응하는 데이터 비트폭과 점 위치 등 양자화 파라미터가 모두 같으므로 계산량을 삭감할 수 있어 양자화 효율과 연산효율을 향상시킬 수 있다. 구체적인 실현과정과 상술한 실시예는 기본적으로 일치하며, 위의 설명을 참조할 수 있어 여기에서 다시 언급하지 않는다.
점 위치 반복간격이 상술한 목표반복간격 미만인 경우, 프로세서는 목표반복간격에 대응하는 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 업데이트하고, 당해 점 위치 반복간격이 확정된 서브 검사 반복에서 점 위치 등 양자화 파라미터를 업데이트할 수 있다. 데이터 비트폭이 변하지 않는 경우, 점 위치 등 양자화 파라미터는 양자화 대상 데이터에 근거하여 미조정할 수 있다. 따라서, 동일한 목표반복간격 내에서 점 위치 등 양자화 파라미터를 조정하여 진일보로 양자화 정밀도를 향상시킬 수 있다.
구체적으로는, 프로세서는 현재 검사 반복과 점 위치 반복간격에 근거하여 서브 검사 반복을 확정할 수 있으며, 당해 서브 검사 반복은 점 위치을 조정하는 데 사용되고, 당해 서브 검사 반복은 목표반복간격 중의 반복일 수 있다. 또한, 프로세서는 서브 검사 반복의 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭에 근거하여 목표반복간격 중 반복에 대응하는 점 위치를 조정할 수 있다. 여기에서, 점 위치의 확정방식은 상술한 수학식(2)또는 수학식(14)을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
예를 들어, 현재 검사 반복이 제100회 반복이고, 당해 목표반복간격이 6이며, 당해 목표반복간격에 포함된 반복이 제100회 반복 내지 제105회 반복이다. 프로세서가 획득한 점 위치 반복간격이
Figure pat00900
=3, 현재 검사 반복부터 3회 반복을 간격으로 점 위치를 1회 조정할 수 있다. 구체적으로는, 프로세서는 제100회 반복을 상술한 서브 검사 반복으로 하고, 당해 제100회 반복에 대응하는 점 위치 s1을 계산하여 획득하며, 제100회 반복, 제101회 반복 및 제102회 반복에서 점 위치 s1을 공통으로 사용하여 양자화할 수 있다. 그 다음에는, 프로세서는 점 위치 반복간격
Figure pat00901
에 근거하여 제103회 반복을 상술한 서브 검사 반복으로 하고, 동시에 프로세서는 제103회 반복에 대응하는 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭 n에 근거하여 두 번째 점 위치 반복간격에 대응하는 점 위치 s2를 확정할 수 있으며, 제103회 반복 내지 제105회 반복에서 상술한 점 위치 s2를 공통으로 사용하여 양자화할 수 있다. 본 발명 실시예에서, 상술한 업데이트하기 전의 점 위치 s1과 업데이트 후의 점 위치 s2의 값은 같을 수도 다를 수도 있다. 또한, 프로세서는 제106회 반복에서 다시 양자화 대상 데이터의 데이터 변동폭에 근거하여 다음 목표반복간격 및 당해 다음 목표반복간격에 대응하는 데이터 비트폭 및 점 위치 등 양자화 파라미터를 확정할 수 있다.
또한, 현재 검사 반복이 제100회 반복이고, 당해 목표반복간격이 6이며, 당해 목표반복간격에 포함된 반복이 제101회 반복 내지 제106회 반복이다. 프로세서가 획득한 점 위치 반복간격이
Figure pat00902
=3이면, 현재 검사 반복부터 3회 반복을 간격으로 점 위치를 1회 조정할 수 있다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 현재 검사 반복에 대응하는 목표데이터 비트폭 n1에 근거하여 첫 번째 점 위치 반복간격에 대응하는 점 위치가 s1임을 확정하면, 제101회 반복, 제102회 반복 및 제103회 반복에서 상술한 점 위치 s1을 공통으로 사용하여 양자화할 수 있다. 그 다음에는, 프로세서는 점 위치 반복간격
Figure pat00903
에 근거하여 제104회 반복을 상술한 서브 검사 반복으로 할 수 있고, 동시에 프로세서는 제104회 반복에 대응하는 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭 n1에 근거하여 두 번째 점 위치 반복간격에 대응하는 점 위치 s2를 확정할 수 있으며, 제104회 반복 내지 제106회 반복에서 상술한 점 위치 s2를 공통으로 사용하여 양자화할 수 있다. 본 발명 실시예에서, 상술한 업데이트하기 전의 점 위치 s1과 업데이트 후의 점 위치 s2의 값은 같을 수도 다를 수도 있다. 또한, 프로세서는 제106회 반복에서 다시 양자화 대상 데이터의 데이터 변동폭에 근거하여 다음 목표반복간격 및 당해 다음 목표반복간격에 대응하는 데이터 비트폭 및 점 위치 등 양자화 파라미터를 확정할 수 있다.
바람직하게는, 당해 점 위치 반복간격은 1과 같을 수 있다. 즉 매번 반복에서 모두 점 위치를 1회 업데이트한다. 바람직하게는, 당해 점 위치 반복간격은 같을 수도 다를 수도 있다. 예를 들어, 당해 목표반복간격에 포함된 적어도 하나의 점 위치 반복간격은 순차적으로 증가될 수 있다. 여기에서는 예시적으로 본 실시예의 실현방식을 설명할 뿐이며, 본 발명을 한정하기 위한 것이 아니다.
바람직하게는, 당해 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치하지 않을 수도 있다. 더 바람직하게는, 당해 스케일 팩터는 상술한 점 위치와 동기적으로 업데이트될 수 있다. 즉, 당해 스케일 팩터에 대응하는 반복간격은 상술한 점 위치 반복간격과 같을 수 있다. 즉 프로세서가 점 위치를 업데이트하고 확정할 때마다, 이에 대응하여 스케일 팩터를 업데이트하고 확정한다.
바람직하게는, 당해 목표반복간격 중 반복에 대응하는 오프셋은 일치하지 않을 수도 있다. 또한, 당해 오프셋은 상술한 점 위치와 동기적으로 업데이트될 수 있다. 즉, 당해 오프셋에 대응하는 반복간격은 상술한 점 위치 반복간격과 같을 수 있다. 즉 프로세서가 점 위치를 업데이트하고 확정할 때마다, 이에 대응하여 오프셋을 업데이트하고 확정한다. 물론, 당해 오프셋은 상술한 점 위치 또는 데이터 비트폭과 비동기적으로 업데이트될 수도 있으며, 여기에서는 구체적으로 한정하지 않는다. 또한, 프로세서는 양자화 대상 데이터의 모든 요소 중 최소 값과 최대 값을 확정하고, 진일보로 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 상세에 대해서는 위의 설명을 참조할 수 있다.
다른 실시예에 있어서, 프로세서는 점 위치의 변동폭과 양자화 대상 데이터의 데이터 비트폭의 변화에 근거하여 양자화 대상 데이터의 데이터 변동폭을 통합적으로 확정하고, 당해 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 수 있다. 여기에서, 당해 목표반복간격은 데이터 비트폭을 업데이트하고 확정하는 데 사용할 수 있다. 즉 프로세서는 각 목표반복간격의 검사 반복에서 데이터 비트폭을 업데이트하고 확정할 수 있다. 점 위치가 고정 소수점 데이터의 정밀도를 반영할 수 있고, 데이터 비트폭이 고정 소수점 데이터의 데이터 표현범위을 반영할 수 있으므로, 점 위치의 변동폭과 양자화 대상 데이터의 데이터 비트폭 변화를 통합함으로써 양자화 후의 데이터가 정밀도를 충족할 수 있을 뿐만 아니라 데이터 표현범위도 충족시킬 수 있도록 보장할 수 있다. 바람직하게는, 점 위치의 변화 폭은 상술한 제1 오차를 채용하여 특성화할 수 있고, 데이터 비트폭의 변화는 상술한 양자화 오차에 근거하여 확정할 수 있다. 구체적으로는, 도3-16에 도시된 바와 같이, 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
S400, 양자화 대상 데이터의 데이터 변동폭을 표현할 수 있는 점 위치의 변동폭을 특성화할 수 있는 제1 오차를 획득한다. 구체적으로는, 상술한 제1 오차의 계산방식은 위 작업(S110)에서의 설명을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
S500, 상기 데이터 비트폭의 변화를 특성화하는 데 사용되는 제2 오차를 획득한다.
바람직하게는, 상술한 제2 오차는 양자화 오차에 근거하여 확정할 수 있으며, 당해 제2 오차는 상술한 양자화 오차와 정의 상관이 있다. 구체적으로는, 도3-16에 도시된 바와 같이, 상술한 작업(S500)은 다음과 같은 단계를 포함할 수 있다.
S510, 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정한다. 여기에서, 상기 현재 검사 반복의 양자화 데이터는 초기 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터에 대해 양자화하여 획득한다. 여기에서, 구체적인 양자화 오차 확정방식은 위 작업(S114)에서의 설명을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
S520, 상기 양자화 오차에 근거하여 상기 제2 오차를 확정하며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있다.
구체적으로는, 제2 오차는 다음과 같은 수학식에 따라 계산할 수 있다.
Figure pat00904
수학식(34)
여기에서,
Figure pat00905
는 하이퍼 파라미터일 수 있다.
S600, 상기 제2 오차와 상기 제1 오차에 근거하여 상기 목표반복간격을 확정한다.
구체적으로는, 프로세서는 제1 오차와 제2 오차에 근거하여 계산을 통해 목표오차를 획득하고, 목표오차에 근거하여 목표반복간격을 확정할 수 있다. 바람직하게는, 목표오차는 제1 오차와 제2 오차에 가중치를 부여하고 평균을 계산하여 획득한 것일 수 있다. 예를 들어, 목표오차=K*제1 오차+(1-K)*제2 오차, 여기에서, K는 하이퍼 파라미터이다. 그 다음에는, 프로세서는 당해 목표오차에 근거하여 목표반복간격을 확정할 수 있으며, 목표반복간격은 당해 목표오차와 부의 상관이 있다. 즉 목표오차가 크면 클 수록, 목표반복간격이 작아진다.
바람직하게는, 당해 목표오차는 제1 오차와 제2 오차 중의 최대 또는 최소 값에 근거하여 확정할 수도 있으며, 이 때 제1 오차 또는 제2 오차의 가중치는 0이다. 구체적으로는, 도3-17에 도시된 바와 같이, 상술한 작업(S600)은 다음과 같은 단계를 포함할 수 있다.
S610, 상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 한다.
구체적으로는, 프로세서는 제1 오차
Figure pat00906
와 제2 오차
Figure pat00907
의 크기를 비교하며, 제1 오차
Figure pat00908
가 제2 오차
Figure pat00909
보다 큰 경우, 당해 목표오차는 제1 오차
Figure pat00910
와 같다. 제1 오차
Figure pat00911
가 제2 오차보다 작은 경우, 당해 목표오차는 제2 오차
Figure pat00912
와 같다. 제1 오차
Figure pat00913
가 제2 오차와 같은 경우, 당해 목표오차는 제1 오차
Figure pat00914
또는 제2 오차
Figure pat00915
일 수 있다. 즉 목표오차
Figure pat00916
는 다음과 같은 수학식으로 확정할 수 있다.
Figure pat00917
수학식(35)
여기에서,
Figure pat00918
는 목표오차이고,
Figure pat00919
는 제1 오차이며,
Figure pat00920
는 제2 오차이다.
S620, 상기 목표오차에 근거하여 상기 목표반복간격을 확정한다. 여기에서, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있다. 구체적으로는, 목표반복간격은 다음과 같은 방식으로 확정할 수 있다.
이하의 수학식에 따라 목표반복간격을 얻을 수 있다.
Figure pat00921
수학식(36)
여기에서, I는 목표반복간격을 표현하고,
Figure pat00922
는 상술한 목표오차를 표현하며,
Figure pat00923
Figure pat00924
는 하이퍼 파라미터일 수 있다.
바람직하게는, 상술한 실시예에서, 신경망 연산 중 데이터 비트폭은 가변적이며, 제2 오차를 통해 데이터 비트폭의 변화추세를 가늠할 수 있다. 이런 경우에서, 도3-17에 도시된 바와 같이, 프로세서는 목표반복간격을 확정한 후, 작업(S630)을 실행하여 목표반복간격 중 반복에 대응하는 데이터 비트폭을 확정할 수 있다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 목표반복간격에 대응하는 데이터 비트폭을 확정할 수 있다. 즉, 신경망 연산과정에서의 데이터 비트폭은 하나의 목표반복간격을 사이로 1회 업데이트한다 . 바람직하게는, 당해 목표반복간격에 대응하는 데이터 비트폭은 현재 검사 반복의 목표데이터 비트폭일 수 있다. 당해 현재 검사 반복의 목표데이터 비트폭은 위의 작업(S114)과 (S115)을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
예를 들어, 당해 목표반복간격은 현재 검사 반복부터 반복회수를 계산할 수 있다. 즉 목표반복간격에 대응하는 검사 반복은 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정한 반복간격이 6이면, 프로세서는 당해 목표반복간격이 제100회 반복 내지 제105회 반복의 6회 반복을 포함한다는 것을 확정할 수 있다. 이 때, 프로세서는 제100회 반복의 목표데이터 비트폭을 확정하고, 제101회 반복 내지 제105회 반복에서 당해 제100회 반복의 목표데이터 비트폭을 계속 사용할 수 있어 제101회 반복 내지 제105회 반복에서 목표데이터 비트폭을 계산할 필요가 없다. 따라서 계산량을 삭감하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 그 다음에는, 제106회 반복은 현재 검사 반복으로 될 수 있고, 상술한 목표반복간격의 확정 및 데이터 비트폭의 업데이트 작업을 되풀이 할 수 있다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있고, 즉 당해 목표반복간격에 대응하는 검사 반복은 당해 목표반복간격의 종료 반복일 수도 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정한 반복간격이 6이다. 따라서 프로세서는 당해 목표반복간격이 제101회 반복 내지 제106회 반복의 6회 반복을 포함한다는 것을 확정할 수 있다. 이 때, 프로세서는 제100회 반복의 목표데이터 비트폭을 확정하고, 제101회 반복 내지 제106회 반복에서 당해 제100회 반복의 목표데이터 비트폭을 계속 사용할 수 있으며, 제101회 반복 내지 제106회 반복에서 목표데이터 비트폭을 계산할 필요가 없다. 따라서 계산량을 삭감하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 그 다음에는, 제106회 반복은 현재 검사 반복으로 될 수 있고, 상술한 목표반복간격의 확정 및 데이터 비트폭의 업데이트 작업을 되풀이 할 수 있다.
또한, 프로세서는 검사 반복에서 목표반복간격 주의 양자화 파라미터를 확정하여 목표반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 조정하도록 할 수 있다. 즉 당해 신경망 연산에서의 점 위치 등 양자화 파라미터는 데이터 비트폭과 동기적으로 업데이트될 수 있다.
한 가지 상황에서, 당해 목표반복간격 중 반복에 대응하는 양자화 파라미터는 일치할 수 있다. 바람직하게는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 당해 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 현재 검사 반복에 대응하는 점 위치를 확정하고, 당해 현재 검사 반복에 대응하는 점 위치를 당해 목표반복간격에 대응하는 점 위치로 할 수 있다. 여기에서 당해 목표반복간격 중 반복에 대응하는 점 위치는 일치하다. 즉, 목표반복간격 중의 각 반복은 모두 현재 검사 반복의 점 위치 등 양자화 파라미터를 계속하여 사용하며, 매번 반복에서 모두 양자화 파라미터를 업데이트하여 조정하는 것을 회피함으로써, 양자화 과정에서의 계산량을 삭감하고, 양자화 작업의 효율을 향상시킨다.
바람직하게는, 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치할 수 있다. 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 스케일 팩터를 확정하고, 당해 현재 검사 반복에 대응하는 스케일 팩터을 목표반복간격 중 각 반복의 스케일 팩터로 할 수 있다. 여기에서, 당해 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치하다.
바람직하게는, 목표반복간격 중 반복에 대응하는 오프셋은 일치하다. 프로세서는 현재 검사 반복의 양자화 대상 데이터에 근거하여 현재 검사 반복에 대응하는 오프셋을 확정하며, 당해 현재 검사 반복에 대응하는 오프셋을 목표반복간격 중 각 반복의 오프셋으로 할 수 있다. 또한, 프로세서는 양자화 대상 데이터의 모든 요소 중 최소 값과 최대 값을 확정하고, 진일보로 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 상세에 대해서는 위의 설명을 참조할 수 있다. 당해 목표반복간격 중 반복에 대응하는 오프셋은 일치하다.
예를 들어, 당해 목표반복간격은 현재 검사 반복부터 반복회수를 계산할 수 있다, 즉 목표반복간격에 대응하는 검사 반복은 목표반복간격의 처음 반복일 수 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제100회 반복, 제101회 반복 및 제102회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 또한 프로세서는 제100회 반복에 대응하는 양자화 대상 데이터와 목표데이터 비트폭에 근거하여, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 확정할 수 있고, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 채용하여 제100회 반복, 제101회 반복 및 제102회 반복을 양자화할 수 있다. 이러한 방식으로, 프로세서는 제101회 반복과 제102회 반복에서 점 위치 등 양자화 파라미터을 계산할 필요가 없으며, 양자화 과정에서의 계산량을 삭감하여 양자화 작업의 효율을 향상시킨다.
바람직하게는, 목표반복간격은 현재 검사 반복의 다음의 반복으로부터 계산하는 반복회수일 수도 있고, 즉 당해 목표반복간격에 대응하는 검사 반복은 당해 목표반복간격의 종료 반복일 수도 있다. 예를 들어, 현재 검사 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이다. 프로세서는 당해 목표반복간격이 제101회 반복, 제102회 반복 및 제103회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 따라서 프로세서는 제100회 반복에 대응하는 양자화 대상 데이터와 목표데이터 비트폭에 근거하여, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 확정할 수 있고, 당해 제100회 반복에 대응하는 점 위치 등 양자화 파라미터를 채용하여 제101회 반복, 제102회 반복 및 제103회 반복을 양자화할 수 있다. 이러한 방식으로, 프로세서는 제102회 반복과 제103회 반복에서 점 위치 등 양자화 파라미터를 계산할 필요가 없으며, 양자화 과정에서의 계산량을 삭감하여 양자화 작업의 효율을 향상시킨다.
본 발명 실시예에서, 동일한 목표반복간격 중 각 반복에 대응하는 데이터 비트폭 및 양자화 파라미터 모두 일치하다, 즉 동일한 목표반복간격 중 각 반복에 대응하는 데이터 비트폭, 점 위치, 스케일 팩터 및 오프셋은 모두 변하지 않도록 유지되며, 신경망의 훈련 또는 미조정과정에서 양자화 대상 데이터의 양자화 파라미터를 빈번하게 조정하는 것을 회피할 있고, 양자화 과정에서의 계산량을 삭감하여 양자화 효율을 향상시킬 수 있다. 또한, 훈련 또는 미조정의 상이한 단계에서 데이터 변동폭에 근거하여 동적으로 양자화 파라미터를 조정함으로써 양자화 정밀도를 보장할 수 있다.
다른 상황에서, 프로세서는 점 위치 등 양자화 파라미터에 대응하는 점 위치 반복간격에 근거하여 목표반복간격 중의 양자화 파라미터를 확정하여 신경망 연산에서의 양자화 파라미터를 조정하도록 할 수 있다. 즉 당해 신경망 연산에서의 점 위치 등 양자화 파라미터는 데이터 비트폭과 비동기적으로 업데이트될 수 있고, 프로세서는 목표반복간격의 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 업데이트할 수 있으며, 프로세서는 점 위치 반복간격에 근거하여 목표반복간격 중 반복에 대응하는 점 위치를 개별적으로 업데이트할 수도 있다.
구체적으로는, 프로세서는 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 목표반복간격에 대응하는 데이터 비트폭을 확정할 수도 있다. 여기에서, 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 그 다음에는, 프로세서는 당해 목표반복간격에 대응하는 데이터 비트폭과 점 위치 반복간격에 근거하여 신경망 연산과정에서의 점 위치 등 양자화 파라미터를 조정할 수 있다. 즉 도3-17에 도시된 바와 같이, 목표반복간격에 대응하는 데이터 비트폭을 확정한 다음에, 프로세서는 작업(S640)을 실행할 수도 있으며, 획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정하여 상기 신경망 연산에서의 점 위치를 조정하도록 한다. 여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하며, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치하다. 바람직하게는, 당해 점 위치 반복간격은 하이퍼 파라미터일 수 있다. 예를 들어, 당해 점 위치 반복간격은 사용자가 자체의 이해에 따라 입력한 것일 수 있다 .
바람직하게는, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다. 당해 점 위치 반복간격와 상술한 목표반복간격이 같은 경우, 프로세서는 현재 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 동기적으로 업데이트할 수 있다. 더 바람직하게는, 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치할 수 있다. 또한, 목표반복간격 중 반복에 대응하는 오프셋은 일치하다. 이 때, 당해 목표반복간격에서의 반복에 대응하는 데이터 비트폭과 점 위치 등 양자화 파라미터가 모두 같으므로 계산량을 삭감할 수 있어 양자화 효율과 연산효율을 향상시킬 수 있다. 구체적인 실현과정과 상술한 실시예는 기본적으로 일치하며, 위의 설명을 참조할 수 있어 여기에서 다시 언급하지 않는다.
점 위치 반복간격이 상술한 목표반복간격 미만인 경우, 프로세서는 목표반복간격에 대응하는 검사 반복에서 데이터 비트폭과 점 위치 등 양자화 파라미터를 업데이트하고, 당해 점 위치 반복간격이 확정된 서브 검사 반복에서 점 위치 등 양자화 파라미터를 업데이트할 수 있다. 데이터 비트폭이 변하지 않는 경우, 점 위치 등 양자화 파라미터는 양자화 대상 데이터에 근거하여 미조정할 수 있다. 따라서, 동일한 목표반복간격 내에서 점 위치 등 양자화 파라미터를 조정하여 진일보로 양자화 정밀도를 향상시킬 수 있다.
구체적으로는, 프로세서는 현재 검사 반복과 점 위치 반복간격에 근거하여 서브 검사 반복을 확정할 수 있으며, 당해 서브 검사 반복은 점 위치을 조정하는 데 사용되고, 당해 서브 검사 반복은 목표반복간격 중의 반복일 수 있다. 또한, 프로세서는 서브 검사 반복의 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭에 근거하여 목표반복간격 중 반복에 대응하는 점 위치를 조정할 수 있다. 여기에서, 점 위치의 확정방식은 상술한 수학식(2)또는 수학식(14)을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
예를 들어, 현재 검사 반복이 제100회 반복이고, 당해 목표반복간격이 6이며, 당해 목표반복간격에 포함된 반복이 제100회 반복 내지 제105회 반복이다. 프로세서가 획득한 점 위치 반복간격이
Figure pat00925
=3이면, 현재 검사 반복부터 3회 반복을 간격으로 점 위치를 1회 조정할 수 있다. 구체적으로는, 프로세서는 제100회 반복을 상술한 서브 검사 반복으로 하고, 당해 제100회 반복에 대응하는 점 위치 s1을 계산하여 획득하며, 제100회 반복, 제101회 반복 및 제102회 반복에서 점 위치 s1을 공통으로 사용하여 양자화할 수 있다. 그 다음에는, 프로세서는 점 위치 반복간격
Figure pat00926
에 근거하여 제103회 반복을 상술한 서브 검사 반복으로 하고, 동시에 프로세서는 제103회 반복에 대응하는 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭 n에 근거하여 두 번째 점 위치 반복간격에 대응하는 점 위치 s2를 확정할 수 있으며, 제103회 반복 내지 제105회 반복에서 상술한 점 위치 s2를 공통으로 사용하여 양자화할 수 있다. 본 발명 실시예에서, 상술한 업데이트하기 전의 점 위치 s1과 업데이트 후의 점 위치 s2의 값은 같을 수도 다를 수도 있다. 또한, 프로세서는 제106회 반복에서 다시 양자화 대상 데이터의 데이터 변동폭에 근거하여 다음 목표반복간격 및 당해 다음 목표반복간격에 대응하는 데이터 비트폭 및 점 위치 등 양자화 파라미터를 확정할 수 있다.
또한, 현재 검사 반복이 제100회 반복이고, 당해 목표반복간격이 6이며, 당해 목표반복간격에 포함된 반복이 제101회 반복 내지 제106회 반복이다. 프로세서가 획득한 점 위치 반복간격이
Figure pat00927
=3이면, 현재 검사 반복부터 3회 반복을 간격으로 점 위치를 1회 조정할 수 있다. 구체적으로는, 프로세서는 현재 검사 반복의 양자화 대상 데이터와 현재 검사 반복에 대응하는 목표데이터 비트폭 n1에 근거하여 첫 번째 점 위치 반복간격에 대응하는 점 위치가 s1임을 확정하면, 제101회 반복, 제102회 반복 및 제103회 반복에서 상술한 점 위치 s1을 공통으로 사용하여 양자화할 수 있다. 그 다음에는, 프로세서는 점 위치 반복간격
Figure pat00928
에 근거하여 제104회 반복을 상술한 서브 검사 반복으로 할 수 있고, 동시에 프로세서는 제104회 반복에 대응하는 양자화 대상 데이터와 목표반복간격에 대응하는 데이터 비트폭 n1에 근거하여 두 번째 점 위치 반복간격에 대응하는 점 위치 s2를 확정할 수 있으며, 제104회 반복 내지 제106회 반복에서 상술한 점 위치 s2를 공통으로 사용하여 양자화할 수 있다. 본 발명 실시예에서, 상술한 업데이트하기 전의 점 위치 s1과 업데이트 후의 점 위치 s2의 값은 같을 수도 다를 수도 있다. 또한, 프로세서는 제106회 반복에서 다시 양자화 대상 데이터의 데이터 변동폭에 근거하여 다음 목표반복간격 및 당해 다음 목표반복간격에 대응하는 데이터 비트폭 및 점 위치 등 양자화 파라미터를 확정할 수 있다 .
바람직하게는, 당해 점 위치 반복간격은 1과 같을 수 있다. 즉 매번 반복에서 모두 점 위치를 1회 업데이트한다. 바람직하게는, 당해 점 위치 반복간격은 같을 수도 다를 수도 있다. 예를 들어, 당해 목표반복간격에 포함된 적어도 하나의 점 위치 반복간격은 순차적으로 증가될 수 있다. 여기에서는 예시적으로 본 실시예의 실현방식을 설명할 뿐이며, 본 발명을 한정하기 위한 것이 아니다.
바람직하게는, 당해 목표반복간격 중 반복에 대응하는 스케일 팩터는 일치하지 않을 수도 있다. 더 바람직하게는, 당해 스케일 팩터는 상술한 점 위치와 동기적으로 업데이트될 수 있다. 즉, 당해 스케일 팩터에 대응하는 반복간격은 상술한 점 위치 반복간격과 같을 수 있다. 즉 프로세서가 점 위치를 업데이트하고 확정할 때마다, 대응적으로 스케일 팩터를 업데이트하고 확정한다.
바람직하게는, 당해 목표반복간격 중 반복에 대응하는 오프셋은 일치하지 않을 수도 있다. 또한, 당해 오프셋은 상술한 점 위치와 동기적으로 업데이트될 수 있다, 즉, 당해 오프셋에 대응하는 반복간격은 상술한 점 위치 반복간격과 같을 수 있다. 즉 프로세서가 점 위치를 업데이트하고 확정할 때마다, 이에 대응하여 오프셋을 업데이트하고 확정한다. 물론, 당해 오프셋은 상술한 점 위치 또는 데이터 비트폭과 비동기적으로 업데이트될 수도 있으며, 여기에서는 구체적으로 한정하지 않는다. 또한, 프로세서는 양자화 대상 데이터의 모든 요소 중 최소 값과 최대 값을 확정하고, 진일보로 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 상세에 대해서는 위의 설명을 참조할 수 있다.
다른 바람직한 실시예에서, 점 위치, 스케일 팩터 및 오프셋 3개의 양자화 파라미터 사이는 비동기적일 수도 있다 , 즉 점 위치 반복간격, 스케일 팩터 반복간격 및 오프셋 반복간격 중의 하나 또는 3개 모두가 다르다. 여기에서, 점 위치 반복간격과 스케일 팩터 반복간격은 모두 목표반복간격 이하이다. 오프셋 반복간격은 목표반복간격보다 작을 수 있다. 오프셋이 양자화 대상 데이터의 분포에만 관련되기 때문에, 하나의 가능한 실시예에서, 당해 오프셋은 목표반복간격과 완전히 비동기적일 수도 있다. 즉 오프셋 반복간격은 목표반복간격보다 클 수도 있다.
하나의 바람직한 실시예에서, 상술한 방법은 신경망의 훈련 또는 미조정과정에 적용함으로써, 신경망의 미조정 또는 훈련과정에 관련된 연산 데이터의 양자화 파라미터에 대한 조정을 실현하고, 신경망 연산과정에 관련된 연산 데이터의 양자화 정밀도 및 효율을 향상시키도록 한다. 당해 연산 데이터는 뉴런 데이터, 가중치 데이터 또는 그래디언트 데이터 중의 적어도 한 가지이다. 도3-5에 도시된 바와 같이, 양자화 대상 데이터의 데이터 변동곡선에 따라, 훈련 또는 미조정의 초기 단계에서, 각 반복의 양자화 대상 데이터 사이의 차이점이 비교적 크고, 양자화 대상 데이터의 데이터 변동폭이 비교적 심하므로, 이 때 목표반복간격의 값을 작게 할 수 있고, 수시로 목표반복간격 중의 양자화 파라미터를 업데이트하여 양자화 정밀도를 보장할 수 있음을 알 수 있다. 훈련 또는 미조정의 중기 단계에서, 양자화 대상 데이터의 데이터 변동폭은 점차 완만해 지는 경향이 있고, 이 때에는 목표반복간격의 값을 증가하여 양자화 파라미터를 빈번하게 업데이트하는 것을 회피하며, 양자화 효율 및 연산효율을 향상하도록 한다. 훈련 또는 미조정의 후기 단계에서, 이 때에는 신경망의 훈련 또는 미조정이 안정해 지는 경향이 있다(즉 신경망의 순방향 연산결과가 미리 설정된 기준 값에 근접하면 당해 신경망의 훈련 또는 미조정이 안정되는 경향이 있다), 이 때에는 목표반복간격의 값을 계속 증가하여 진일보로 양자화 효율 및 연산효율을 향상시킬 수 있다. 상술한 데이터 변동추세에 따라, 신경망의 훈련 또는 미조정의 서로 다른 단계에서 서로 다른 방식을 채용하여 목표반복간격을 확정함으로써, 양자화 정밀도의 보장을 기반으로 양자화 효율 및 연산효율을 향상시킬 수 있다.
구체적으로는, 도3-18에 도시된 바와 같이, 당해 방법은 신경망의 훈련 또는 미조정과정에 적용되는 경우, 당해 방법은 다음과 같은 단계를 포함할 수 있다.
S710, 프로세서는 현재 반복이 제1 미리 설정된 반복보다 클지 여부를 확정한다.
여기에서, 현재 반복은 프로세서가 현재 실행하고 있는 반복연산을 의미한다. 바람직하게는, 당해 제1 미리 설정된 반복은 하이퍼 파라미터일 수 있고, 당해 제1 미리 설정된 반복은 양자화 대상 데이터의 데이터 변동곡선에 의해 확정할 수 있으며, 당해 제1 미리 설정된 반복은 사용자가 자신의 이해에 따라 설정한 것일 수도 있다. 바람직하게는, 당해 제1 미리 설정된 반복은 한 훈련주기(epoch)에 포함된 총반복회수보다 작을 수 있다, 여기에서, 한 훈련주기는 데이터 세트 중의 모든 양자화 대상 데이터가 모두 1회 순방향 연산과 1회 역방향 연산을 완료한 것을 의미한다.
상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 프로세서는 작업(S711)을 실행할 수 있으며, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 양자화 파라미터를 조정한다.
바람직하게는, 프로세서는 사용자가 입력한 제1 미리 설정된 반복을 판도하고, 당해 제1 미리 설정된 반복과 제1 미리 설정된 반복간격의 대응관계에 근거하여, 제1 미리 설정된 반복간격을 확정할 수 있다. 바람직하게는, 당해 제1 미리 설정된 반복간격은 하이퍼 파라미터일 수 있고, 당해 제1 미리 설정된 반복간격은 사용자가 자신의 이해에 따라 설정한 것일 수도 있다. 이 때, 프로세서는 사용자가 입력한 제1 미리 설정된 반복과 제1 미리 설정된 반복간격을 직접 판독하고, 당해 제1 미리 설정된 반복간격에 근거하여 신경망 연산에서의 양자화 파라미터를 업데이트할 수 있다. 본 발명 실시예에서, 프로세서는 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 필요가 없다.
예를 들어, 사용자가 입력한 제1 미리 설정된 반복이 제100회 반복이고, 제1 미리 설정된 반복간격이 5이면, 현재 반복이 제100회 반복 이하인 경우, 제1 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 프로세서는 신경망의 훈련 또는 미조정의 제1회 반복 내지 제100회 반복을 확정할 수 있고, 매번 5회 반복을 간격으로 양자화 파라미터를 1회 업데이트할 수 있다. 구체적으로는, 프로세서는 제1회 반복에 대응하는 데이터 비트폭 n1 및 점 위치 s1 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n1과 점 위치 s1 등 양자화 파라미터를 채용하여 제1회 반복 내지 제5회 반복의 양자화 대상 데이터를 양자화할 수 있다. 즉 제1회 반복 내지 제5회 반복에서 동일한 양자화 파라미터를 채용할 수 있다. 그 다음에는, 프로세서는 제6회 반복에 대응하는 데이터 비트폭 n2 및 점 위치 s2 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n2와 점 위치 s2 등 양자화 파라미터를 채용하여 제6회 반복 내지 제10회 반복의 양자화 대상 데이터를 양자화할 수 있다. 즉 제6회 반복 내지 제10회 반복은 동일한 양자화 파라미터를 채용할 수 있다. 마찬가지로, 프로세서는 제100회 반복이 완료될 때까지 상술한 양자화 방식에 따를 수 있다. 여기에서, 각 반복간격 중 데이터 비트폭 및 점 위치 등 양자화 파라미터의 확정방식은 위의 설명을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
또한, 사용자가 입력한 제1 미리 설정된 반복이 제100회 반복이고, 제1 미리 설정된 반복간격이 1이며, 현재 반복이 제100회 반복 이하인 경우, 제1 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 프로세서는 신경망의 훈련 또는 미조정의 제1회 반복 내지 제100회 반복을 확정할 수 있고, 매번 반복에서 모두 양자화 파라미터를 업데이트한다. 구체적으로는, 프로세서는 제1회 반복에 대응하는 데이터 비트폭 n1 및 점 위치 s1 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n1과 점 위치 s1 등 양자화 파라미터를 채용하여 제1회 반복의 양자화 대상 데이터를 양자화할 수 있다. 그 다음에는, 프로세서는 제2회 반복에 대응하는 데이터 비트폭 n2 및 점 위치 s2 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n2와 점 위치 s2 등 양자화 파라미터를 채용하여 제2회 반복의 양자화 대상 데이터를 양자화, ……할 수 있다. 마찬가지로, 프로세서는 제100회 반복의 데이터 비트폭 n100 및 점 위치 s100 등 양자화 파라미터를 확정하고, 당해 데이터 비트폭 n100과 점 위치 s100 등 양자화 파라미터를 채용하여 제100회 반복의 양자화 대상 데이터를 양자화할 수 있다. 여기에서, 각 반복간격 중 데이터 비트폭 및 점 위치 등 양자화 파라미터의 확정방식은 위의 설명을 참조할 수 있으며, 여기에서 다시 언급하지 않는다.
상기에서는 데이터 비트폭과 양자화 파라미터가 동기적으로 업데이트되는 방식을 예로 설명하였지만, 다른 바람직한 실시예에서, 각 목표반복간격에서, 프로세서는 점 위치의 변동폭에 근거하여 점 위치의 반복간격을 확정하고, 당해 점 위치 반복간격에 근거하여 점 위치 등 양자화 파라미터를 업데이트할 수 있다 .
바람직하게는, 현재 반복이 제1 미리 설정된 반복보다 큰 경우, 신경망의 훈련 또는 미조정이 중기 단계인 것을 나타낸다. 이 때 이력 반복의 양자화 대상 데이터의 데이터 변동폭을 획득하고, 당해 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 수 있으며, 당해 목표반복간격은 상술한 제1 미리 설정된 반복간격보다 클 수 있으므로 양자화 파라미터의 업데이트 회수를 감소하고, 양자화 효율 및 연산효율을 향상시킬 수 있다. 구체적으로는, 상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 프로세서는 작업(S713)을 실행할 수 있으며, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하고 상기 목표반복간격에 근거하여 양자화 파라미터를 조정한다.
위의 예에 계속하여, 사용자가 입력한 제1 미리 설정된 반복이 제100회 반복이고, 제1 미리 설정된 반복간격이 1이며, 현재 반복이 제100회 반복 이하인 경우, 제1 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 프로세서는 신경망의 훈련 또는 미조정의 제1회 반복 내지 제100회 반복을 확정할 수 있고, 매번 반복에서 모두 양자화 파라미터를 업데이트한다. 구체적 실현방식은 위의 설명을 참조할 수 있다. 현재 반복이 제100회 반복보다 큰 경우, 프로세서는 현재 반복의 양자화 대상 데이터 및 그 전의 이력 반복의 양자화 대상 데이터에 근거하여 양자화 대상 데이터의 데이터 변동폭을 확정하고, 당해 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정할 수 있다. 구체적으로는, 현재 반복이 제100회 반복보다 큰 경우, 프로세서는 현재 반복에 대응하는 데이터 비트폭을 자기 적응적으로 조정하여 당해 현재 반복에 대응하는 목표데이터 비트폭을 획득하고, 당해 현재 반복에 대응하는 목표데이터 비트폭을 목표반복간격의 데이터 비트폭으로 할 수 있다. 여기에서, 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치하다. 동시에, 프로세서는 현재 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 근거하여 현재 반복에 대응하는 점 위치를 확정하고, 현재 반복에 대응하는 점 위치에 근거하여 제1 오차를 확정할 수 있다. 프로세서는 현재 반복에 대응하는 양자화 대상 데이터에 근거하여 양자화 오차를 확정하고, 양자화 오차에 근거하여 제2 오차를 확정할 수 있다. 그 다음에는, 프로세서는 제1 오차와 제2 오차에 근거하여 목표반복간격을 확정할 수 있고, 당해 목표반복간격은 상술한 제1 미리 설정된 반복간격보다 클 수 있다. 또한, 프로세서는 목표반복간격 중의 점 위치 또는 스케일 팩터 등 양자화 파라미터를 확정할 수 있으며, 구체적 확정방식은 위의 설명을 참조할 수 있다.
예를 들어, 현재 반복이 제100회 반복이고, 프로세서가 양자화 대상 데이터의 데이터 변동폭에 근거하여 확정한 목표반복간격의 반복간격이 3이면, 프로세서는 당해 목표반복간격이 제100회 반복, 제101회 반복 및 제102회 반복의 3회 반복을 포함하는 것을 확정할 수 있다. 프로세서는 제100회 반복의 양자화 대상 데이터에 근거하여 양자화 오차를 확정하고, 양자화 오차에 근거하여 제2 오차와 제100회 반복에 대응하는 목표데이터 비트폭을 확정하며, 당해 목표데이터 비트폭을 목표반복간격에 대응하는 데이터 비트폭으로 할 수 있다. 여기에서, 제100회 반복, 제101회 반복 및 제102회 반복에 대응하는 데이터 비트폭은 모두 당해 제100회 반복에 대응하는 목표데이터 비트폭이다. 프로세서는 당해 제100회 반복의 양자화 대상 데이터와 당해 제100회 반복에 대응하는 목표데이터 비트폭에 근거하여 당해 제100회 반복에 대응하는 점 위치와 스케일 팩터 등 양자화 파라미터를 확정할 수도 있다. 그 다음에는, 당해 제100회 반복에 대응하는 양자화 파라미터를 채용하여 제100회 반복, 제101회 반복 및 제102회 반복을 양자화한다.
또한, 도3-19에 도시된 바와 같이, 상술한 방법은 다음과 같은 단계를 포함할 수 있다.
현재 반복이 제1 미리 설정된 반복보다 큰 경우, 프로세서는 작업(S712)을 실행할 수도 있다, 즉 프로세서는 현재 반복이 제2 미리 설정된 반복보다 큰지 여부를 더 확정할 수 있다. 여기에서, 상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 크다. 바람직하게는, 상술한 제2 미리 설정된 반복은 하이퍼 파라미터일 수 있고, 제2 미리 설정된 반복은 적어도 하나의 훈련주기의 총반복수보다도 클 수 있다. 바람직하게는, 제2 미리 설정된 반복은 양자화 대상 데이터의 데이터 변동곡선에 따라 확정할 수 있다. 바람직하게는, 제2 미리 설정된 반복은 사용자가 자신의 이해에 따라 설정한 것일 수도 있다.
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 프로세서는 작업(S714)을 실행할 수 있으며, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 신경망양자화 과정 중의 파라미터를 조정한다. 현재 반복이 제1 미리 설정된 반복보다 크고, 또 현재 반복이 제2 미리 설정된 반복보다 작은 경우, 프로세서는 상술한 작업(S713)을 실행할 수 있으며, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하고 상기 목표반복간격에 근거하여 양자화 파라미터를 조정한다.
바람직하게는, 프로세서는 사용자가 설정한 제2 미리 설정된 반복을 판독하고, 제2 미리 설정된 반복과 제2 미리 설정된 반복간격의 대응관계에 근거하여 제2 미리 설정된 반복간격을 확정할 수 있으며, 당해 제2 미리 설정된 반복간격은 제1 미리 설정된 반복간격보다 크다. 바람직하게는, 상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면, 상기 현재 반복이 제2 미리 설정된 반복 이상이라고 확정한다. 예를 들어, 현재 반복의 순방향 연산결과가 미리 설정된 기준 값에 근접했을 경우, 당해 신경망의 수렴정도가 미리 설정된 조건을 충족시킨다고 확정할 수 있다, 이 때 현재 반복이 제2 미리 설정된 반복 이상이라고 확정할 수 있다. 또는, 현재 반복에 대응하는 손실 값이 미리 설정된 한계 값 이하인 경우, 당해 신경망의 수렴정도가 미리 설정된 조건을 충족시킨다고 확정할 수 있다.
바람직하게는, 상술한 제2 미리 설정된 반복간격은 하이퍼 파라미터일 수 있고, 당해 제2 미리 설정된 반복간격은 적어도 한 훈련주기의 총반복수 이상일 수 있다. 바람직하게는, 당해 제2 미리 설정된 반복간격은 사용자가 자신의 이해에 따라 설정한 것일 수 있다. 프로세서는 사용자가 입력한 제2 미리 설정된 반복과 제2 미리 설정된 반복간격을 직접 판독하고, 당해 제2 미리 설정된 반복간격에 근거하여 신경망 연산 중의 양자화 파라미터를 업데이트할 수 있다. 예를 들어, 당해 제2 미리 설정된 반복간격은 한 훈련주기의 총반복수와 같을 수 있다. 즉 각 훈련주기(epoch)에서 양자화 파라미터를 1회 업데이트한다.
또한, 상술한 방법은 다음과 같은 단계를 더 포함한다.
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 프로세서는 매번 검사 반복에서 현재 데이터 비트폭을 조정할 필요가 있는지 여부를 확정할 수도 있다. 현재 데이터 비트폭을 조정할 필요가 있으면, 프로세서는 상술한 작업(S714)에서 작업(S713)으로 전환하여 데이터 비트폭을 다시 확정하며, 데이터 비트폭이 양자화 대상 데이터의 요구사항을 충족시키도록 할 수 있다.
구체적으로는, 프로세서는 상술한 제2 오차에 근거하여 데이터 비트폭을 조정할 필요가 있는지 여부를 확정할 수 있다. 프로세서는 상술한 작업(S715)을 실행할 수 있으며, 제2 오차가 미리 설정된 오차 값보다 큰지 여부를 확정한다. 상기 현재 반복이 제2 미리 설정된 반복 이상이고, 또 상기 제2 오차가 미리 설정된 오차 값보다 큰 경우, 작업(S713)으로 전환하여 실행하며, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 한다. 현재 반복이 제2 미리 설정된 반복 이상이고, 또 제2 오차가 미리 설정된 오차 값 이하이면, 작업(S714)을 계속하여 실행하며, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 신경망양자화 과정 중의 파라미터를 조정한다. 여기에서, 미리 설정된 오차 값은 양자화 오차에 대응하는 미리 설정된 한계 값에 근거하여 확정될 수 있다. 제2 오차가 미리 설정된 오차 값보다 클 경우, 이 때 데이터 비트폭은 진일보로 조정할 필요가 있으며, 프로세서는 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하고, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 할 수 있다.
예를 들어, 제2 미리 설정된 반복간격은 한 훈련주기의 총반복수이다. 현재 반복이 제2 미리 설정된 반복 이상인 경우, 프로세서는 제2 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 각 훈련주기(epoch)에서 양자화 파라미터를 1회 업데이트한다. 이 때, 각 훈련주기의 처음 반복은 하나의 검사 반복으로서, 각 훈련주기의 처음 반복에서, 프로세서는 당해 검사 반복의 양자화 대상 데이터에 근거하여 양자화 오차를 확정할 수 있으며, 양자화 오차에 근거하여 제2 오차를 확정하고, 다음과 같은 수학식에 따라 제2 오차가 미리 설정된 오차 값보다 큰지 여부를 확정한다.
Figure pat00929
여기에서,
Figure pat00930
는 제2 오차를 나타내고,
Figure pat00931
는 양자화 오차를 나타내며,
Figure pat00932
는 하이퍼 파라미터를 나타내고,
Figure pat00933
는 미리 설정된 오차 값을 나타낸다. 바람직하게는, 당해 미리 설정된 오차 값은 제1 미리 설정된 한계 값을 하이퍼 파라미터로 나눈 것과 같다. 물론, 당해 미리 설정된 오차 값은 하이퍼 파라미터일 수도 있다. 예를 들어, 당해 미리 설정된 오차 값은 다음과 같은 수학식에 따라 계산하여 획득할 수 있으며:
Figure pat00934
=th/10, 여기에서, th는 제1 미리 설정된 한계 값을 나타내고, 하이퍼 파라미터의 값은 10이다.
제2 오차
Figure pat00935
가 미리 설정된 오차 값
Figure pat00936
보다 크면, 데이터 비트폭이 가능하게 미리 설정된 요구사항을 충족시킬 수 없다는 것을 설명한다. 이 때, 제2 미리 설정된 반복간격을 채용하여 양자화 파라미터를 업데이트하지 않아도 되며, 프로세서는 양자화 대상 데이터의 데이터 변동폭에 따라 목표반복간격을 확정하여 데이터 비트폭이 미리 설정되 요구사항을 충족시키도록 보장할 수 있다. 즉 제2 오차
Figure pat00937
가 미리 설정된 오차 값
Figure pat00938
보다 크면, 프로세서는 상술한 작업(S714)에서 상술한 작업(S713)으로 전환한다.
물론, 다른 실시예에서, 프로세서는 상술한 양자화 오차에 근거하여 데이터 비트폭을 조정할 필요가 있는지 여부를 확정할 수 있다. 예를 들어, 제2 미리 설정된 반복간격은 한 훈련주기의 총반복수이다. 현재 반복이 제2 미리 설정된 반복 이상인 경우, 프로세서는 제2 미리 설정된 반복간격에 근거하여 양자화 파라미터를 업데이트할 수 있다. 즉 각 훈련주기(epoch)에서 양자화 파라미터를 1회 업데이트한다 . 여기에서, 각 훈련주기의 처음 반복은 하나의 검사 반복으로서, 각 훈련주기의 처음 반복에서, 프로세서는 당해 검사 반복의 양자화 대상 데이터에 근거하여 양자화 오차를 확정할 수 있으며, 당해 양자화 오차가 제1 미리 설정된 한계 값 이상인 경우, 데이터 비트폭이 가능하게 미리 설정된 요구사항을 충족시킬 수 없다는 것을 설명한다. 즉 프로세서는 상술한 작업(S714)에서 상술한 작업(S713)으로 전환한다.
하나의 바람직한 실시예에서, 상술한 점 위치, 스케일 팩터 및 오프셋 등 양자화 파라미터는 표시장치를 통해 표시될 수 있다. 이 때, 사용자는 표시장치를 통해 신경망 연산과정에서의 양자화 파라미터를 알 수 있으며, 사용자는 지기 적응적으로 프로세서가 확정한 양자화 파라미터를 수정할 수도 있다. 마찬가지로, 상술한 데이터 비트폭과 목표반복간격 등도 표시장치를 통해 표시될 수 있다. 이 때, 사용자는 표시장치를 통해 신경망 연산과정에서의 목표반복간격과 데이터 비트폭 등 파라미터를 알 수 있고, 또한 사용자는 자기 적응적으로 프로세서가 확정한 목표반복간격과 데이터 비트폭 등 파라미터를 수정할 수도 있다.
설명할 필요가 있는 것은, 상술한 각 방법 실시예에 대하여, 설명의 편의를 위해, 이들을 동작의 일련 조합으로서 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명은 설명된 동작의 순서에 의해 한정되지 않는다는 것을 인식해야 한다. 본 발명에 따르면, 특정 단계는 다른 순서를 채용하거나 동시에 수행할 수 있기 때문이다. 따라서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 명세서에서 설명된 실시예는 모두 선택할 수 있는 실시예에 속하며, 관련되는 동작과 모듈은 반드시 본 발명에 필수적인 것이 아니라는 것도 인식해야 한다.
본 발명의 일 실시예는 신경망의 양자화 파라미터 조정장치(200)도 제공하는 바, 당해 양자화 파라미터 조정장치(200)는 프로세서에 배치될 수 있다. 예를 들어, 당해 양자화 파라미터 조정장치(200)는 범용 프로세서에 배치할 수도 있고, 또한, 당해 양자화 파라미터 조정장치는 인공지능 프로세서에 배치될 수도 있다. 도3-20에 도시된 바와 같이, 상기 장치(200)는,
양자화 대상 데이터의 데이터 변동폭을 획득하기 위한 획득모듈(210); 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하기 위한 반복간격 확정모듈(220)을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
바람직하게는, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함한다. 도3-21에 도시된 바와 같이, 상기 장치는,
현재 검사 반복에 대응하는 목표데이터 비트폭과 상기 현재 검사 반복의 양자화 대상 데이터에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 확정함으로써, 상기 신경망 연산에서의 점 위치를 조정하도록 하기 위한 양자화 파라미터 확정모듈(230)을 더 포함하며;
여기에서, 상기 목표반복간격 중 반복에 대응하는 점 위치가 일치하다.
바람직하게는, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 도3-23 또는 도3-24에 도시된 바와 같이, 상기 장치는,
상기 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 상기 목표반복간격에 대응하는 데이터 비트폭을 확정하는 데 사용되고, 여기에서, 상기 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치한 데이터 비트폭 확정모듈(240); 및
획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정하여 상기 신경망 연산에서의 점 위치를 조정하도록 하기 위한 양자화 파라미터 확정모듈(230)을 포함하며;
여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하며, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치하다.
바람직하게는, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다.
바람직하게는, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 스케일 팩터를 더 포함한다.
바람직하게는, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 오프셋을 더 포함한다.
바람직하게는, 도3-24에 도시된 바와 같이, 상기 데이터 비트폭 확정모듈(240)은,
상기 현재 검사 반복의 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정하는 데 사용되고, 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득하는 양자화 오차 확정유닛(241) ; 및
상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하기 위한 데이터 비트폭 확정유닛(242)을 포함한다.
바람직하게는, 상기 데이터 비트폭 확정유닛(242)은 상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하기 위해 사용될 때, 구체적으로,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하고; 또는,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 데 사용된다.
바람직하게는, 상기 데이터 비트폭 확정유닛(242)은 상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 데 사용될 때, 구체적으로,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 제1 미리 설정된 비트폭 스텝에 근거하여 제1 중간 데이터 비트폭을 확정하며;
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제1 미리 설정된 한계 값 미만이 될 때까지 양자화 오차를 확정하는 데로 되돌아 가는 데에 사용되며; 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제1 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득한다.
바람직하게는, 상기 데이터 비트폭 확정유닛(242)은, 상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 데 사용될 때, 구체적으로,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 제2 미리 설정된 비트폭 스텝에 의해 제2 중간 데이터 비트폭을 확정하고;
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 양자화 오차를 확정하는 데로 되돌아 가는 데에 사용되며; 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제2 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득한다.
바람직하게는, 상기 획득모듈(210)은,
점 위치의 변동폭을 획득하기 위한 제1 획득모듈(211)을 포함하며; 여기에서, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용할 수 있으며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있다.
바람직하게는, 도3-23 또는 도3-24에 도시된 바와 같이, 상기 제1 획득모듈(211)은,
현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정하는 데 사용되며, 여기에서, 상기 전회 검사 반복은 상기 목표반복간격 전의 전회 반복간격에 대응하는 검사 반복인 제1 균치 확정유닛(2110);
상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 데 사용되며; 여기에서, 상기 현재 검사 반복에 대응하는 점 위치는 상기 현재 검사 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 의해 확정되는 제2 균치 확정유닛(2111); 및
상기 제1 균치와 상기 제2 균치에 근거하여 상기 점 위치의 변동폭을 특성화하기 위한 제1 오차를 확정하기 위한 제1 오차확정유닛(2112)을 포함한다.
바람직하게는, 상기 제2 균치 확정유닛(2111)은 구체적으로,
미리 설정된 수의 중간 이동평균 값을 획득하며, 여기에서, 각 상기 중간 이동평균 값은 상기 현재 검사 반복하기 전 상기 미리 설정된 수의 검사 반복에 근거하여 확정되고;
상기 현재 검사 반복의 점 위치 및 상기 미리 설정된 수의 중간 이동평균 값에 근거하여 상기 제2 균치를 확정하는 데 사용된다.
바람직하게는, 상기 제2 균치 확정유닛(2111)은 구체적으로 상기 현재 검사 반복에 대응하는 점 위치 및 상기 제1 균치에 근거하여 상기 제2 균치를 확정하는 데 사용된다.
바람직하게는, 상기 제2 균치 확정유닛(2111)은 획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 데 사용되며;
여기에서, 상기 현재 검사 반복의 데이터 비트폭 조정 값은 상기 현재 검사 반복의 목표데이터 비트폭과 초기 데이터 비트폭에 의해 확정된다.
바람직하게는, 상기 제2 균치 확정유닛(2111)은 획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 데 사용될 때, 구체적으로,
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 클 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 감소하며;
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 작은 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 증가하는 데 사용된다.
바람직하게는, 상기 반복간격 확정모듈(220)은 상기 제1 오차에 근거하여 상기 목표반복간격을 확정하는 데 사용되며, 상기 목표반복간격은 상기 제1 오차와 부의 상관이 있다.
바람직하게는, 상기 획득모듈(210)은,
데이터 비트폭의 변화추세를 획득하기 위한 제2 획득모듈(212)을 더 포함하며; 상기 점 위치의 변동폭과 상기 데이터 비트폭의 변화추세에 근거하여 상기 양자화 대상 데이터의 데이터 변동폭을 확정한다.
바람직하게는, 상기 반복간격 확정모듈(220)은 획득한 점 위치의 변동폭을 특성화하기 위한 제1 오차와 데이터 비트폭의 변화추세를 특성화하기 위한제2 오차에 근거하여 상기 목표반복간격을 확정하는 데 사용된다.
바람직하게는, 상기 반복간격 확정모듈(220)은 획득한 제1 오차와 제2 오차에 근거하여 상기 목표반복간격을 확정하는 데 사용될 때, 구체적으로,
상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 하고;
상기 목표오차에 근거하여 상기 목표반복간격을 확정하는 데 사용되며, 여기에서, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있다.
바람직하게는, 상기 제2 오차는 양자화 오차에 의해 확정되고; 여기에서, 상기 양자화 오차는 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 의해 확정되며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있다.
바람직하게는, 상기 장치는 신경망의 훈련 또는 미조정을 실현하는 데 적용되며; 상기 반복간격 확정모듈(220)은,
상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하는 데 사용되며, 상기 목표반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 더 포함한다.
바람직하게는, 상기 반복간격 확정모듈(220)은, 상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 데 사용된다.
바람직하게는, 상기 반복간격 확정모듈(220)은,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 데 사용되며;
여기에서, 상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면, 상기 현재 검사 반복이 제2 미리 설정된 반복 이상임을 확정하고;
상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 크다.
바람직하게는, 상기 반복간격 확정모듈(220)은, 상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 또 제2 오차가 미리 설정된 오차 값보다 큰 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 하는 데 사용된다.
또한, 본 발명 실시예의 각 모듈 또는 유닛의 동작원리는 상술한 방법에서 각 작업의 실현과정과 실질적으로 일치하며, 구체적인 것은 위의 설명을 참조하면 되고, 여기에서 다시 언급하지 않는다. 또한, 상술한 장치 실시예는 단지 예시일 뿐이며, 본 발명의 장치는 다른 방식으로 실현할 수 있다는 것을 이해해야 한다. 예를 들어, 상술한 실시예에서 상기 유닛/모듈의 구분은 단지 논리적 기능 구분일 뿐이며, 실제로 실현될 경우에는 다른 구분방식이 있을 수 있다. 예를 들어, 복수의 유닛, 모듈 또는 컴포넌트가 결합될 수 있거나 다른 시스템에 통합되거나 일부 특징을 무시 또는 실행하지 않을 수 있다. 상술한 통합된 유닛/모듈은 하드웨어의 형식을 채용하여 실현할 수도 있고, 소프트웨어 프로그램 모듈의 형식을 채용하여 실현할 수도 있다. 상기 통합된 유닛/모듈은 하드웨어의 형식으로 실현하는 경우, 당해 하드웨어는 디지털 회로, 아날로그 회로 등일 수 있다. 하드웨어 구조의 물리적 실현은 트랜지스터, 멤 리스터 등을 포함하지만, 이들에 한정되지 않는다 .
상기 통합된 유닛/모듈은 소프트웨어 프로그램 모듈의 형식으로 실현되고 독립적인 제품으로 판매되거나 사용될 때 하나의 컴퓨터 판독 가능한 메모리에 저장될 수 있다. 이러한 이해에 따라, 본 발명의 기술방안은 본질적으로 또는 종래기술에 공헌하는 부분 또는 당해 기술방안의 전부 또는 일부는 소프트웨어 제품의 형식으로 구현할 수 있으며, 당해 컴퓨터 소프트웨어 제품은 하나의 메모리에 저장되며, 컴퓨터기기(개인용 컴퓨터, 서버 또는네트워크 기기 등일 수 있다)가 본 발명각 실시예에서 설명한 방법의 전부 또는 일부단계를 실행 하기 위한 복수의 명령을 포함한다. 한편 전술한 메모리는 U 디스크, 읽기 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 모바일 하드 디스크, 자기 디스크 또는 광 디스크 등 각종 프로그램 코드를 저장할 수있는 매체를 포함한다.
일 실시예에서, 본 발명은 컴퓨터 판독 가능한 저장매체도 제공하는 바, 당해 저장메체에는 컴퓨터 프로그램이 저장되어 있고, 당해 컴퓨터 프로그램이 프로세서 또는 장치에 의해 실행될 때, 상술한 바와 같은 임의의 실시예 중의 방법을 실현한다. 구체적으로는, 당해 컴퓨터 프로그램은 프로세서 또는 장치에 의해 실행될 때, 다음과 같은 방법을 실현한다.
양자화 대상 데이터의 데이터 변동폭을 획득한다.
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
또한, 본 발명 실시예의 각 작업의 실현은 상술한 방법에서 각 작업의 실현과정과 실질적으로 일치하며, 구체적인 것은 위의 설명을 참조하면 되고, 여기에서 다시 언급하지 않는다.
상술한 실시예에서, 각 실시예의 설명은 모두 각자의 중점이 있으며, 특정 실시예에서 상세하게 설명되지 않고 있는 부분은, 다른 실시예의 관련된 설명을 참조하면 된다. 상술한 실시예의 각 기술특징은 임의로 조합할 수 있으며, 설명을 간결하게 하기 위해서, 상술한 실시예에서의 각 기술특징이 가능한 모든 조합에 대해서 설명하지 않고 있지만, 이들 기술특징의 조합에 모순이 없는 한, 모두 본 명세서에 기재된 범위로 간주된다.
가능한 실현방식에서, 인공지능 칩도 개시하는 바, 이는 상술한 양자화 파라미터 조정장치를 포함하고 있다.
가능한 실현방식에서, 보드 카드도 개시하는 바, 이는 메모리 디바이스, 인터페이스 장치와 제어 디바이스 및 상술한 인공지능 칩을 포함하며; 여기에서, 상기 인공지능 칩은 상기 메모리 디바이스, 상기 제어 디바이스 및 상기 인터페이스 장치와 각각 연결되고; 상기 메모리 디바이스는 데이터를 저장하는 데 사용되고; 상기 인터페이스 장치는 상기 인공지능 칩과 외부기기 사이의 데이터 전송을 실현하는 데 사용되며; 상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다.
도3-25은 본 발명 실시예에 따른 보드 카드를 나타내는 구조 블록도이다. 도3-25를 참조하면, 상술한 보드 카드는 상술한 칩(389)을 포함하는 외에도 다른 부대부품을 포함할 수 있다. 당해 부대부품은 메모리 디바이스(390), 인터페이스 장치(391) 및 제어 디바이스(392)를 포함할 수 있지만, 이들에 한정되지 않는다.
상기 메모리 디바이스(390)는 데이터를 저장하기 위해 베스를 통해 상기 인공지능 칩과 연결된다. 상기 메모리 디바이스는 복수 그룹의 저장유닛(393)을 포함할 수 있다. 각 그룹의 상기 저장유닛은 버스를 통해 상기 인공지능 칩과 연결된다. 또한, 각 그룹의 상기 저장유닛이 DDR SDRAM(영문: Double Data Rate SDRAM, 2배 속도 동기적 다이나믹 랜덤메모리)일 수 있다는 것을 이해할 수 있다.
DDR은 클록 주파수를 높이지 않고도 SDRAM의 속도를 2배로 할 수 있다. DDR은 클록 펄스의 상승 및 하강 에지에서 데이터를 읽어 내는 것을 허용한다. DDR의 속도는 표준 SDRAM의 2배이다. 일 실시예에서, 상기 저장장치는 4그룹의 상기 저장유닛을 포함할 수 있다. 각 그룹의 상기 저장유닛은 복수의 DDR4 입자(칩)를 포함할 수 있다. 일 실시예에서, 상기 인공지능 칩 내부는 4개의 72비트 DDR4 컨트롤러를 포함할 수 있으며, 상술한 72비트 DDR4 컨트롤러 중 64bit는 데이터 전송에 사용되고, 8bit는 ECC검증에 사용된다. 또한, 각 그룹의 상기 저장유닛에서 DDR4-3200 입자를 채용하는 경우, 데이터 전송의 이론 대역폭은 25600MB/s에 도달할 수 있다고 이해할 수 있다.
일 실시예에서, 각 그룹의 상기 저장유닛은 복수의 병렬로 배치한 2배 속도 동기적 다이나믹 랜덤 메모리를 포함한다. DDR은 한 클록 주기 내에 데이터를 2회 전송할 수 있다. 상기 칩에 DDR을 제어하는 컨트롤러를 배치하여 각 상기 저장유닛의 데이터 전송과 데이터 저장의 제어한다.
상기 인터페이스 장치는 상기 인공지능 칩과 전기적으로 연결된다. 상기 인터페이스 장치는 상기 인공지능 칩과 외부기기(예를 들어 서버 또는 컴퓨터) 사이의 데이터 전송을 실현하는 데 사용된다. 예를 들어 일 실시예에서, 상기 인터페이스 장치는 표준 PCIE 인터페이스일 수 있다. 예를 들어, 처리될 데이터는 서버에서 표준 PCIE 인터페이스를 통해 상기 칩에 전달되어 데이터 이전을 실현한다. 바람직하게, PCIE 3.0 X 16 인터페이스를 채용하여 전송하는 경우, 이론 대역폭은 16000MB/s에 달할 수도 있다. 다른 하나의 실시예에서, 상기 인터페이스 장치는 다른 인터페이스일 수도 있고, 본 발명은 상술한 다른 인터페이스의 구체적인 표현형식을 한정하지 않으며, 상기 인터페이스 유닛은 이전기능을 실현하면 된다. 또한, 상기 인공지능 칩의 계산결과는 여전히 상기 인터페이스 장치에 의해 외부기기(예를 들어 서버)로 다시 전송된다.
상기 제어 디바이스는 상기 인공지능 칩과 전기적으로 연결된다. 상기 제어 디바이스는 상기 인공지능 칩의 상태를 감시하는 데 사용된다. 구체적으로, 상기 인공지능 칩은 SPI 인터페이스를 통해 상기 제어 디바이스와 전기적으로 연결될 수 있다. 상기 제어 디바이스는 단일 칩 마이크로 컴퓨터(Micro Controller Unit, MCU)를 포함할 수 있다. 상기와 같이 인공지능 칩은 복수의 처리 칩, 복수의 처리 코아 또는 복수의 처리회로를 포함하여 복수의 부하를 구동할 수 있다. 따라서, 상기 인공지능 칩은 다부하와 경부하 등 상이한 동작상태에 있을 수 있다. 상기 제어장치를 통해 상기 인공지능 칩 중 복수의 처리 칩, 복수의 처리 코아 또는 복수의 처리회로의 동작상태의 조정 및 제어를 실현할 수 있다.
가능한 실현방식에서, 상술한 인공지능 칩을 포함한 전자기기를 개시한다. 전자기기는 데이터 처리장치, 로봇, 컴퓨터, 프린터, 스캐너, 태블릿, 스마트 단말, 휴대전화, 드라이브 레코더, 네비게이션 장치, 센서, 카메라, 서버, 클라우드 서버, 카메라, 비디오 카메라, 프로젝터, 손목 시계, 헤드폰, 모바일 스토리지, 웨어러블 디바이스, 교통수단, 가전제품, 및/또는 의료기기를 포함한다.
상기 교통수단은 항공기, 선박 및/또는 차량을 포함하며; 가전제품은 텔레비전, 에어컨, 전자렌지, 냉장고, 전기밥솥, 가습기, 세탁기, 전등, 가스 버너, 레인지 푸드를 포함하고; 상기 의료기기는 핵자기 공명 장치, B-초음파진단 장치 및/또는 심전계를 포함한다.
본 발명의 내용은 다음 조항에 따라 더 잘 이해될 것이다.
C1, 신경망의 양자화 파라미터 조정방법에 있어서, 상기 방법은,
양자화 대상 데이터의 데이터 변동폭을 획득하는 것; 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하는 것을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다. C2, 조항C1에 따른 방법에 있어서, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 상기 방법은,
현재 검사 반복에 대응하는 목표데이터 비트폭과 상기 현재 검사 반복의 양자화 대상 데이터에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 확정함으로써, 상기 신경망 연산에서의 점 위치를 조정하도록 하는 것을 더 포함하며;
여기에서, 상기 목표반복간격 중 반복에 대응하는 점 위치가 일치하다.
C3, 조항C1에 따른 방법에 있어서, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 상기 방법은,
상기 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 상기 목표반복간격에 대응하는 데이터 비트폭을 확정하며, 여기에서, 상기 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치한 것; 및
획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정하여 상기 신경망 연산에서의 점 위치를 조정하도록 하는 것을 포함하며;
여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하며, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치한 것을 특징으로 한다.
C4, 조항C2 또는 C3에 따른 방법에 있어서, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다.
C5, 조항C1-C4 중 어느 한 항에 따른 방법에 있어서, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 스케일 팩터를 더 포함한다.
C6, 조항C1-C5 중 어느 한 항에 따른 방법에 있어서, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 오프셋을 더 포함한다.
C7, 조항C1-C6 중 어느 한 항에 따른 방법에 있어서, 상기 방법은,
상기 현재 검사 반복의 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정하며, 여기에서, 상기 현재 검사 반복의 양자화 데이터가 상기 현재 검사 반복의 양자화 대상 데이터의 양자화에 의해 획득되는 것;
상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하는 것을 포함한다.
C8, 조항C1-C7에 따른 방법에 있어서, 상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하는 것은,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 것; 또는,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 것을 포함한다.
C9, 조항C8에 따른 방법에 있어서, 상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 것은,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 제1 미리 설정된 비트폭 스텝에 근거하여 제1 중간 데이터 비트폭을 확정하고;
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제1 미리 설정된 한계 값 미만이 될 때까지 양자화 오차를 확정하는 데로 되돌아 가는 것을 포함하며, 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제1 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득한 것이다.
C10, 조항C8에 따른 방법에 있어서, 상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하는 것은,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 제2 미리 설정된 비트폭 스텝에 의해 제2 중간 데이터 비트폭을 확정하고;
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 양자화 오차를 확정하는 데로 되돌아 가는 것을 포함하며; 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제2 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득한 것이다.
C11, 조항C1-C10 중 어느 한 항에 따른 방법에 있어서, 상기 양자화 대상 데이터의 데이터 변동폭을 획득하는 것은,
점 위치의 변동폭을 획득하는 것을 포함하며; 여기에서, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용할 수 있고, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있다.
C12, 조항C1-C11에 따른 방법에 있어서, 상기 점 위치의 변동폭을 획득하는 것은,
현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정하며, 여기에서, 상기 전회 검사 반복은 상기 목표반복간격 전의 전회 반복간격에 대응하는 검사 반복인 것;
상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하며; 여기에서, 상기 현재 검사 반복에 대응하는 점 위치는 상기 현재 검사 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 의해 확정된 것;
상기 제1 균치와 상기 제2 균치에 근거하여 상기 점 위치의 변동폭을 특성화하기 위한 제1 오차를 확정하는 것을 포함한다.
C13, 조항C12에 따른 방법에 있어서, 상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 것은,
미리 설정된 수의 중간 이동평균 값을 획득하며, 여기에서, 각 상기 중간 이동평균 값은 상기 현재 검사 반복하기 전 상기 미리 설정된 수의 검사 반복에 근거하여 확정된 것;
상기 현재 검사 반복의 점 위치 및 상기 미리 설정된 수의 중간 이동평균 값에 근거하여 상기 제2 균치를 확정하는 것을 포함한다.
C14, 조항C12에 따른 방법에 있어서, 상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 것은,
상기 현재 검사 반복에 대응하는 점 위치 및 상기 제1 균치에 근거하여 상기 제2 균치를 확정하는 것을 포함한다.
C15, 조항C12에 따른 방법에 있어서, 상기 방법은 다음과 같은 단계를 더 포함한다:
획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 것을 더 포함하며; 여기에서, 상기 현재 검사 반복의 데이터 비트폭 조정 값은 상기 현재 검사 반복의 목표데이터 비트폭과 초기 데이터 비트폭에 의해 확정된다.
C16, 조항C15에 따른 방법에 있어서, 획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 것은,
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 클 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 감소하는 것;
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 작은 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 증가하는 것을 포함한다.
C17, 조항C12에 따른 방법에 있어서, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하는 것은,
상기 제1 오차에 근거하여 상기 목표반복간격을 확정하는 것을 포함하며, 상기 목표반복간격은 상기 제1 오차와 부의 상관이 있다.
C18, 조항C11-C17 중 어느 한 항에 따른 방법에 있어서, 상기 양자화 대상 데이터의 데이터 변동폭을 획득하는 것은,
데이터 비트폭의 변화추세를 획득하는 것;
상기 점 위치의 변동폭과 상기 데이터 비트폭의 변화추세에 근거하여 상기 양자화 대상 데이터의 데이터 변동폭을 확정하는 것을 더 포함한다.
C19, 조항C18에 따른 방법에 있어서, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하는 것은,
획득한 점 위치의 변동폭을 특성화하기 위한 제1 오차와 데이터 비트폭의 변화추세를 특성화하기 위한제2 오차에 근거하여 상기 목표반복간격을 확정하는 것을 더 포함한다.
C20, 조항C19에 따른 방법에 있어서, 획득한 상기 제2 오차와 상기 제1 오차에 근거하여 상기 목표반복간격을 확정하는 것은,
상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 하는 것;
상기 목표오차에 근거하여 상기 목표반복간격을 확정하는 것을 포함하며, 여기에서, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있다.
C21, 조항C19 또는 C20에 따른 방법에 있어서, 상기 제2 오차는 양자화 오차에 의해 확정되고;
여기에서, 상기 양자화 오차는 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 의해 확정되며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있다.
C22, 조항C1-C21 중 어느 한 항에 따른 방법에 있어서, 상기 방법은 신경망의 훈련 또는 미조정에 적용되며, 상기 방법은,
상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하며, 상기 목표반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 더 포함한다 .
C23, 조항C22에 따른 방법에 있어서, 상기 방법은,
상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 더 포함한다.
C24, 조항C22 또는 C23에 따른 방법에 있어서, 상기 방법은,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 것을 더 포함하며 ;
여기에서, 상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 크다.
C25, 조항C24에 따른 방법에 있어서, 상기 방법은,
상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면, 상기 현재 검사 반복이 제2 미리 설정된 반복 이상임을 확정하는 것을 더 포함한다.
C26, 조항C24에 따른 방법에 있어서, 상기 방법은,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 또 제2 오차가 미리 설정된 오차 값보다 큰 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 하는 것을 더 포함한다.
C27, 조항C1-C26 중 어느 한 항에 따른 방법에 있어서, 상기 양자화 대상 데이터는 뉴런 데이터, 가중치 데이터 또는 그래디언트 데이터 중의 적어도 한 가지이다.
C28,메모리와 프로세서를 포함한 신경망의 양자화 파라미터 조정장치에 있어서, 상기 메모리에는 컴퓨터 프로그램이 저장되어 있고, 상기 프로세서가 상기 컴퓨터 프로그램을 실행할 때, 조항C1-C27 중 어느 한 항에 따른 방법의 단계를 실현한다.
C29, 컴퓨터 판독 가능한 저장매체에 있어서, 상기 컴퓨터 판독 가능한 저장매체에는 컴퓨터 프로그램이 저장되어 있고, 상기 컴퓨터 프로그램은 실행될 때, 조항C1-C27 중 어느 한 항에 따른 방법의 단계를 실현한다.
C30, 신경망의 양자화 파라미터 조정장치에 있어서, 상기 장치,
양자화 대상 데이터의 데이터 변동폭을 획득하기 위한 획득모듈; 및
상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정함으로써, 상기 목표반복간격에 근거하여 상기 신경망 연산에서의 양자화 파라미터를 조정하도록 하기 위한 반복간격 확정모듈을 포함하며, 여기에서, 상기 목표반복간격은 적어도 1회 반복을 포함하고, 상기 신경망의 양자화 파라미터는 상기 신경망 연산 중 양자화 대상 데이터의 양자화 작업을 실현하는 데 사용된다.
C31, 조항C30에 따른 장치에 있어서, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 상기 장치는,
현재 검사 반복에 대응하는 목표데이터 비트폭과 상기 현재 검사 반복의 양자화 대상 데이터에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 확정함으로써, 상기 신경망 연산에서의 점 위치를 조정하도록 하기 위한 양자화 파라미터 확정모듈을 더 포함하며;
여기에서, 상기 목표반복간격 중 반복에 대응하는 점 위치가 일치하다.
C32, 조항C30에 따른 장치에 있어서, 상기 양자화 파라미터는 상기 양자화 대상 데이터에 대응하는 양자화 데이터 중 소수점의 위치인 점 위치를 포함하며; 상기 장치는,
상기 현재 검사 반복에 대응하는 목표데이터 비트폭에 근거하여 상기 목표반복간격에 대응하는 데이터 비트폭을 확정하는 데 사용되며, 여기에서, 상기 목표반복간격 중 반복에 대응하는 데이터 비트폭은 일치한 데이터 비트폭 확정모듈; 및
획득한 점 위치 반복간격과 상기 목표반복간격에 대응하는 데이터 비트폭에 근거하여 상기 목표반복간격 중 반복에 대응하는 점 위치를 조정하여 상기 신경망 연산에서의 점 위치를 조정하도록 하기 위한 양자화 파라미터 확정모듈을 더 포함하며;
여기에서, 상기 점 위치 반복간격은 적어도 1회 반복을 포함하며, 상기 점 위치 반복간격 중 반복되는 점 위치가 일치하다.
C33, 조항C 32에 따른 장치에 있어서, 상기 점 위치 반복간격은 상기 목표반복간격 이하이다.
C 34, 조항C 31- C 33 중 어느 한 항에 따른 장치에 있어서, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 스케일 팩터를 더 포함한다.
C 35, 조항C 31- C 33 중 어느 한 항에 따른 장치에 있어서, 상기 양자화 파라미터는 상기 점 위치와 동기적으로 업데이트되는 오프셋을 더 포함한다.
C 36, 조항C 31- C 33 중 어느 한 항에 따른 장치에 있어서, 상기 데이터 비트폭 확정모듈은,
상기 현재 검사 반복의 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여 양자화 오차를 확정하는 데 사용되며, 여기에서, 상기 현재 검사 반복의 양자화 데이터가 상기 현재 검사 반복의 양자화 대상 데이터의 양자화에 의해 획득되는 양자화 오차 확정유닛;
상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정하기 위한 데이터 비트폭 확정유닛을 포함한다.
C 37, 조항C36에 따른 장치에 있어서, 상기 데이터 비트폭 확정유닛은 상기 양자화 오차에 근거하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 확정할 때 구체적으로,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하고; 또는,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득하는 데 사용된다.
C 38, 조항C 37에 따른 장치에 있어서, 상기 데이터 비트폭 확정유닛은 상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 증가하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득할 때 구체적으로,
상기 양자화 오차가 제1 미리 설정된 한계 값 이상이면, 제1 미리 설정된 비트폭 스텝에 근거하여 제1 중간 데이터 비트폭을 확정하고;
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제1 미리 설정된 한계 값 미만이 될 때까지 양자화 오차를 확정하는 데로 되돌아 가는 것을 포함하며, 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제1 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득된다.
C 39, 조항C 37에 따른 장치에 있어서, 상기 데이터 비트폭 확정유닛은 상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 상기 현재 검사 반복에 대응하는 데이터 비트폭을 감소하여 상기 현재 검사 반복에 대응하는 목표데이터 비트폭을 획득할 때 구체적으로,
상기 양자화 오차가 제2 미리 설정된 한계 값 이하이면, 제2 미리 설정된 비트폭 스텝에 의해 제2 중간 데이터 비트폭을 확정하고;
상기 현재 검사 반복에서 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 근거하여, 상기 양자화 오차가 상기 제2 미리 설정된 한계 값보다 클 때까지 양자화 오차를 확정하는 데로 되돌아 가는 것을 포함하며; 여기에서, 상기 현재 검사 반복의 양자화 데이터는 상기 제2 중간 데이터 비트폭에 근거하여 상기 현재 검사 반복의 양자화 대상 데이터를 양자화하여 획득된다.
C 40, 조항C 30- C 39 중 어느 한 항에 따른 장치에 있어서, 상기 획득모듈은,
점 위치의 변동폭을 획득하기 위한 제1 획득모듈을 포함하며; 여기에서, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭을 특성화하는 데 사용할 수 있으며, 상기 점 위치의 변동폭은 상기 양자화 대상 데이터의 데이터 변동폭과 정의 상관이 있다.
C 41, 조항C 40에 따른 방법에 있어서, 상기 제1 획득모듈은,
현재 검사 반복 전의 전회 검사 반복에 대응하는 점 위치, 및 상기 전회 검사 반복 전의 이력 반복에 대응하는 점 위치에 근거하여 제1 균치를 확정하는 데 사용되며, 여기에서, 상기 전회 검사 반복은 상기 목표반복간격 전의 전회 반복간격에 대응하는 검사 반복인 제1 균치 확정유닛;
상기 현재 검사 반복에 대응하는 점 위치 및 상기 현재 검사 반복 전의 이력 반복의 점 위치에 근거하여 제2 균치를 확정하는 데 사용되며; 여기에서, 상기 현재 검사 반복에 대응하는 점 위치는 상기 현재 검사 반복에 대응하는 목표데이터 비트폭과 양자화 대상 데이터에 의해 확정되는 제2 균치 확정유닛; 및
상기 제1 균치와 상기 제2 균치에 근거하여 상기 점 위치의 변동폭을 특성화하기 위한 제1 오차를 확정하기 위한 제1 오차 확정유닛을 포함한다.
C 42, 조항C 41에 따른 장치에 있어서, 상기 제2 균치 확정유닛은 구체적으로,
미리 설정된 수의 중간 이동평균 값을 획득하며, 여기에서, 각 상기 중간 이동평균 값은 상기 현재 검사 반복하기 전 상기 미리 설정된 수의 검사 반복에 근거하여 확정되고;
상기 현재 검사 반복의 점 위치 및 상기 미리 설정된 수의 중간 이동평균 값에 근거하여 상기 제2 균치를 확정하는 데 사용된다.
C 43, 조항C 41에 따른 장치에 있어서, 상기 제2 균치 확정유닛은 구체적으로 상기 현재 검사 반복에 대응하는 점 위치 및 상기 제1 균치에 근거하여 상기 제2 균치를 확정하는 데 사용된다.
C 44, 조항C 41에 따른 장치에 있어서, 상기 제2 균치 확정유닛은 획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 데도 사용되며;
여기에서, 상기 현재 검사 반복의 데이터 비트폭 조정 값은 상기 현재 검사 반복의 목표데이터 비트폭과 초기 데이터 비트폭에 의해 확정된다.
C 45, 조항C 44에 따른 장치에 있어서, 상기 제2 균치 확정유닛은 획득한 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 업데이트하는 데 사용되될 때, 구체적으로,
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 클 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 감소하고
상기 현재 검사 반복의 데이터 비트폭 조정 값이 미리 설정된 파라미터보다 작은 경우, 상기 현재 검사 반복의 데이터 비트폭 조정 값에 근거하여 상기 제2 균치를 증가하는 데 사용된다.
C 46, 조항C 41에 따른 장치에 있어서, 상기 반복간격 확정모듈은 상기 제1 오차에 근거하여 상기 목표반복간격을 확정하는 데 사용되며, 상기 목표반복간격은 상기 제1 오차와 부의 상관이 있다.
C 47, 조항C 40에 따른 장치에 있어서, 상기 획득모듈은,
데이터 비트폭의 변화추세를 획득하고; 상기 점 위치의 변동폭과 상기 데이터 비트폭의 변화추세에 근거하여 상기 양자화 대상 데이터의 데이터 변동폭을 확정하기 위한 제2 획득모듈을 더 포함한다.
C 48, 조항C 47에 따른 장치에 있어서, 획득한 점 위치의 변동폭을 특성화하기 위한 제1 오차와 데이터 비트폭의 변화추세를 특성화하기 위한제2 오차에 근거하여 상기 목표반복간격을 확정하기 위한 상기 반복간격 확정모듈을 더 포함한다.
C 49, 조항C 48에 따른 장치에 있어서, 상기 반복간격 확정모듈은 획득한 제1 오차와 제2 오차에 근거하여 상기 목표반복간격을 확정하는 데 사용될 때 구체적으로,
상기 제1 오차와 상기 제2 오차 중 최대 값을 목표오차로 하고;
상기 목표오차에 근거하여 상기 목표반복간격을 확정하는 데 사용되며, 여기에서, 상기 목표오차는 상기 목표반복간격과 부의 상관이 있다.
C 50, 조항C 48 또는 C 49에 따른 장치에 있어서, 상기 제2 오차는 양자화 오차에 의해 확정되고;
여기에서, 상기 양자화 오차는 상기 현재 검사 반복 중 양자화 대상 데이터와 상기 현재 검사 반복의 양자화 데이터에 의해 확정되며, 상기 제2 오차는 상기 양자화 오차와 정의 상관이 있다.
C 51, 조항C 30- C 50 중 어느 한 항에 따른 장치에 있어서, 상기 장치는 신경망의 훈련 또는 미조정을 실현하는 데 적용되며; 상기 반복간격 확정모듈은,
상기 현재 반복이 제1 미리 설정된 반복보다 클 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 목표반복간격을 확정하며, 상기 목표반복간격에 근거하여 상기 양자화 파라미터를 조정하는 데 사용된다.
C 52, 조항C 51에 따른 장치에 있어서, 상기 반복간격 확정모듈은 상기 현재 반복이 상기 제1 미리 설정된 반복 이하인 경우, 제1 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제1 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 데도 사용된다 .
C 53, 조항C 51또는 C 52에 따른 장치에 있어서, 상기 반복간격 확정모듈은,
상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 제2 미리 설정된 반복간격을 상기 목표반복간격으로 하고, 상기 제2 미리 설정된 반복간격에 근거하여 상기 양자화 파라미터를 조정하는 데 사용되고;
여기에서, 상기 신경망의 수렴정도가 미리 설정된 조건을 충족시키면, 상기 현재 검사 반복이 제2 미리 설정된 반복 이상임을 확정하며;
상기 제2 미리 설정된 반복이 상기 제1 미리 설정된 반복보다도 크고, 상기 제2 미리 설정된 반복간격이 상기 제1 미리 설정된 반복간격보다도 크다.
C 54, 조항C 53에 따른 장치에 있어서, 상기 반복간격 확정모듈은, 상기 현재 반복이 제2 미리 설정된 반복 이상인 경우, 또 제2 오차가 미리 설정된 오차 값보다 큰 경우, 상기 양자화 대상 데이터의 데이터 변동폭에 근거하여 반복간격을 확정하며, 상기 반복간격에 근거하여 상기 데이터 비트폭을 다시 확정하도록 하는데 사용된다.
이상, 본 발명의 각 실시예를 설명하였으며, 상술한 설명은 예시적인 것일 뿐이고, 전체적인 것이 아니며, 또한 개시된 각 실시예에 한정되는 것이 아니다. 설명된 실시예의 범위 및 정신을 일탈할 일 없고, 당업자에 있어서 수정 및 변경의 대부분은 자명하다. 본명세서로 사용되는 용어의 선택은, 본명세서로 공개된 실시예의 원리, 실제의 적용, 또는 시장에 있어서의 기술의 개량을 가장 잘 설명하는 것, 또는 본 기술분야의 다른 당업자가 본 명세서로 공개된 실시예를 이해가 가도록 하는 것을 목적으로 한다.
위에서 양자화 파라미터 조정의 문제를 해결하기 위해 제안한 방안(201910528537.8)을 설명하였다.

Claims (19)

  1. 신경망의 양자화 파라미터 확정방법에 있어서,
    각 종류의 양자화 대상 데이터의 통계결과를 획득하는 것; 및
    각 종류의 양자화 대상 데이터의 통계결과 및 데이터 비트폭을 이용하여 대응하는 양자화 파라미터를 확정하는 것을 포함하며,
    상기 양자화 대상 데이터는 상기 신경망의 뉴런, 가중치 그래디언트, 바이어스 중의 적어도 한 가지 데이터를 포함하고,
    상기 양자화 파라미터는 인공지능 프로세서가 신경망 연산과정에서 데이터에 대해 대응하는 양자화를 수행하는 데 사용되며,
    상기 양자화 파라미터는 점 위치 파라미터인 것을 특징으로 하는 신경망의 양자화 파라미터 확정방법.
  2. 제1항에 있어서,
    대응하는 양자화 파라미터를 이용하여 목표데이터를 양자화하는 것을 더 포함하며,
    상기 목표데이터의 특징은 상기 양자화 대상 데이터의 특징과 유사성이 있는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 신경망 연산과정은 신경망 훈련, 신경망 추론, 신경망 미조정 중의 적어도 한 가지 연산을 포함하며;
    상기 통계결과는 각 종류의 양자화 대상 데이터 중의 최대 값과 최소 값, 및 절대치 최대 값이고;
    각 종류의 양자화 대상 데이터 중의 최대 값과 최소 값에 근거하여 상기 절대치 최대 값을 확정하며;
    상기 양자화 파라미터는 각 종류의 양자화 대상 데이터 중의 최대 값, 최소 값 및 상기 데이터 비트폭, 또는, 각 종류의 양자화 대상 데이터 중의 절대치 최대 값 및 상기 데이터 비트폭에 근거하여 확정되는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    양자화 후의 데이터 및 대응하는 양자화 전의 데이터에 의해 확정되는 대응하는 양자화 오차에 근거하여 상기 데이터 비트폭을 조정하며;
    상기 데이터 비트폭을 조정하는 것은,
    상기 양자화 오차와 한계 값을 비교하고, 비교결과에 근거하여 상기 데이터 비트폭을 조정는 것을 포함하며,
    상기 한계 값은 제1 한계 값과 제2 한계 값 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 데이터 비트폭을 조정하는 것은,
    상기 양자화 오차가 상기 제1 한계 값 이상인 경우 상기 데이터 비트폭을 증가하는 것; 또는
    상기 양자화 오차가 상기 제2 한계 값 이하인 경우 상기 데이터 비트폭을 감소하하는 것; 또는
    상기 양자화 오차가 상기 제1 한계 값과 상기 제2 한계 값 사이에 있을 때 상기 데이터 비트폭을 변하지 않게 유지하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제4항에 있어서,
    상기 양자화 오차의 획득방법은,
    상기 데이터 비트폭에 근거하여 양자화 간격을 확정하고,
    상기 양자화 간격, 상기 양자화 후의 데이터의 개수와 대응하는 양자화 전의 데이터에 근거하여 양자화 오차를 확정하는 것; 또는
    양자화 후의 데이터를 역 양자화하여 역 양자화 데이터를 획득하고,
    상기 양자화 후의 데이터 및 대응하는 역 양자화 데이터에 근거하여 양자화 오차를 확정하는 것을 포함하며,
    그 중, 상기 역 양자화 데이터의 데이터 형식은 대응하는 양자화 전의 데이터의 데이터 형식과 같은 것을 특징으로 하는 방법.
  7. 제4항에 있어서,
    상기 양자화 전의 데이터는 상기 양자화 대상 데이터, 또는
    목표반복간격 내의 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터이며,
    상기 목표반복간격은 적어도 1회 가중치 업데이트 반복을 포함하고, 또 동일한 목표반복간격 내 양자화 과정에서 동일한 상기 데이터 비트폭을 채용하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 목표반복간격의 확정단계는,
    사전판정시점에서, 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터의 점 위치 파라미터의 변화추세 값을 확정하고, 상기 점 위치 파라미터의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정하는 것을 포함하며, 그 중, 상기 사전판정시점은 상기 데이터 비트폭을 조정할 필요가 있는지 여부를 판정하기 위한 시점이고, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응하며; 또는
    사전판정시점에서, 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터의 점 위치 파라미터의 변화추세 값, 데이터 비트폭의 변화추세 값을 확정하고, 상기 점 위치 파라미터의 변화추세 값과 상기 데이터 비트폭의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정하는 것을 포함하며, 그 중, 상기 사전판정시점은 상기 데이터 비트폭을 조정할 필요가 있는지 여부를 판정하기 위한 시점이고, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 사전판정시점은 상기 목표반복간격에 의해 확정되는 제1 사전판정시점을 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 사전판정시점은 데이터 변동폭 곡선에 근거하여 확정되는 제2 사전판정시점을 더 포함하며; 상기 데이터 변동폭 곡선은 가중치 업데이트 반복과정 중 데이터 변동폭 상황을 통계하여 획득되는 것을 특징으로 하는 방법.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값, 및 이전 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값에 근거하여 상기 점 위치 파라미터의 변화추세 값을 확정하며, 또는
    현재 사전판정시점에 대응하는 점 위치 파라미터, 및 이전 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값에 근거하여 상기 점 위치 파라미터의 변화추세 값을 확정하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값을 확정하는 다계는,
    이전 사전판정시점에 대응하는 점 위치 파라미터와 상기 데이터 비트폭의 조정 값에 근거하여 상기 현재 사전판정시점에 대응하는 점 위치 파라미터를 확정하고,
    상기 데이터 비트폭의 조정 값에 근거하여 상기 이전 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값을 조정하여 조정결과를 획득하며,
    상기 현재 사전판정시점에 대응하는 점 위치 파라미터, 및 상기 조정결과에 근거하여 현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값을 확정하는 것; 또는
    이전 사전판정시점에 대응하는 점 위치 파라미터와 이전 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값에 근거하여 현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값의 중간결과를 확정하고,
    현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값의 중간결과와 상기 데이터 비트폭의 조정 값에 근거하여 상기 현재 사전판정시점에 대응하는 점 위치 파라미터의 이동평균 값을 확정하는 것을 포함하는 것을 특징으로 하는 방법.
  13. 제8항에 있어서,
    대응하는 상기 양자화 오차에 근거하여 상기 데이터 비트폭의 변화추세 값을 확정하는 것을 특징으로 하는 방법.
  14. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 목표반복간격 내 양자화 과정에서 채용하는 데이터 비트폭을 확정하는 것은,
    대응하는 양자화 오차를 확정하는 것, 및
    대응하는 양자화 오차에 근거하여 상기 목표반복간격 내 양자화 과정에서 채용하는 데이터 비트폭을 확정하는 것을 포함하며,
    상기 양자화 오차에 대응하는 양자화 전의 데이터는 상기 사전판정시점에 대응하는 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터인 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 목표반복간격 내 양자화 과정에서 채용하는 데이터 비트폭을 확정하는 것은,
    상기 양자화 오차와 한계 값을 비교하고, 비교결과에 근거하여 이전 목표반복간격 내 양자화 과정에서 채용하는 데이터 비트폭을 조정하며, 조정결과를 현재 목표반복간격 내 양자화 과정에서 채용하는 데이터 비트폭으로 하는 것을 포함하는 것을 특징으로 하는 방법.
  16. 제4항에 있어서,
    상기 양자화 전의 데이터는 목표반복간격 내의 가중치 업데이트 반복의 경우에 관련된 양자화 대상 데이터이고; 상기 목표반복간격은 적어도 1회 가중치 업데이트 반복을 포함하며, 동일한 목표반복간격 내 양자화 과정에서 동일한 상기 양자화 파라미터를 채용하는 것을 특징으로 하는 방법.
  17. 제16항에 있어서,
    상기 목표반복간격의 확정단계는,
    사전판정시점에서, 가중치 업데이트 반복과정에 관련된 양자화 대상 데이터의 점 위치 파라미터의 변화추세 값을 확정하는 것; 및
    상기 점 위치 파라미터의 변화추세 값에 근거하여 대응하는 상기 목표반복간격을 확정하는 것을 포함하며,
    상기 사전판정시점은 상기 양자화 파라미터에 대해 조정할 필요가 있는지 여부를 판정하기 위한 시점이고, 상기 사전판정시점은 가중치 업데이트 반복이 완료될 때의 시점에 대응하는 것을 특징으로 하는 방법.
  18. 신경망의 양자화 파라미터 확정장치에 있어서,
    메모리 및 프로세서를 포함하며, 상기 메모리에는 프로세서에 의해 실행 가능한 컴퓨터 프로그램이 저장되어 있고, 상기 프로세서가 상기 컴퓨터 프로그램을 실행하면 제1항 내지 제10항, 제13항, 제16항 및 제17항 중 어느 한 항에 따른 방법의 단계를 실현하는 것을 특징으로 하는 신경망의 양자화 파라미터 확정장치.
  19. 컴퓨터 프로그램이 저장되어 있는 컴퓨터 판독 가능한 저장매체에 있어서,
    상기 컴퓨터 프로그램이 실행되면 제1항 내지 제10항, 제13항, 제16항 및 제17항 중 어느 한 항에 따른 방법의 단계를 실현하는 것을 특징으로 하는 컴퓨터 판독 가능한 저장매체.
KR1020207038085A 2019-06-12 2019-09-19 신경망의 양자화 파라미터 확정방법 및 관련제품 KR102656332B1 (ko)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
CN201910505239.7 2019-06-12
CN201910505239 2019-06-12
CN201910515355 2019-06-14
CN201910515355.7 2019-06-14
CN201910528537 2019-06-18
CN201910528537.8 2019-06-18
CN201910570125.0 2019-06-27
CN201910570125 2019-06-27
PCT/CN2019/106801 WO2020248424A1 (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
KR1020207038081A KR20210018352A (ko) 2019-06-12 2019-09-19 신경망의 양자화 파라미터 확정방법 및 관련제품

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207038081A Division KR20210018352A (ko) 2019-06-12 2019-09-19 신경망의 양자화 파라미터 확정방법 및 관련제품

Publications (2)

Publication Number Publication Date
KR20210011462A true KR20210011462A (ko) 2021-02-01
KR102656332B1 KR102656332B1 (ko) 2024-04-09

Family

ID=69185300

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207038084A KR102609719B1 (ko) 2019-06-12 2019-09-19 신경망의 양자화 파라미터 확정방법 및 관련제품
KR1020207038081A KR20210018352A (ko) 2019-06-12 2019-09-19 신경망의 양자화 파라미터 확정방법 및 관련제품
KR1020207038085A KR102656332B1 (ko) 2019-06-12 2019-09-19 신경망의 양자화 파라미터 확정방법 및 관련제품

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020207038084A KR102609719B1 (ko) 2019-06-12 2019-09-19 신경망의 양자화 파라미터 확정방법 및 관련제품
KR1020207038081A KR20210018352A (ko) 2019-06-12 2019-09-19 신경망의 양자화 파라미터 확정방법 및 관련제품

Country Status (6)

Country Link
US (2) US11675676B2 (ko)
EP (4) EP3998554A4 (ko)
JP (3) JP2021530769A (ko)
KR (3) KR102609719B1 (ko)
CN (14) CN112085189B (ko)
WO (2) WO2020248424A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220116837A (ko) * 2021-02-16 2022-08-23 고려대학교 산학협력단 레이어-단위 양자화 신경망을 위한 인-메모리 가속기 및 이의 동작 방법

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11620130B2 (en) 2018-02-13 2023-04-04 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN116991225A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
JP7053891B2 (ja) 2018-06-27 2022-04-12 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
US11507823B2 (en) * 2019-01-22 2022-11-22 Black Sesame Technologies Inc. Adaptive quantization and mixed precision in a network
US11966818B2 (en) 2019-02-21 2024-04-23 Hewlett Packard Enterprise Development Lp System and method for self-healing in decentralized model building for machine learning using blockchain
US11676029B2 (en) * 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
CN110490309B (zh) * 2019-08-14 2022-06-07 中科寒武纪科技股份有限公司 一种用于神经网络的算子融合方法及其相关产品
CN112840358B (zh) * 2019-09-24 2023-05-23 百度时代网络技术(北京)有限公司 用于深度神经网络的基于光标的自适应量化
JP7354736B2 (ja) * 2019-09-30 2023-10-03 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
US11775611B2 (en) * 2019-11-01 2023-10-03 Samsung Electronics Co., Ltd. Piecewise quantization for neural networks
JP2021111081A (ja) * 2020-01-09 2021-08-02 富士通株式会社 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法
US20210241183A1 (en) * 2020-01-31 2021-08-05 Hewlett Packard Enterprise Development Lp Adaptively synchronizing learning of multiple learning models
CN113741619B (zh) * 2020-05-27 2024-03-12 安徽寒武纪信息科技有限公司 时钟控制装置及相关产品
CN112686001B (zh) * 2021-01-05 2021-12-03 中科三清科技有限公司 气象数据的变换方法、传输方法、服务器及数据传输系统
CN112990457B (zh) * 2021-03-26 2024-05-03 开放智能机器(上海)有限公司 离线量化调优方法、装置、设备、介质及程序产品
CN113220606B (zh) * 2021-05-07 2021-11-26 珠海市芯动力科技有限公司 神经网络权值存储方法、读取方法及相关设备
JP2023069780A (ja) * 2021-11-08 2023-05-18 富士通株式会社 演算プログラム、演算方法及び計算機
KR20230102665A (ko) * 2021-12-30 2023-07-07 한국전자기술연구원 딥러닝 네트워크 양자화 처리 방법 및 시스템
WO2023177272A1 (ko) * 2022-03-18 2023-09-21 인텔렉추얼디스커버리 주식회사 신경망 기반 특징 텐서 압축 방법 및 장치
CN114611697B (zh) * 2022-05-11 2022-09-09 上海登临科技有限公司 神经网络量化及部署方法、系统、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180120967A (ko) * 2017-04-28 2018-11-07 서울대학교산학협력단 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치
KR20190014900A (ko) * 2017-08-04 2019-02-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치

Family Cites Families (247)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2604712B2 (ja) * 1985-10-18 1997-04-30 ソニー株式会社 テレビジヨン信号の高能率符号化/復号装置
JPS63111768A (ja) * 1986-10-30 1988-05-17 Nec Corp 画像デ−タ量子化装置
JPH0375860A (ja) 1989-08-18 1991-03-29 Hitachi Ltd パーソナライズド端末
US5052043A (en) 1990-05-07 1991-09-24 Eastman Kodak Company Neural network with back propagation controlled through an output confidence measure
ATE162918T1 (de) * 1991-04-18 1998-02-15 Ampex Systems Corp Verfahren und anordnung zur bestimmung eines quantisierungsfaktors für prozesse mit datenkomprimierung und -dekomprimierung
US6144977A (en) 1995-07-10 2000-11-07 Motorola, Inc. Circuit and method of converting a floating point number to a programmable fixed point number
GB9602701D0 (en) 1996-02-09 1996-04-10 Canon Kk Image manipulation
JPH10233691A (ja) * 1998-03-30 1998-09-02 Nec Corp 符号化方式および復号方式
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
JP2000293371A (ja) 1999-04-09 2000-10-20 Hitachi Ltd マイクロプログラム制御方法及び装置
US6671796B1 (en) 2000-02-25 2003-12-30 Sun Microsystems, Inc. Converting an arbitrary fixed point value to a floating point value
US6931639B1 (en) 2000-08-24 2005-08-16 International Business Machines Corporation Method for implementing a variable-partitioned queue for simultaneous multithreaded processors
CN1268784C (zh) 2000-09-07 2006-08-09 日本帕卡濑精株式会社 用于Sn基或Al基镀覆钢板的不含六价铬的表面处理剂以及经过表面处理的钢板
US7062445B2 (en) * 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
US20020138714A1 (en) 2001-03-22 2002-09-26 Sun Microsystems, Inc. Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution
CN1270273C (zh) 2001-04-19 2006-08-16 艾利森电话股份有限公司 自适应存储器分配
US20030167460A1 (en) 2002-02-26 2003-09-04 Desai Vipul Anil Processor instruction set simulation power estimation method
JP4148356B2 (ja) * 2002-11-18 2008-09-10 学校法人東海大学 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム
US7236995B2 (en) 2002-12-27 2007-06-26 Arm Limited Data processing apparatus and method for converting a number between fixed-point and floating-point representations
DE10316381A1 (de) 2003-04-10 2004-10-28 Bayer Technology Services Gmbh Verfahren zum Training von neuronalen Netzen
JP3889738B2 (ja) * 2003-09-26 2007-03-07 三洋電機株式会社 逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラム
JP4202244B2 (ja) 2003-12-22 2008-12-24 Necエレクトロニクス株式会社 Vliw型dsp,及びその動作方法
US20060161375A1 (en) 2004-12-30 2006-07-20 Allen Duberstein Optimizing processing speed based on measured temperatures
KR100762591B1 (ko) * 2005-09-29 2007-10-01 엘지전자 주식회사 비디오 코덱의 양자화 파라미터 결정방법
US7721128B2 (en) 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
CN1851668A (zh) 2006-06-01 2006-10-25 北京天碁科技有限公司 片上系统芯片、片上系统芯片的跟踪调试系统及方法
JP5224666B2 (ja) * 2006-09-08 2013-07-03 株式会社東芝 オーディオ符号化装置
DE102006059156B4 (de) 2006-12-14 2008-11-06 Advanced Micro Devices, Inc., Sunnyvale Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem
US20110060587A1 (en) 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8560591B2 (en) 2007-04-25 2013-10-15 International Business Machines Corporation Detection of potential need to use a larger data format in performing floating point operations
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8190664B2 (en) 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
US8051118B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
JP5184824B2 (ja) 2007-06-15 2013-04-17 キヤノン株式会社 演算処理装置及び方法
JP2009110353A (ja) 2007-10-31 2009-05-21 Hitachi Ltd マイクロコントローラ及び制御システム
US7904287B2 (en) 2007-11-13 2011-03-08 International Business Machines Corporation Method and system for real-time prediction of power usage for a change to another performance state
JP4998794B2 (ja) 2007-11-29 2012-08-15 Nkワークス株式会社 画像補正方法と画像補正装置
KR101518237B1 (ko) * 2008-09-01 2015-05-15 삼성전자주식회사 영상의 역양자화 방법 및 장치, 복호화 방법 및 장치
US20100073068A1 (en) 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
CN101754490B (zh) * 2008-12-17 2012-11-07 电信科学技术研究院 一种数据传输的方法、系统和装置
CN101572829B (zh) 2009-06-10 2011-02-02 中国联合网络通信集团有限公司 Iptv视频质量监测方法、装置和系统
EP2336882A1 (en) 2009-12-18 2011-06-22 Telefonaktiebolaget L M Ericsson (PUBL) Technique for run-time provision of executable code using off-device services
US8478507B2 (en) 2010-04-21 2013-07-02 Toyota Jidosha Kabushiki Kaisha Control device for internal combustion engine
JP2011253374A (ja) 2010-06-02 2011-12-15 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US8452463B2 (en) 2010-06-04 2013-05-28 Apple Inc. Adjusting the thermal behavior of a computing system using indirect information about ambient temperature
US8694572B2 (en) 2010-07-06 2014-04-08 Silminds, Llc, Egypt Decimal floating-point fused multiply-add unit
CN102622207B (zh) * 2011-01-30 2015-07-22 中兴通讯股份有限公司 定点化处理方法及装置
US8924455B1 (en) 2011-02-25 2014-12-30 Xilinx, Inc. Multiplication of matrices using systolic arrays
JP6062356B2 (ja) 2011-02-28 2017-01-18 株式会社メガチップス 画像符号化装置
CN102761509B (zh) 2011-04-27 2016-01-06 联芯科技有限公司 Ofdm系统的接收系统及降低接收系统内存的方法
AU2012253292B2 (en) 2011-05-12 2015-10-29 Apple Inc. Presence sensing
CN102789413B (zh) 2011-05-23 2016-02-17 同济大学 一种并行程序的调试系统及方法
US8594982B2 (en) 2011-06-09 2013-11-26 Pulsar Informatics, Inc. Systems and methods for distributed calculation of fatigue-risk prediction and optimization
CN102291773B (zh) * 2011-07-18 2014-12-10 电信科学技术研究院 一种数据压缩方法和设备
CN102404673B (zh) 2011-11-24 2013-12-18 苏州上声电子有限公司 数字化扬声器系统通道均衡与声场控制方法和装置
CN103152673B (zh) 2011-12-07 2015-07-08 中国科学院声学研究所 基于四元码动态失配整形的数字扬声器驱动方法和装置
CN102684701B (zh) 2012-04-27 2014-07-09 苏州上声电子有限公司 基于编码转换的数字扬声器驱动方法和装置
DE102012009502A1 (de) 2012-05-14 2013-11-14 Kisters Ag Verfahren zum Trainieren eines künstlichen neuronalen Netzes
US9417891B2 (en) 2012-06-11 2016-08-16 Vmware, Inc. Unified storage/VDI provisioning methodology
US9224089B2 (en) * 2012-08-07 2015-12-29 Qualcomm Incorporated Method and apparatus for adaptive bit-allocation in neural systems
US9063731B2 (en) 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
CN102903089B (zh) 2012-09-07 2014-12-17 山东大学 一种Linux环境下生成遥感图像快视图的方法
US9412366B2 (en) 2012-09-18 2016-08-09 Adobe Systems Incorporated Natural language image spatial and tonal localization
JP5913059B2 (ja) 2012-11-13 2016-04-27 日本電信電話株式会社 分散型無線通信基地局システム、信号処理装置、無線装置、及び分散型無線通信基地局システムの動作方法
CN102981854A (zh) 2012-11-16 2013-03-20 天津市天祥世联网络科技有限公司 基于浮点数运算内联函数库的神经网络优化方法
KR20150115724A (ko) 2012-11-22 2015-10-14 각고호우징 게이오기주크 아크릴계 공중합체, 광학 필름, 편광판 및 액정 표시 장치
US9851977B2 (en) 2012-12-06 2017-12-26 Kalray Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization
US9720732B1 (en) 2013-02-11 2017-08-01 Amazon Technologies, Inc. Parameter selection for optimization of task execution based on execution history for prior tasks
JP2014170295A (ja) 2013-03-01 2014-09-18 Honda Motor Co Ltd 物体認識システム及び物体認識方法
US20190138372A1 (en) 2013-04-29 2019-05-09 Moogsoft, Inc. System for managing an instructure with security
US20150063461A1 (en) * 2013-08-27 2015-03-05 Magnum Semiconductor, Inc. Methods and apparatuses for adjusting macroblock quantization parameters to improve visual quality for lossy video encoding
JP6184891B2 (ja) 2014-03-12 2017-08-23 東芝メモリ株式会社 情報処理装置、半導体チップ、情報処理方法およびプログラム
CN105100810B (zh) * 2014-05-16 2018-02-13 中国科学院声学研究所 一种成像声纳实时处理系统中的图像压缩解压方法及系统
US9507405B2 (en) 2014-06-18 2016-11-29 Oracle International Corporation System and method for managing power in a chip multiprocessor using a proportional feedback mechanism
US10318882B2 (en) * 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US10282100B2 (en) 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
GB2524126B (en) 2014-08-28 2016-07-27 Imagination Tech Ltd Combining paths
US9916130B2 (en) 2014-11-03 2018-03-13 Arm Limited Apparatus and method for vector processing
FR3030077B1 (fr) 2014-12-10 2016-12-02 Arnault Ioualalen Procede d'ajustement de la precision d'un programme d'ordinateur manipulant au moins un nombre a virgule.
EP3035204B1 (en) 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
US20170061279A1 (en) 2015-01-14 2017-03-02 Intel Corporation Updating an artificial neural network using flexible fixed point representation
US10262259B2 (en) * 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US20160328645A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10083395B2 (en) 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
CN104899641B (zh) 2015-05-25 2018-07-13 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
CN108140232B (zh) 2015-06-10 2022-05-24 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
CN104978303B (zh) 2015-06-19 2019-06-04 上海兆芯集成电路有限公司 单芯片整合的传感器集线器和多传感器管理方法
CN106469291A (zh) 2015-08-19 2017-03-01 中兴通讯股份有限公司 图像处理方法及终端
US10970617B2 (en) * 2015-08-21 2021-04-06 Institute Of Automation Chinese Academy Of Sciences Deep convolutional neural network acceleration and compression method based on parameter quantification
US10031765B2 (en) 2015-09-24 2018-07-24 Intel Corporation Instruction and logic for programmable fabric hierarchy and cache
EP3353745A1 (en) 2015-09-30 2018-08-01 Piksel, Inc. Improved video stream delivery via adaptive quality enhancement using error correction models
US11061672B2 (en) 2015-10-02 2021-07-13 Via Alliance Semiconductor Co., Ltd. Chained split execution of fused compound arithmetic operations
CN106570559A (zh) * 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
US9930248B2 (en) 2015-11-17 2018-03-27 Eman Bayani Digital image capturing device system and method
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN106814639A (zh) 2015-11-27 2017-06-09 富泰华工业(深圳)有限公司 语音控制系统及方法
CN105893419A (zh) 2015-11-30 2016-08-24 乐视致新电子科技(天津)有限公司 一种多媒体照片生成方法、装置、设备及手机
US10699186B2 (en) 2015-12-02 2020-06-30 Google Llc Determining orders of execution of a neural network
CN110135581B (zh) 2016-01-20 2020-11-06 中科寒武纪科技股份有限公司 用于执行人工神经网络反向运算的装置和方法
CN108427990B (zh) * 2016-01-20 2020-05-22 中科寒武纪科技股份有限公司 神经网络计算系统和方法
CN106997236B (zh) 2016-01-25 2018-07-13 亮风台(上海)信息科技有限公司 基于多模态输入进行交互的方法和设备
US10586173B2 (en) 2016-01-27 2020-03-10 Bonsai AI, Inc. Searchable database of trained artificial intelligence objects that can be reused, reconfigured, and recomposed, into one or more subsequent artificial intelligence models
US10497089B2 (en) 2016-01-29 2019-12-03 Fotonation Limited Convolutional neural network
US10103714B2 (en) 2016-03-01 2018-10-16 Qualcomm Incorporated Adjust voltage for thermal mitigation
JP2017156511A (ja) 2016-03-01 2017-09-07 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US10019779B2 (en) 2016-03-08 2018-07-10 Amazon Technologies, Inc. Browsing interface for item counterparts having different scales and lengths
EP3436760A4 (en) * 2016-03-31 2019-12-18 Clear PX Technologies Ltd TEMPERATURE CONTROL DEVICE AND SYSTEM WITH STATIC COOLING PERFORMANCE
CN107330515A (zh) 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行人工神经网络正向运算的装置和方法
US10552119B2 (en) 2016-04-29 2020-02-04 Intel Corporation Dynamic management of numerical representation in a distributed matrix processor architecture
US11055063B2 (en) 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
US10187568B1 (en) 2016-05-02 2019-01-22 Bao Tran Video smart phone
GB201607713D0 (en) * 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
CN105978611B (zh) 2016-05-12 2019-09-17 京信通信系统(中国)有限公司 一种频域信号压缩方法及装置
AU2016203619A1 (en) 2016-05-31 2017-12-14 Canon Kabushiki Kaisha Layer-based operations scheduling to optimise memory for CNN applications
EP3252949B1 (en) 2016-06-01 2020-03-18 Intel IP Corporation Methods and devices for predistortion of signals
US20170357910A1 (en) 2016-06-10 2017-12-14 Apple Inc. System for iteratively training an artificial intelligence using cloud-based metrics
CN107545889B (zh) 2016-06-23 2020-10-23 华为终端有限公司 适用于模式识别的模型的优化方法、装置及终端设备
CN106156310A (zh) 2016-06-30 2016-11-23 努比亚技术有限公司 一种图片处理装置和方法
US20180005111A1 (en) * 2016-06-30 2018-01-04 International Business Machines Corporation Generalized Sigmoids and Activation Function Learning
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
DE102016214786A1 (de) 2016-08-09 2018-02-15 Fujitsu Limited Anwendungsprofiling-Jobmanagement-System, -Programm und -Verfahren
CN107657316B (zh) 2016-08-12 2020-04-07 北京深鉴智能科技有限公司 通用处理器与神经网络处理器的协同系统设计
US20180046903A1 (en) 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN106354568A (zh) 2016-08-23 2017-01-25 京信通信技术(广州)有限公司 一种不同进程间的通信方法及通信装置
CN107797913A (zh) 2016-09-07 2018-03-13 大陆汽车电子(连云港)有限公司 一种实时系统的软件分析系统与方法
US20180075347A1 (en) * 2016-09-15 2018-03-15 Microsoft Technology Licensing, Llc Efficient training of neural networks
US11907760B2 (en) 2016-09-23 2024-02-20 Apple Inc. Systems and methods of memory allocation for neural networks
CN106650922B (zh) 2016-09-29 2019-05-03 清华大学 硬件神经网络转换方法、计算装置、软硬件协作系统
US20180096243A1 (en) 2016-09-30 2018-04-05 General Electric Company Deep learning for data driven feature representation and anomaly detection
US10726330B2 (en) 2016-10-11 2020-07-28 The Research Foundation For The State University Of New York System, method, and accelerator to process convolutional neural network layers
US11321609B2 (en) * 2016-10-19 2022-05-03 Samsung Electronics Co., Ltd Method and apparatus for neural network quantization
CN106485316B (zh) 2016-10-31 2019-04-02 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
CN106502626A (zh) 2016-11-03 2017-03-15 北京百度网讯科技有限公司 数据处理方法和装置
US10216479B2 (en) 2016-12-06 2019-02-26 Arm Limited Apparatus and method for performing arithmetic operations to accumulate floating-point numbers
CN106815551B (zh) * 2016-12-08 2019-09-10 新疆农业大学 一种森林资源管理的变异函数参数拟合的优化方法
CN106600070A (zh) * 2016-12-20 2017-04-26 郭建峰 基于ipso‑bp神经网络的短期股价预测算法
US10997492B2 (en) 2017-01-20 2021-05-04 Nvidia Corporation Automated methods for conversions to a lower precision data format
CN108345939B (zh) * 2017-01-25 2022-05-24 微软技术许可有限责任公司 基于定点运算的神经网络
JP7004503B2 (ja) * 2017-01-27 2022-01-21 ラピスセミコンダクタ株式会社 自動利得制御回路(agc)、逆拡散回路及び受信データの再生方法
CN106951587A (zh) 2017-02-15 2017-07-14 芯启源(南京)半导体科技有限公司 Fpga调试系统及方法
CN106951962B (zh) 2017-03-22 2020-09-01 南京地平线机器人技术有限公司 用于神经网络的复合运算单元、方法和电子设备
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US10332302B2 (en) 2017-04-17 2019-06-25 Intel Corporation Scatter gather engine
WO2018192500A1 (zh) * 2017-04-19 2018-10-25 上海寒武纪信息科技有限公司 处理装置和处理方法
CN108734287A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质
CN107025629B (zh) 2017-04-27 2021-03-26 维沃移动通信有限公司 一种图像处理方法及移动终端
US11842280B2 (en) * 2017-05-05 2023-12-12 Nvidia Corporation Loss-scaling for deep neural network training with reduced precision
US10019668B1 (en) 2017-05-19 2018-07-10 Google Llc Scheduling neural network processing
KR102526650B1 (ko) * 2017-05-25 2023-04-27 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
CN107256422A (zh) * 2017-06-06 2017-10-17 上海兆芯集成电路有限公司 数据量化方法及装置
CN115688877A (zh) * 2017-06-06 2023-02-03 格兰菲智能科技有限公司 一种用于对待量化数据进行定点化处理的方法及计算装置
US11144828B2 (en) 2017-06-09 2021-10-12 Htc Corporation Training task optimization system, training task optimization method and non-transitory computer readable medium for operating the same
US10944902B2 (en) 2017-06-20 2021-03-09 Adobe Inc. Digital image generation using capture support data
US9916531B1 (en) * 2017-06-22 2018-03-13 Intel Corporation Accumulator constrained quantization of convolutional neural networks
EP3646164A4 (en) 2017-06-30 2021-01-20 INTEL Corporation HETEROGENIC MULTIPLIER
CN107451654B (zh) 2017-07-05 2021-05-18 深圳市自行科技有限公司 卷积神经网络的加速运算方法、服务器及存储介质
CN109214509B (zh) 2017-07-05 2021-07-06 中国科学院沈阳自动化研究所 一种用于深度神经网络高速实时量化结构和运算实现方法
US10427306B1 (en) 2017-07-06 2019-10-01 X Development Llc Multimodal object identification
CN107729989B (zh) 2017-07-20 2020-12-29 安徽寒武纪信息科技有限公司 一种用于执行人工神经网络正向运算的装置及方法
CN107451658B (zh) 2017-07-24 2020-12-15 杭州菲数科技有限公司 浮点运算定点化方法及系统
CN107480770B (zh) * 2017-07-27 2020-07-28 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN107688849B (zh) 2017-07-28 2021-04-13 赛灵思电子科技(北京)有限公司 一种动态策略定点化训练方法及装置
CN107679618B (zh) * 2017-07-28 2021-06-11 赛灵思电子科技(北京)有限公司 一种静态策略定点化训练方法及装置
WO2019023984A1 (en) 2017-08-02 2019-02-07 Intel Corporation SYSTEM AND METHOD FOR INCLUSION OF NEURAL NETWORKS 1 AMONG N ON AN AUTOMATIC LEARNING COMPUTER PLATFORM
CN109388779A (zh) * 2017-08-03 2019-02-26 珠海全志科技股份有限公司 一种神经网络权重量化方法和神经网络权重量化装置
WO2019031858A1 (en) 2017-08-08 2019-02-14 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR DETERMINING MEMORY NEEDS IN A NETWORK
US20190050710A1 (en) * 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
EP3679524A4 (en) 2017-09-05 2020-10-28 Panasonic Intellectual Property Corporation of America EXECUTION METHOD, EXECUTION DEVICE, LEARNING METHOD, LEARNING DEVICE AND PROGRAM FOR A DEEP NEURONAL NETWORK
CN107644254A (zh) * 2017-09-09 2018-01-30 复旦大学 一种卷积神经网络权重参数量化训练方法及系统
KR20190034985A (ko) * 2017-09-25 2019-04-03 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
CN107679490B (zh) * 2017-09-29 2019-06-28 百度在线网络技术(北京)有限公司 用于检测图像质量的方法和装置
US11450319B2 (en) 2017-09-29 2022-09-20 Cambricon (Xi'an) Semiconductor Co., Ltd. Image processing apparatus and method
US10224954B1 (en) 2017-09-29 2019-03-05 Intel Corporation Floating point to fixed point conversion
WO2019062931A1 (zh) 2017-09-29 2019-04-04 上海寒武纪信息科技有限公司 图像处理装置及方法
US10223114B1 (en) 2017-09-29 2019-03-05 Intel Corporation Fixed point to floating point conversion
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
JP6540770B2 (ja) 2017-10-17 2019-07-10 富士通株式会社 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法
KR102564456B1 (ko) * 2017-10-19 2023-08-07 삼성전자주식회사 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법
US10410121B2 (en) 2017-10-25 2019-09-10 SparkCognition, Inc. Adjusting automated neural network generation based on evaluation of candidate neural networks
US20210061028A1 (en) 2017-10-26 2021-03-04 Applied Mechatronic Products Apparatus and method for vehicular monitoring, analysis, and control
KR20190054454A (ko) * 2017-11-13 2019-05-22 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
US10783634B2 (en) 2017-11-22 2020-09-22 General Electric Company Systems and methods to deliver point of care alerts for radiological findings
US10803379B2 (en) 2017-12-12 2020-10-13 Amazon Technologies, Inc. Multi-memory on-chip computational network
CN108053028B (zh) 2017-12-21 2021-09-14 深圳励飞科技有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108229681A (zh) * 2017-12-28 2018-06-29 郑州云海信息技术有限公司 一种神经网络模型压缩方法、系统、装置及可读存储介质
US11636327B2 (en) 2017-12-29 2023-04-25 Intel Corporation Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism
US11373088B2 (en) 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism
CN108229663A (zh) * 2018-01-29 2018-06-29 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
CN108288089A (zh) * 2018-01-29 2018-07-17 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
US20190251429A1 (en) 2018-02-12 2019-08-15 Kneron, Inc. Convolution operation device and method of scaling convolution input for convolution neural network
US11106598B2 (en) 2018-02-13 2021-08-31 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11620130B2 (en) 2018-02-13 2023-04-04 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN116991225A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
JP7056225B2 (ja) 2018-02-26 2022-04-19 富士通株式会社 演算処理装置、情報処理装置、情報処理方法、およびプログラム
US10628275B2 (en) 2018-03-07 2020-04-21 Nxp B.V. Runtime software-based self-test with mutual inter-core checking
US11475306B2 (en) 2018-03-22 2022-10-18 Amazon Technologies, Inc. Processing for multiple input data sets
CN108631727B (zh) * 2018-03-26 2019-08-09 河北工业大学 一种基于卷积神经网络的太阳能电池板缺陷识别方法
CN108491928B (zh) * 2018-03-29 2019-10-25 腾讯科技(深圳)有限公司 模型参数发送方法、装置、服务器及存储介质
CN108509627B (zh) * 2018-04-08 2021-08-31 腾讯科技(深圳)有限公司 数据离散化模型训练方法和装置、数据离散方法
CN108510067B (zh) * 2018-04-11 2021-11-09 西安电子科技大学 基于工程化实现的卷积神经网络量化方法
US11562213B2 (en) 2018-04-17 2023-01-24 Intel Corporation Methods and arrangements to manage memory in cascaded neural networks
CN108596328B (zh) * 2018-04-26 2021-02-02 北京市商汤科技开发有限公司 一种定点化方法及装置、计算机设备
US10691413B2 (en) 2018-05-04 2020-06-23 Microsoft Technology Licensing, Llc Block floating point computations using reduced bit-width vectors
EP3624020A4 (en) 2018-05-18 2021-05-05 Shanghai Cambricon Information Technology Co., Ltd CALCULATION PROCEDURES AND RELATED PRODUCTS
CN108717570A (zh) * 2018-05-23 2018-10-30 电子科技大学 一种脉冲神经网络参数量化方法
CN110554500B (zh) 2018-05-31 2022-09-16 中强光电股份有限公司 头戴式显示装置
US10360304B1 (en) 2018-06-04 2019-07-23 Imageous, Inc. Natural language processing interface-enabled building conditions control system
CN109062540B (zh) 2018-06-06 2022-11-25 北京理工大学 一种基于cordic算法的可重构浮点运算装置
CN109063820A (zh) 2018-06-07 2018-12-21 中国科学技术大学 利用时频联合长时循环神经网络的数据处理方法
CN108830331A (zh) * 2018-06-22 2018-11-16 西安交通大学 一种基于全卷积网络的探地雷达目标检测方法
CN109102064B (zh) * 2018-06-26 2020-11-13 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
CN109146057B (zh) * 2018-06-26 2020-12-08 杭州雄迈集成电路技术股份有限公司 一种基于查表计算的高精度的神经网络工程化方法
CN110728364A (zh) 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
JP7053891B2 (ja) 2018-06-27 2022-04-12 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
CN109002889B (zh) * 2018-07-03 2021-12-17 华南理工大学 自适应迭代式卷积神经网络模型压缩方法
CN109214504B (zh) * 2018-08-24 2020-09-04 北京邮电大学深圳研究院 一种基于fpga的yolo网络前向推理加速器设计方法
JP6867518B2 (ja) 2018-08-28 2021-04-28 カンブリコン テクノロジーズ コーポレイション リミティド データ前処理方法、装置、コンピュータ機器及び記憶媒体
US11703939B2 (en) 2018-09-28 2023-07-18 Shanghai Cambricon Information Technology Co., Ltd Signal processing device and related products
CN109472353B (zh) 2018-11-22 2020-11-03 浪潮集团有限公司 一种卷积神经网络量化电路及量化方法
CN109598331A (zh) * 2018-12-04 2019-04-09 北京芯盾时代科技有限公司 一种欺诈识别模型训练方法、欺诈识别方法及装置
CN109685202B (zh) 2018-12-17 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法及装置、存储介质和电子装置
GB2580171B (en) * 2018-12-21 2021-02-17 Imagination Tech Ltd Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation
CN109754074A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 一种神经网络量化方法、装置以及相关产品
CN111383638A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN109740739B (zh) * 2018-12-29 2020-04-24 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109740754B (zh) * 2018-12-29 2020-04-14 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109800865B (zh) * 2019-01-24 2021-03-23 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备
US20190164057A1 (en) * 2019-01-30 2019-05-30 Intel Corporation Mapping and quantification of influence of neural network features for explainable artificial intelligence
CN109859135B (zh) * 2019-01-31 2021-05-07 北京邮电大学 一种应用于关联成像的图像增强处理方法
CN109800877B (zh) 2019-02-20 2022-12-30 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
CN109902745A (zh) 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN109993296B (zh) 2019-04-01 2020-12-29 安徽寒武纪信息科技有限公司 量化实现方法及相关产品
CN110059733A (zh) 2019-04-01 2019-07-26 苏州科达科技股份有限公司 卷积神经网络的优化及快速目标检测方法、装置
CN111832739B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
US20200364552A1 (en) * 2019-05-13 2020-11-19 Baidu Usa Llc Quantization method of improving the model inference accuracy
US11531893B2 (en) * 2019-06-03 2022-12-20 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
US11676029B2 (en) * 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
JP7146955B2 (ja) 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP7146954B2 (ja) 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
EP4020321A4 (en) 2019-08-23 2024-01-17 Anhui Cambricon Information Tech Co Ltd DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM
WO2021036905A1 (zh) 2019-08-27 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN110780845B (zh) 2019-10-17 2021-11-30 浙江大学 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180120967A (ko) * 2017-04-28 2018-11-07 서울대학교산학협력단 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치
KR20190014900A (ko) * 2017-08-04 2019-02-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220116837A (ko) * 2021-02-16 2022-08-23 고려대학교 산학협력단 레이어-단위 양자화 신경망을 위한 인-메모리 가속기 및 이의 동작 방법

Also Published As

Publication number Publication date
KR102656332B1 (ko) 2024-04-09
CN112085186A (zh) 2020-12-15
CN112085190B (zh) 2024-04-02
JP2021179966A (ja) 2021-11-18
CN111652368A (zh) 2020-09-11
CN112085189B (zh) 2024-03-29
CN112085188A (zh) 2020-12-15
CN112085186B (zh) 2024-03-05
CN112085183A (zh) 2020-12-15
CN112085185B (zh) 2024-04-02
KR20210018352A (ko) 2021-02-17
EP3998554A1 (en) 2022-05-18
CN112085189A (zh) 2020-12-15
KR20210011461A (ko) 2021-02-01
CN112085188B (zh) 2024-04-02
WO2020248424A1 (zh) 2020-12-17
JP2021530769A (ja) 2021-11-11
CN112085192B (zh) 2024-03-29
CN112085191B (zh) 2024-04-02
CN112085183B (zh) 2024-04-02
EP3770823A1 (en) 2021-01-27
CN111652367B (zh) 2024-04-09
US11675676B2 (en) 2023-06-13
EP3770823A4 (en) 2021-01-27
CN112085192A (zh) 2020-12-15
CN112085191A (zh) 2020-12-15
EP3998554A4 (en) 2023-11-15
CN112085181B (zh) 2024-03-29
CN112085184A (zh) 2020-12-15
CN112400176A (zh) 2021-02-23
JP7167405B2 (ja) 2022-11-09
US20220261634A1 (en) 2022-08-18
JP2021177369A (ja) 2021-11-11
CN111652368B (zh) 2024-03-29
KR102609719B1 (ko) 2023-12-04
WO2020248423A1 (zh) 2020-12-17
CN112085185A (zh) 2020-12-15
US20210286688A1 (en) 2021-09-16
CN112085193A (zh) 2020-12-15
CN112085193B (zh) 2024-03-29
EP3772022A1 (en) 2021-02-03
JP7166704B2 (ja) 2022-11-08
CN111652367A (zh) 2020-09-11
EP3772023A1 (en) 2021-02-03
CN112085181A (zh) 2020-12-15
CN112085184B (zh) 2024-03-29
CN112085190A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
KR20210011462A (ko) 신경망의 양자화 파라미터 확정방법 및 관련제품
JP2021177369A5 (ko)
JP2021179966A5 (ko)
JP7146954B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP7146955B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
US11676028B2 (en) Neural network quantization parameter determination method and related products
JP7146952B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP7146953B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JPWO2020248424A5 (ko)
JP7034336B2 (ja) データを処理するための方法、装置、および関連製品
WO2021022903A1 (zh) 数据处理方法、装置、计算机设备和存储介质
JP7060719B2 (ja) データを処理するための方法、装置、及び関連製品
US20220222041A1 (en) Method and apparatus for processing data, and related product

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant