KR20210120938A - 딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램 제품 - Google Patents

딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20210120938A
KR20210120938A KR1020210124464A KR20210124464A KR20210120938A KR 20210120938 A KR20210120938 A KR 20210120938A KR 1020210124464 A KR1020210124464 A KR 1020210124464A KR 20210124464 A KR20210124464 A KR 20210124464A KR 20210120938 A KR20210120938 A KR 20210120938A
Authority
KR
South Korea
Prior art keywords
component
network
execution
execution mode
building
Prior art date
Application number
KR1020210124464A
Other languages
English (en)
Inventor
왕 하이펭
후 시아오구앙
리우 홍위
위 디안하이
마 얀준
우 티안
Original Assignee
베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 filed Critical 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드
Publication of KR20210120938A publication Critical patent/KR20210120938A/ko

Links

Images

Classifications

    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 개시는 딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기 및 저장 매체를 개시하였으며, 인공 지능 분야에 관한 것으로, 특히 딥 러닝 분야에 관한 것이다. 딥 러닝의 네트워크 모델을 구축하는 방법은, 모드 파라미터에 기반하여, 코드를 실행하기 위한 실행 모드를 결정하는 것, 상기 실행 모드가 제1 실행 모드로 결정되면, 상기 코드 내의 신택스 엘리먼트를 통해, 상기 제1 실행 모드에서 사용될 수 있는 제1 컴포넌트를 사용하여 상기 코드를 실행하는 것, 및 상기 실행 모드가 제2 실행 모드로 결정되면, 상기 신택스 엘리먼트를 통해, 상기 제2 실행 모드에서 사용될 수 있는 제2 컴포넌트를 사용하여 상기 코드를 실행하는 것을 포함하고, 여기서, 상기 제1 컴포넌트와 상기 제2 컴포넌트는 동일한 컴포넌트 인터페이스를 가지며, 상기 신택스 엘리먼트는 상기 컴포넌트 인터페이스에 대응한다. 이러한 방식으로, 동일한 코드는 두 가지 실행 모드에서 사용될 수 있다.

Description

딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램 제품{Methods, devices, apparatus, storage media and computer program products for building network models of deep learning}
본 개시는 데이터 처리 분야에 관한 것으로, 특히 인공지능 및 딥 러닝 분야에 관한 것으로, 보다 구체적으로는 딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기 및 저장 매체에 관한 것이다.
컴퓨터 기술의 발전과 함께, 사용자의 개발 과정을 단순화하기 위해 사용자가 상용할 수 있는 딥 러닝 플랫폼이 이미 존재한다. 딥 러닝 플랫폼은 통상적으로, 실제 응용에서의 예측을 하기 위해, 정적 그래프(선언적 프로그래밍이라고도 함)와 같은 모드를 채용하여 최종 네트워크 모델의 배치를 실행한다. 컴퓨팅 기기에 대해, 정적 그래프는 실행 속도가 빠르고, 배치하는데 용이하다. 그러나, 현재 사용자들은 훈련 및 디버깅을 용이하게 하기 위해, 동적 그래프(명령어 프로그래밍이라고도 함)와 같은 모드를 채용하여 네트워크 모델 개발을 한다. 이에 따라, 코드가 상이한 모드에서도 실행 가능하게 할 필요가 있다.
본 개시는 딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기 및 저장 매체를 개시한다.
본 개시의 제1 측면에 의하면, 딥 러닝의 네트워크 모델을 구축하기 위한 방법을 제공한다. 딥 러닝의 네트워크 모델을 구축하기 위한 방법은, 모드 파라미터에 기반하여, 코드를 실행하기 위한 실행 모드를 결정하는 것, 실행 모드가 제1 실행 모드로 결정되면, 코드 내의 신택스 엘리먼트를 통해, 제1 실행 모드에서 사용될 수 있는 제1 컴포넌트를 사용하여 코드를 실행하는 것, 및 실행 모드가 제2 실행 모드로 결정되면, 신택스 엘리먼트를 통해, 제2 실행 모드에서 사용될 수 있는 제2 컴포넌트를 사용하여 코드를 실행하는 것을 포함하고, 여기서, 제1 컴포넌트와 제2 컴포넌트는 동일한 컴포넌트 인터페이스를 가지며, 신택스 엘리먼트는 컴포넌트 인터페이스에 대응한다.
본 개시의 제2 측면에 의하면, 딥 러닝의 네트워크 모델을 구축하기 위한 장치를 제공한다. 딥 러닝의 네트워크 모델을 구축하기 위한 장치는, 모드 파라미터에 기반하여, 코드를 실행하기 위한 실행 모드를 결정하도록 구성되는 실행 모드 결정 모듈, 실행 모드가 제1 실행 모드로 결정되면, 코드 내의 신택스 엘리먼트를 통해, 제1 실행 모드에서 사용될 수 있는 제1 컴포넌트를 사용하여 코드를 실행하도록 구성되는 제1 실행 모듈, 및 실행 모드가 제2 실행 모드로 결정되면, 신택스 엘리먼트를 통해, 제2 실행 모드에서 사용될 수 있는 제2 컴포넌트를 사용하여 코드를 실행하도록 구성되는 제2 실행 모듈을 포함하고, 여기서, 제1 컴포넌트와 제2 컴포넌트는 동일한 컴포넌트 인터페이스를 가지며, 신택스 엘리먼트는 컴포넌트 인터페이스에 대응한다.
본 개시의 제3 측면에 의하면, 전자 기기를 제공한다. 전자 기기는, 적어도 하나의 프로세서, 및 적어도 하나의 프로세서와 통신 연결되는 메모리를 포함하고, 상기 메모리에는 적어도 하나의 프로세서에 의해 실행 가능한 명령어가 저장되어 있고, 상기 명령어가 적어도 하나의 프로세서에 의해 실행되어, 적어도 하나의 프로세서로 하여금 본 개시의 제1 측면에 따른 방법을 실행하게 한다.
본 개시의 제4 측면에 의하면, 컴퓨터 명령어가 저장되어 있는 비휘발성 컴퓨터 판독 가능 저장 매체를 개시한다. 비휘발성 컴퓨터 판독 가능 저장 매체는, 상기 컴퓨터 명령어가 프로세서에 의해 실행될 경우, 본 개시의 제1 측면에 따른 방법을 구현한다.
본 개시의 제5 측면에 의하면, 컴퓨터 프로그램 명령어가 포함되어 있는 컴퓨터 프로그램 제품을 개시한다. 컴퓨터 프로그램 제품은, 상기 컴퓨터 프로그램 명령어가 프로세서에 의해 실행될 경우, 본 개시의 제1 측면에 따른 방법을 구현한다.
본 개시에 따른 기술은, 상이한 실행 모드에서 동일한 코드를 실행하는 것을 지원하여, 딥 러닝의 네트워크 모델의 훈련 및 배치를 촉진하도록 할 수 있다.
본 명세서에 기술된 내용은 그 목적이 본 개시의 실시예의 핵심 또는 중요한 특징을 표기하기 위한 것이 아니고, 또한, 본 개시의 범위는 이에 한정되지 않음을 이해하여야 한다. 본 개시의 다른 특징들은 하기 설명으로부터 용이하게 이해할 수 있을 것이다.
첨부 도면 및 하기 설명을 결합하여, 본 개시의 실시예에 따른 상기 및 다른 특징, 장점 및 측면은 보다 명확하게 될 것이다. 첨부 도면에서, 동일하거나 유사한 첨부 부호는 동일하거나 유사한 요소를 나타낸다.
도 1은 본 개시의 다양한 실시예를 구현할 수 있는 예시적인 환경에 대한 개략도이다.
도 2는 본 개시의 일부 실시예에 따른 딥 러닝의 네트워크 모델을 구축하기 위한 방법에 대한 흐름도이다.
도 3은 본 개시의 일부 실시예에 따른 컴퓨팅 기기가 제어 흐름 컴포넌트를 실행하는 방법에 대한 개략도이다.
도 4는 본 개시의 일부 실시예에 따른 컴퓨팅 기기가 컴포넌트를 실행하는 방법에 대한 개략도이다.
도 5는 본 개시의 일부 실시예에 따른 컴퓨팅 기기가 네트워크 최적화 컴포넌트를 실행하는 방법에 대한 개략도이다.
도 6은 본 개시의 일부 실시예에 따른 파라미터를 업데이트하기 위한 컴퓨팅 그래프의 개략도이다.
도 7은 본 개시의 일부 실시예에 따른 컴퓨팅 기기가 학습율 조정 컴포넌트를 실행하는 방법에 대한 개략도이다.
도 8은 본 개시의 일부 실시예에 따른 딥 러닝의 네트워크 모델을 구축하기 위한 장치(800)의 개략적인 블록도이다.
도 9는 본 개시의 다양한 실시예를 구현할 수 있는 복수의 전자 기기(900)의 블록도이다.
이하, 도면을 결합하여 본 개시의 예시적인 실시예들을 설명한다. 쉽게 이해할 수 있도록, 본 명세서에서 설명한 각 실시예의 세부사항을 포함하게 되는데, 이들은 단지 예시적인 것에 불과하다. 따라서, 당업자라면 본 개시의 범위 및 취지를 벗어나지 않으면서 본 개시의 실시예에 대해 여러 가지 변경 및 수정이 이루어질 수 있음을 이해할 것이다. 또한, 명확성과 간결성을 위해 하기의 설명에 있어서, 공지된 기능 및 구성에 대한 설명은 생략한다.
본 개시에 있어서, 용어 "포함" 및 다른 유사한 용어들은 개방적 포함의 의미로, 즉 "포함하 지만, 이에 제한되지 않음"으로 이해하여야 한다. 용어 "기반하여"는 "적어도 일부적으로 기반하여"로 이해되어야 한다. 용어 "일 실시예" 또는 "이 실시예"는 "적어도 하나의 실시예"로 이해되어야 한다. 용어 "제1", "제2" 등은 상이한 또는 동일한 객체들을 지칭할 수 있다. 또한, 다른 명시적 및 암시적 정의들이 후술에서 포함될 수 있다.
상기에서 검토된 바와 같이, 딥 러닝 플랫폼은 통상적으로 실제 응용에서 예측을 하기 위해, 정적 그래프 모드를 채용하여 최종 네트워크 모델의 배치를 진행한다. 정적 그래프 모드에서, 컴퓨팅 기기는 컴퓨팅 그래프(Computational Graph) 구축 단계, 및 컴퓨팅 그래프 실행 단계를 실행한다. 컴퓨팅 그래프 구축 단계에서, 컴퓨팅 기기는 완전한 컴퓨팅 그래프를 구축하기 위해 변수 및 변수 사이의 계산 관계를 정의할 수 있고, 이 단계에서는 입력 데이터가 존재하지 않는다. 컴퓨팅 그래프 구축 단계가 완료된 후, 컴퓨팅 기기는 컴퓨팅 그래프 실행 단계를 실행하여, 입력 데이터를 구축된 컴퓨팅 그래프에 입력하여 출력 데이터를 획득할 수 있다.
따라서, 정적 그래프 모드에 있는 경우, 컴퓨팅 그래프 구축 단계에서 네트워크 구조만 정의할 수 있어, 네트워크 구조에 대응하는 출력 데이터를 실시간으로 획득할 수 없기 때문에, 사용자에 대해, 정적 그래프 모드는 디버깅, 특히 네트워크 모델의 훈련 단계의 디버깅에 불리하다.
따라서, 네트워크 모델을 개발함에 있어서, 사용자는 동적 그래프 모드, 즉 즉시 실행 모드를 사용하는데 더 습관하다. 정적 그래프 모드와는 달리, 동적 그래프 모드는 컴퓨팅 그래프 구축 및 컴퓨팅 그래프 실행 두 단계로 구분되지 않는다. 컴퓨팅 그래프의 구축과 함께 입력 데이터가 입력되므로, 바로 계산이 진행되어 출력 데이터가 출력될 수 있다. 따라서, 동적 그래프 모드에 있는 경우, 사용자가 편집해야 하는 코드가 보다 더 간단하고, 실시간으로 네트워크의 출력을 알 수 있으므로, 디버깅을 보다 더 용이하게 할 수 있다. 따라서, 네트워크 모델의 훈련 단계에서. 사용자는 동적 그래프 모드를 더 선호한다.
그러나, 둘 사이에 사용되는 API(애플리케이션 인터페이스)는 일치하지 않다. 종래 기술에서, 동적 그래프 모드의 프로그래밍 언어를 사용하는 프로그래밍 코드는 정적 그래프 모드에서 직접 실행될 수 없다.
이에 대해, 두 가지 해결 방안이 있을 수 있다. 그 중 하나는, 동적 그래프 모드에 의해 디버깅된 코드(이하, 동적 그래프 코드로 약칭함)를 사용하여, 사용자에 의해 정적 그래프 모드에서 실행될 수 있는 해당 코드(이하, 정적 그래프 코드로 약칭함)로 재 작성한다. 이러한 방안은 많은 인력이 필요하고, 재 작성 과정에서 새로운 오류가 도입된 가능성이 있다.
다른 해결 방안은, 컴퓨팅 기기에 의해 동적 그래프 코드와 정적 그래프 코드의 전환(이하, 동정적 전환로 약칭함)하는 것이다. 그러나, 동정적 전환은 일정한 제한성이 있으며, 첫 번째로 상기 전환과 연관된 기능을 개발하는 것은 비용이 높고, 전환 과정에서 또한 새로운 오류를 도입될 가능성이 있으며, 두 번째로 전환을 위한 동적 그래프 코드를 작성하는 과정에서, 사용자가 동적 그래프 프로그래밍 언어(예를 들어, python)의 제어 흐름(예를 들어, if-eles)를 사용할 수 있지만, 이 프로그래밍 언어에 의해 지원하는 모든 신택스가 사용될 수 있는 것이 아니고, 때로는 정적 그래프 프로그래밍 언어에 의해 사용되는 로직으로 바꿔야 하는 경우가 있어, 사용자에게 혼란을 줄 수 있다. 세 번째로, 프로그래밍 과정에서, 사용자가 자주 정적 그래프의 로직으로 바꿔야 함으로 인해, 디버깅이 어렵게 된다. 또한, 동정적 전환 후의 코드는 매우 복잡하며, 문제가 있는 경우 디버깅하기도 어렵다.
상기 문제 및 다른 잠재적인 문제 중 하나 이상의 문제를 적어도 부분적으로 해결하기 위해, 본 개시의 실시예에 따르면 딥 러닝의 네트워크 모델을 구축하기 위한 방법을 제안한다. 상기 방법은, 동일한 신택스 엘리먼트를 통해 동일한 컴포넌트 인터페이스를 호출하고, 처해 있는 실행 모드의 타입에 따라, 이 컴포넌트 인터페이스를 통해 제1 실행 모드에서 호출되어야 하는 해당 컴포넌트, 및/또는 제2 실행 모드에서 호출되어야 하는 해당 컴포넌트를 각각 호출한다. 이러한 방식으로, 컴퓨팅 기기는, 한 세트의 코드로써 두 가지 실행 모드에 대한 지원을 구현할 수 있어, 딥 러닝의 네트워크 모델의 훈련 및/또는 배치에 사용된다.
이하, 첨부된 도면을 참조하여 본 개시의 실시예를 구체적으로 설명한다. 본 명세서에서, 용어 "모델"은 훈련 데이터로부터 해당하는 입력 및 출력 사이의 연관을 학습하여, 훈련 완료 후에 주어진 입력에 대해 대응하는 출력을 생성할 수 있다. 또한, "모델"은 "신경망", "러닝 모델", "네트워크 모델" 또는 "러닝 네트워크"라고도 할 수 있음을 이해하여야 한다. 모델의 예시로는 DNN, CNN, RNN, LSTM 또는 다른 임의의 조합을 포함하는데, 이에 한정되지는 않는다.
본 명세서에서, 용어 "컴포넌트"는 딥 러닝 프레임워크에서 사용자가 호출할 수 있는 패키징된 모듈을 의미한다. 컴포넌트는 미리 정의된 코드를 포함할 수 있고, 상기 미리 정의된 코드가 실행 될 경우, 관련된 기능 및/또는 방법을 구현할 수 있으며, 이는 데이터의 입력 및/또는 출력, 로직 제어, 컴퓨팅, 네트워크 모델 구축, 네트워크 모델 최적화, 역전파, 네트워크 모델 실행, 학습율 조정 등을 포함하지만, 이에 한정되지 않는다. 다양한 컴포넌트은 인터페이스(API) 기술을 통해 접속될 수 있으며, 사용자는 인터페이스만 알고, 해당 신택스 엘리먼트를 통해 인터페이스에 접속하기만 하면 다양한 컴포넌트를 사용할 수 있다. 본 명세서에서, 데이터 컴퓨팅 유형의 컴포넌트는 때로 연산자 또는 산자(Operator)라고도 한다.
본 명세서에서, 용어 "신택스 엘리먼트"는 코드 내의 한 줄 이상의 명령어를 나타낼 수 있고, 이는 하나의 구현해야 하는 기능을 표시할 수 있다. 신택스 엘리먼트는 다양한 인터페이스에 대응할 수 있고, 또한 데이터를 포함할 수도 있다. 신택스 엘리먼트를 통해, 다양한 컴포넌트에 대한 사용, 데이터(예를 들어, 변수, 파라미터, 상수, 벡터, 행렬, 텐서, 파라미터 리스트 등)의 입력 및 출력을 구현할 수 있다. 코드 작성 과정에서, 복수의 신택스 엘리먼트는 조합되어, 순차적 실행, 분기 조건 선택 및 순환 실행 등과 같은 구조를 통해, 임의의 복잡한 모델에 대한 설명을 구현하도록 한다.
본 명세서에서, 용어 "실행 모드"는 다양한 컴포넌트가 호출될 수 있는 동작 모드를 의미한다. 실행 모드는 상술한 동적 그래프 모드 및 정적 그래프 모드를 포함하지만, 이에 한정되지 않는다. 통상적으로, 상이한 실행 모드에서 사용될 수 있는 컴포넌트는 서로 다를 수 있고, 그리고 이로 인해 대응하는 API도 서로 다를 수 있다는 것을 이해하여야 한다.
본 명세서에서, 용어 "컴퓨팅 그래프"는 네트워크 모델의 동작 조합을 설명하기 위한 그래프를 의미한다. 컴퓨팅 그래프는 두 가지 요소, 즉 노드(Node) 및 에지(Edge)를 포함할 수 있다. 일부 실시예에 따르면, 노드는 벡터, 행렬, 텐서 등과 같은 테이터를 표시할 수 있고, 에지는 가감승제, 합성곱 등과 같은 동작을 표시할 수 있다. 그러나, 본 개시는 이에 대해 한정하지 않는다.
본 명세서에서, 용어 "제어 흐름 컴포넌트"는 제어 흐름을 구현하도록 구성되는 컴포넌트를 의미한다. 제어 흐름은 순차적 제어, 분기(이중 분기 및 다중 분기를 포함할 수 있음) 조건 선택 제어, 및 순환 제어를 포함할 수 있는데, 이에 한정되지는 않는다. 제어 흐름은 코드 내의 각 신택스 엘리먼트(따라서, 이에 대응하는 컴포넌트)의 실행 순서를 결정하기 위한 것이다.
예를 들어, 동적 그래프 모드에서, 분기 조건 제어 흐름 컴포넌트를 사용하기 위해, if-else(python에서 사용된 제어 흐름 컴포넌트)를 포함한 신택스 엘리먼트를 사용하여 분기 조건 제어 흐름 인터페이스에 대응할 수 있고, 순환 제어 흐름 컴포넌트를 사용하기 위해, while 및 for(python에서 사용된 제어 흐름 컴포넌트)를 포함한 신택스 엘리먼트를 사용하여 순환 제어 흐름 인터페이스에 대응할 수 있다.
정적 그래프 모드에서, (이중)분기 조건 제어 흐름 컴포넌트를 사용하기 위해, (이중)분기 조건 제어에 사용되는 신택스 엘리먼트를 사용하여 (이중)분기 조건 제어 흐름 인터페이스에 대응할 수 있고, (다중)분기 조건 제어 흐름을 사용하기 위해, (다중)분기 조건 제어에 사용되는 신택스 엘리먼트를 사용하여 (다중)분기 조건 제어 흐름API에 대응할 수 있으며, 순환 제어 흐름 컴포넌트를 사용하기 위해, 순환 제어에 사용되는 신택스 엘리먼트를 사용하여 순환 제어 흐름 API에 대응할 수 있다. 종래 기술에서, 정적 그래프 내의 신택스 엘리먼트는 동적 그래프 모드에서 직접 사용될 수 없다.
도 1은 본 개시의 다양한 실시예를 구현할 수 있는 예시적인 환경(100)에 대한 개략도이다. 예시적인 환경(100)의 구조 및 기능은 단지 예시적인 목적으로 설명되며, 본 개시의 범위에 대한 그 어떤 한정도 암시되지 않음을 이해하여야 한다. 본 개시의 실시예는 또한 상이한 구조 및/또는 기능을 가진 환경에 적용될 수도 있다.
컴퓨팅 기기(105)는 코드(110)에 포함된 신택스 엘리먼트(111, 112 및 113)에 따라 대응하는 처리 로직을 실행하여, 최종적으로 딥 러닝의 네트워크 모델(170)을 구축할 수 있다. 네트워크 모델(170)을 구축하기 위해, 임의의 수량의 신택스 엘리먼트가 코드(100)에 포함될 수 있다는 것을 이해할 수 있을 것이다.
컴퓨팅 기기(105)는, 예를 들어, 신택스 엘리먼트(111)에 따라 제1 실행 모드에서 호출될 수 있는 딥 러닝 프레임워크(130)의 제1 컴포넌트(140)를 호출할 수 있다. 제1 컴포넌트(140)는 예를 들어, 제1 제어 흐름 컴포넌트(141), 제1 네트워크 구축 컴포넌트(142), 제1 네트워크 실행 컴포넌트(143), 제1 네트워크 최적화 컴포넌트(144), 및 제1 학습율 조정 컴포넌트(145)를 포함할 수 있다. 제1 컴포넌트(140)는 또한 다른 기능을 구현하는 다른 컴포넌트를 포함할 수도 있음을 이해할 수 있을 것이다.
컴퓨팅 기기(105)는, 예를 들어, 신택스 엘리먼트(113)에 따라 제2 실행 모드에서 호출될 수 있는 딥 러닝 프레임워크(130)의 제2 컴포넌트(150)를 호출할 수 있다. 제2 컴포넌트(150)는 예를 들어, 제2 제어 흐름 컴포넌트(151), 제2 네트워크 구축 컴포넌트(152), 제2 네트워크 실행 컴포넌트(153), 제2 네트워크 최적화 컴포넌트(154), 및 제2 학습율 조정 컴포넌트(155)를 포함할 수 있다. 제2 컴포넌트(150)는 또한 다른 기능을 구현하는 다른 컴포넌트를 포함할 수도 있음을 이해할 수 있을 것이다.
컴퓨팅 기기(105)는, 예를 들어, 신택스 엘리먼트(113)에 따라 실행 모드를 수정하기 위한 컴포넌트(160)를 호출할 수 있다. 컴포넌트(160)는 모드 파라미터 업데이트 컴포넌트(161) 및 모드 파라미터 접속 컴포넌트(162)를 포함한다.
상기 동일한 기능을 가진 컴포넌트는 동일한 인터페이스를 통해 호출될 수 있고, 예를 들어, 제1 제어 흐름 컴포넌트(141)와 제2 제어 흐름 컴포넌트(151)는 동일한 인터페이스를 공유할 수 있고, 컴퓨팅 기기(105)는 동일한 신택스 엘리먼트를 통해 제1 제어 흐름 컴포넌트(141) 및/또는 제2 제어 흐름 컴포넌트(151)의 호출을 구현할 수 있다.
상술한 컴포넌트는 임의로 새로운 컴포넌트로 조합되거나 또는 복수의 서브 컴포넌트로 더 분할될 수 있다.
해석의 명확성을 위하여, 하기에는 도 1의 환경(100)을 참조하여 본 개시의 실시예에 대해 설명할 것이다. 또한, 본 개시의 실시예는 도시되지 않은 추가적인 동작을 포함할 수 있고, 및/또는 예시된 동작을 생략할 수 있다는 것을 이해하여야 한다. 본 개시의 범위는 이 측면에는 한정되지 않는다. 이해를 용이하게 하기 위해, 하기의 설명에서 언급되는 구체적인 데이터는 예시적인 것에 불과하며, 본 개시의 범위를 한정하기 위한 것이 아니다.
도 2는 본 개시의 일부 실시예에 따른 딥 러닝의 네트워크 모델을 구축하기 위한 방법(200)에 대한 흐름도이다. 예를 들어, 방법(200)은 도 1에 도시된 컴퓨팅 기기(105)에 의해 실행될 수 있으며, 방법(200)의 다양한 동작은 도 1과 결합하여 하기에서 구체적으로 설명될 것이다.
블록 202에서, 컴퓨팅 기기(105)는 모드 파라미터에 기반하여, 코드를 실행하기 위한 실행 모드를 결정할 수 있다.
구체적으로, 코드 내의 해당 신택스 엘리먼트를 실행하기 전에, 컴퓨팅 기기(105)는 제1 실행 모드에 따라 실행할 지 또는 제2 실행 모드에 따라 실행할 지에 대해 결정한다. 이는 모드 파라미터를 설정함으로써 구현할 수 있고, 예를 들어, 모드 파라미터는 실행 모드가 제1 실행 모드임을 지시하는 경우, 컴퓨팅 기기(105)는 해당 동작을 실행하기 위해 코드 내의 신택스 엘리먼트에 대응하는 제1 컴포넌트를 호출한다.
일부 실시예에 따르면, 해당 신택스 엘리먼트를 사용하여 모드 파라미터 업데이트 컴포넌트를 호출함으로써, 모드 파라미터를 업데이트할 수 있다. 예를 들어, 딥 러닝 프레임워크에서 모드 파라미터 업데이트 컴포넌트를 제공하여, 해당 신택스 엘리먼트를 통해 이 컴포넌트를 호출하여 상기 업데이트를 실행할 수 있다. 신택스 엘리먼트에 제2 실행 모드를 활성화하기 위한 신택스 엘리먼트(예를 들어, 정적 그래프 모드를 활성화하기 위한 신택스 엘리먼트)가 포함되는 경우, 컴퓨팅 기기(105)는 모드 파라미터 업데이트 컴포넌트를 호출하여, 모드 파라미터를 업데이트함으로써 제2 실행 모드(예를 들어, 정적 그래프 모드)를 활성화할 수 있다. 신택스 엘리먼트에서 2 실행 모드를 금지하기 위한 신택스 엘리먼트(예를 들어, 정적 그래프 모드를 금지하기 위한 신택스 엘리먼트)가 포함되는 경우, 컴퓨팅 기기(105)는 모드 파라미터 업데이트 컴포넌트를 호출하여, 모드 파라미터를 업데이트함으로써 제1 실행 모드(예를 들어, 동적 그래프 모드)를 활성화할 수 있다.
일부 실시예에 따르면, 해당 신택스 엘리먼트를 사용하여 모드 파라미터 접속 컴포넌트를 호출함으로써, 현재의 모드 파라미터를 알 수 있다. 예를 들어, 딥 러닝 프레임워크에서 모드 파라미터 접속 컴포넌트를 제공하고, 대응하는 신택스 엘리먼트(예를 들어, 현재 실행 모드를 조회하기 위한 신택스 엘리먼트)를 통해, 상기 컴포넌트를 호출하여 현재 모드 파라미터를 획득할 수 있다.
본 명세서는, 제1 실행 모드 및 제2 실행 모드를 사용하여 설명하지만, 본 개시의 방안에 따르면 더 많은 실행 모드에 사용될 수 있음을 이해할 수 있을 것이다. 일부 실시예에 따르면, 제1 실행 모드는 동적 그래프 모드를 포함하고, 제2 실행 모드는 정적 그래프 모드를 포함하지만, 본 개시는 이에 한정되지 않는다.
이해할 수 있는 것은, 제1 실행 모드 및 제2 실행 모드에서 다양한 기능을 구현하기 위해, 딥 러닝 프레임워크에서 제1 실행 모드 및 제2 실행 모드에 대한 (복수의)제1 컴포넌트 및 (복수의)제2 컴포넌트는 미리 설정될 수 있고, 여기서, (예를 들어, 동일하거나 유사한 기능을 가진)제1 컴포넌트 및 제2 컴포넌트는 동일한 컴포넌트 인터페이스를 가지며, 따라서, 컴퓨팅 기기(105)는 상기 컴포넌트 인터페이스에 대응하는 코드 내의 동일한 신택스 엘리먼트를 통해, 이러한 컴포넌트에 대한 호출을 구현하고, 상이한 실행 모드에서 해당 컴포넌트에 포함된 소정의 코드를 실행할 수 있다.
실행 모드가 제1 실행 모드로 결정되면, 블록 204에서, 컴퓨팅 기기(105)는 코드 내의 신택스 엘리먼트를 통해, 제1 실행 모드에서 사용될 수 있는 제1 컴포넌트를 사용하여 코드를 실행한다.
구체적으로, 제1 실행 모드는 실시간으로 컴퓨팅 그래프에 대해 컴퓨팅할 수 있는 모드이다. 이러한 모드에서, 컴퓨팅 기기(105)는 신택스 엘리먼트와 연관된 입력 데이터에 기반하여, 제1 컴포넌트에 대응하는 제1 동작을 실행하여 출력 데이터를 결정할 수 있다. 따라서, 컴퓨팅 기기(105)는 예를 들어, 사용자가 상기 출력 데이터에 기반하여 네트워크 모델을 디버깅 및/또는 훈련하는 것을 용이하게 하기 위해, 실시간으로 사용자에게 출력 데이터를 디스플레이할 수 있다.
실행 모드가 제2 실행 모드로 결정되면, 블록 206에서, 컴퓨팅 기기(105)는 신택스 엘리먼트를 통해, 제2 실행 모드에서 사용될 수 있는 제2 컴포넌트를 사용하여 코드를 실행한다.
구체적으로, 제2 실행 모드는 컴퓨팅 그래프에 대해 비 실시간으로 컴퓨팅하는 모드일 수 있다. 이런한 모드에서, 컴퓨팅 기기(105)는 우선 제2 컴포넌트에 대응하는 제2 동작을 사용하여 컴퓨팅 그래프를 결정할 수 있고, 컴퓨팅 그래프는 복수의 컴퓨팅 동작에 대응하는 복수의 네트워크 노드를 포함한다. 다음, 컴퓨팅 기기(105)는 신택스 엘리먼트와 연관된 입력 데이터에 기반하여, 실행 컴포넌트에 의해 당해 컴퓨팅 그래프를 사용하여 출력 데이터를 결정한다. 이로써, 컴퓨팅 기기(105)는 네트워크 모델에 대응하는 전반적 컴퓨팅 그래프를 신속하게 구축할 수 있고, 예를 들어, 훈련된 네트워크 모델의 배치 및 사용을 용이하게 할 수 있다.
본 개시의 실시예에 따르면, 제1 실행 모드에서의 컴포넌트와 제2 실행 모드에서의 해당 컴포넌트의 인터페이스를 일치되도록 설계함으로써, 컴퓨팅 기기(105)는 동일한 한 세트의 코드를 사용하여 제1 실행 모드 및 제2 실행 모드에서 각각 실행하여 해당 결과를 획득할 수 있으므로, 통일성 없는 인터페이스로 인하여 네트워크 모델을 구축하는 과정에서 두 세트의 코드를 사용해야 하는 것을 피할 수 있다.
도 3은 본 개시의 일부 실시예에 따른 컴퓨팅 기기(105)가 제어 흐름 컴포넌트를 실행하는 방법(300)에 대한 개략도이다.
제어 흐름 컴포넌트는 제어 흐름을 구현하도록 구성되는 컴포넌트를 의미한다. 제어 흐름은 순차적 제어, 분기(이중 분기 및 다중 분기를 포함할 수 있음) 조건 선택 제어, 및 순환 제어를 포함할 수 있는데, 이에 한정되지는 않는다. 예를 들어, 상기에서 검토한 바와 같이, 종래 방안에서, 정적 그래프 모드와 동적 그래프 모드에 사용되는 제어 흐름 컴포넌트는 서로 다르다.
본 개시의 실시예에 따르면, 제1 실행 모드와 제2 실행 모드에서 사용되는 제어 흐름 컴포넌트는 동일한 컴포넌트 인터페이스, 즉 동일한 제어 흐름 컴포넌트 인터페이스(330)를 갖도록 설계될 수 있다. 제어 흐름 컴포넌트 인터페이스(330)는 분기 조건 선택 제어 컨포넌트 인터페이스(이는 예를 들어, 분기 조건 제어를 위한 신택스 엘리먼트에 대응할 수 있음), 및 순환 제어 컴포넌트 인터페이스(이는 예를 들어, 순환 제어를 위한 신택스 엘리먼트에 대응할 수 있음)를 포함할 수 있다. 일부 실시예에서, 제어 흐름 인터페이스는 기존의 정적 그래프 모드의 제어 흐름 인터페이스와 일치하도록 설계될 수 있어, 사용자가 기존의 신택스 엘리먼트를 통해 사용할 수 있게 한다. 다른 일부 실시예에서, 제어 흐름 인터페이스는 새로운 신택스 엘리먼트를 통해 사용하도록 설계될 수도 있다.
제1 실행 모드에서, 제어 흐름 인터페이스(330)에 대응하는 신택스 엘리먼트(311)가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제1 컴포넌트(340) 내의 제1 제어 흐름 컴포넌트(341)를 사용할 수 있다.
예를 들어, 제1 제어 흐름 컴포넌트(341)가 분기 조건 선택 제어 컴포넌트인 경우, 컴퓨팅 기기(105)는 입력 데이터에 따라 비교 함수의 리턴값을 결정하고, 이에 의해 어떤 분기(즉, 호출 컴포넌트(342) 또는 컴포넌트(343))의 함수를 실행해야 하는지를 실시간으로 결정할 수 있다.
예를 들어, 제1 제어 흐름 컴포넌트(341)가 순환 제어 컴포넌트인 경우, 컴퓨팅 기기(105)는 입력 데이터에 따라 순환을 종료할 필요가 있는지에 대해 확인할 수 있고, 순환을 종료할 필요가 없는 경우, 순환 로직이 실행되고, 순환 변수가 동작되고 업데이트된 변수를 획득하도록 한다.
컴퓨팅 기기(105)는 예를 들어, 코드(310) 내의 신택스 엘리먼트(312)를 통해, 모드 파라미터 업데이트 컴포넌트(361)를 호출하여, 실행 모드를 제1 실행 모드로부터 제2 실행 모드로 전환할 수 있다.
제2 실행 모드에서, 제어 흐름 인터페이스(330)에 대응하는 신택스 엘리먼트(313)(신택스 엘리먼트(311)와 동일함)가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제2 컴포넌트(350) 내의 제2 제어 흐름 컴포넌트를 사용할 수 있다.
예를 들어,제2 제어 흐름 컴포넌트(351)가 분기 조건 선택 제어 컴포넌트인 경우, 컴퓨팅 기기(105)는 분기 조건 선택에 대한 컴퓨팅 그래프를 결정할 수 있고, 예를 들어, 비교 함수의 동작 노드를 설정하고, 분기 함수의 동작 노드(즉, 컴포넌(352) 및 컴포넌트(353))를 설정한다. 다음, 컴퓨팅 기기(105)는 제2 실행 모드의 네트워크 실행 컴포넌트를 실행함으로써, 컴퓨팅 그래프의 출력을 획득한다.
예를 들어, 제2 제어 흐름 컴포넌트(351)가 순환 제어 컴포넌트인 경우, 컴퓨팅 기기(105)는 실시간으로 순환 동작에 대한 컴퓨팅 그래프를 결정할 수 있고, 다음, 컴퓨팅 기기(105)는 제2 실행 모드의 네트워크 실행 컴포넌트를 실행함으로써, 컴퓨팅 그래프의 출력을 획득한다.
이러한 방식으로, 두 가지 실행 모드의 제어 흐름 컴포넌트를 동일한 제어 흐름 인터페이스로 통일화함으로써, 컴퓨팅 기기(105)는 동일한 신택스 엘리먼트를 통해, 동일한 컴포넌트 인터페이스에 의해 이런한 제어 흐름 컴포넌트들을 호출하여, 상이한 실행 모드에서 상이한 처리 로직을 실행하도록 지원할 수 있다.
상기 두 가지 실행 모드(예를 들어, 동정적 그래프)의 인터페이스를 통일화시키는 구현 방식을 통해, 개발자는 한 세트의 코드만 작성하면 두 가지 실행 모드에서 실행 가능하도록 할 수 있다. 컴퓨팅 기기는 상기 한 세트의 코드를 사용하여, 동적 그래프 모드 및 정적 그래프 모드에서 각각 실행할 수 있다. 이러한 방식으로, 동적 그래프의 디버깅하기 쉬운 장점이 유지될 수 있고, 정적 그패프의 전반적 최적화 및 예측 배치에 대한 편리성의 장점도 유지될 수 있으며, 동시에, 코드를 재 작성하거나 코드의 동정적 전환해야 하는 것을 피할 수도 있다.
도 4는 본 개시의 일부 실시예에 따른 컴퓨팅 기기(105)가 컴포넌트를 실행하는 방법(400)에 대한 개략도이다.
제1 실행 모드 및 제2 실행 모드에서, 컴퓨팅 그래프에 대한 컴퓨팅 기기(105)의 실행 방식은 통일화되지 않는다. 예를 들어, 상기 검토된 바와 같이, 컴퓨팅 기기(105)는 별도의, 네트워크 실행 컴포넌트를 호출하기 위한 코드에 의해 정적 그래프 모드 중의 컴퓨팅 그래프에 대한 컴퓨팅을 구현해야 하므로, 상기 코드는 소용없는 상기 실행을 구현하기 위한 코드를 포함할 수 있다.
본 개시의 실시예에 따르면, 제1 실행 모드와 제2 실행 모드에 사용되는 이러한 컴포넌트는 동일한 컴포넌트, 예를 들어 실행 컴포넌트 인터페이스(430)를 갖도록 설계될 수 있다. 또한, 제2 실행 모드에서 실행 기능을 구현하기 위한 방법을 대응하는 컴포넌트(451)로 패키징할 수 있다. 이로써, 코드(410)는 실행 기능을 구현하는 방법에 대응하는 상이한 신택스 엘리먼트를 포함하지 않아도 된다.
제1 실행 모드에서, 네트워크 실행 컴포넌트 인터페이스(430)에 대응하는 신택스 엘리먼트(411)가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제1 컴포넌트(440) 내의 제1 네트워크 실행 컴포넌트(441)를 사용하여 입력 데이터에 대해 처리하여 출력 데이터를 획득할 수 있다.
컴퓨팅 기기(105)는, 예를 들어, 코드(410) 내의 신택스 엘리먼트(412)를 통해 모드 파라미터 업데이트 컴포넌트(461)를 호출하여, 실행 모드를 제1 실행 모드로부터 제2 실행 모드로 전환할 수 있다.
제2 실행 모드에서, 네트워크 실행 컴포넌트 인터페이스(430)에 대응하는 신택스 엘리먼트(413)(신택스 엘리먼트(411)와 동일함)가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제2 컴포넌트(450) 내의 제2 네트워크 실행 컴포넌트(451)를 사용하여 입력 데이터에 대해 처리하여 출력 데이터를 획득할 수 있다.
일부 실시예에서, 컴퓨팅 기기(105)가 해당 실행 모드에서 대응하는 네트워크 실행 컴포넌트를 호출하는데 유익하도록하기 위해, 제1 네트워크 실행 컴포넌트 및 제2 네트워크 실행 컴포넌트에 대해 각각 유형 라벨(예를 들어, 동적 그래프 모드 유형, 및 정적 그래프 모드 유형)을 설정할 수 있다.
일부 실시예에서, 상기 제1 네트워크 실행 컴포넌트(441) 및 제2 네트워크 실행 컴포넌트(451)는 패키징된 홀딩 객체 및 패키징된 홀딩 함수(Holding Function)에 대한 동작을 지원하도록 설계될 수 있다.
일부 실시예에서, 제1 네트워크 실행 컴포넌트(441)는, 컴퓨팅 기기(105)가 제2 실행 모드에서 실행되도록 구성되는 신택스 엘리먼트(예를 들어, 플레이스 홀더를 결정하기 위한 코드)를 실행할 경우, 이러한 신택스 엘리먼트에 대한 실행을 에러 없이 스킵하도록 구성될 수 있다.
일부 실시예에서, 제2 네트워크 실행 컴포넌트(451)는, 실행될 경우, 컴퓨팅 기기(105)로 하여금 입력 데이터에 기반하여, 입력 데이터에 대한 제1 컴퓨팅 그래프를 결정하고, 및 제1 컴퓨팅 그래프에 기반하여, 입력 데이터에 대해 처리하여 출력 데이터를 획득할 수 있도록 구성될 수 있다.
구체적으로, 제2 실행 모드에서 입력된 변수("플레이스 홀더"라고도 함)에 대해 정의해야 하므로, 제2 네트워크 실행 컴포넌트(451)는 입력될 데이터의 형태 및 타입에 따라 플레이스 홀더를 자동으로 결정하여 컴퓨팅 그래프를 생성하기 위해 사용하고, 다음, 생성된 컴퓨팅 그래프에 따라, 컴퓨팅 기기(105)는 입력된 데이터에 대해 해당 동작을 실행하여 출력 데이터를 결정하도록 구성될 수 있다. 이런 경우, 코드(440)는 더 이상 제2 실행 모드에서 실행되도록 구성되는 신택스 엘리먼트를 포함하지 않아도 되며, 상이한 실행 모드 중의 코드(440)의 완전한 통일와를 달성할 수 있다.
일부 실시예에서, 배치(batch) 데이터가 처리 과정에서, 배치 사이즈(batch_size)가 변경될 수 있으므로, 제2 네트워크 실행 컴포넌트(451)는 배치 사이즈에 적응되는 방식으로 플레이스 홀더를 설정하도록 구성될 수도 있다. 이는, 예를 들어, 플레이스 홀더 추산 에 사용되는 함수의 제1 차원을 가변 차원으로 설정함으로써 구현할 수 있다.
일부 실시예에서, 예를 들어 순환 또는 반복 실행 과정에서, 제2 실행 모드에서 사용되는 컴퓨팅 그래프를 반복으로 구축하는 것을 피하기 위해, 제2 네트워크 실행 컴포넌트(451)는 또한 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 그래프 구축 라벨의 타입을 결정하도록 구성될 수 있고, 상기 라벨이 컴퓨팅 그래프가 아작 구성되지 않았음을 나타내는 경우, 컴퓨팅 기기(105)는 입력 데이터에 대한 제1 컴퓨팅 그래프를 결정하고, 반면, 컴퓨팅 그래프를 재 구축하지 않고 이미 구축된 제1 컴퓨팅 그래프를 사용한다. 유사한 단계들은 또한 컴퓨팅 그래프 구축을 포함하는 다른 과정에도 적용될 수 있다.
일부 실시예에서, 상기 네트워크 실행 컴포넌트는 입력 데이터의 타입에 따라 해당 동작을 실행하도록 구성될 수 있다.
이러한 방식으로, 컴퓨팅 기기(105)는 동일한 신택스 엘리먼트를 통해, 동일한 컴포넌트 인터페이스에 의해 네트워크 실행 컴포넌트에 대한 호출을 구현할 수 있고, 컴퓨팅 기기(105)는 처해 있는 상이한 실행 모드에 따라, 대응하는 컴포넌트에 포함된 실행 로직을 각각 실행하여 상이한 실행 모드에서 입력 데이터에 대해 처리하도록 지원할 수 있다.
일부 실시예에서, 네트워크 구축 컴포넌트의 인터페이스도 유사한 방식으로 설계될 수 있다. 제1 실행 모드에서, 네트워크 구축 컴포넌트에 대응하는 신택스 엘리먼트가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제1 제어 흐름 컴포넌트에 의해 네트워크 구축 컴포넌트를 사용할 수 있다. 제2 실행 모드에서, 네트워크 구축 컴포넌트에 대응하는 신택스 엘리먼트가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제2 제어 흐름 컴포넌트에 의해 네트워크 구축 컴포넌트를 사용할 수 있다.
이러한 방식으로, 컴퓨팅 기기(105)는 동일한 신택스 엘리먼트에 의해, 두 가지 실행 모드에서 LSTM와 같은 네트워크 구축을 위한 컴포넌트를 사용할 수 있다.
도 5는 본 개시의 일부 실시예에 따른 컴퓨팅 기기(105)가 네트워크 최적화 컴포넌트를 실행하는 방법(500)에 대한 개략도이다.
네트워크 최적화 컴포넌트는 네트워크 모델에 대해 최적화될 파리미터를 업데이트하도록 구성되고, 예를 들어, 최적화될 파라미터가 네커티브 그레이디언트 방향을 향해 업데이트되도록 확률적 경사 하강법(SGD)을 사용할 수 있다. 종래 방식에 따르면, 상기에서 검토한 바와 같은 제1 실행 모드와 제2 실행 모드 사이의 차이(실시간 실행 및 단계별 실행)로 인하여, 컴퓨팅 기기(105)는 상이한 신택스 엘리먼트를 통해 네트워크 최적화 컴포넌트에 대한 호출을 구현할 필요가 있다.
본 개시의 실시예에 따르면, 제1 실행 모드와 제2 실행 모드에서 사용되는 네트워크 최적화 컴포넌트는 동일한 컴포넌트 인터페이스, 즉, 동일한 네트워크 최적화 컴포넌트 인터페이스(530)를 갖도록 설계될 수 있다. 또한, 제1 실행 모드 또는 제2 실행 모드에서 네트워크 최적화 기능을 구현하기 위한 방법을, 대응하는 컴포넌트(541) 또는 컴포넌트(551)로 패키징할 수 있음으로써, 코드(510)는 네트워크 최적화 기능을 구현하는 방법에 대응하는 상이한 신택스 엘리먼트를 포함하지 않아도 된다.
제1 실행 모드에서, 네트워크 최적화 컴포넌트 인터페이스(530)에 대응하는 신택스 엘리먼트가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제1 컴포넌트(540) 내의 제1 네트워크 최적화 컴포넌트(541)를 사용하여 네트워크 모델 파라미터에 대해 업데이트할 수 있다.
컴퓨팅 기기(105)는, 예를 들어, 코드(510) 내의 신택스 엘리먼트(512)를 통해 모드 파라미터 업데이트 컴포넌트(561)를 호출하여, 실행 모드를 제1 실행 모드로부터 제2 실행 모드로 전환할 수 있다.
제2 실행 모드에서, 네트워크 최적화 컴포넌트 인터페이스(530)에 대응하는 신택스 엘리먼트가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제2 컴포넌트(550) 내의 제2 네트워크 최적화 컴포넌트(551)를 사용하여 네트워크 모델 파라미터에 대해 업데이트할 수 있다.
일부 실시예에서, 제2 네트워크 최적화 컴포넌트 및 제1 네트워크 최적화 컴포넌트는 모두 예를 들어 변환층(Transform Layer) 컴포넌트를 호출한다. 상기 변환층 컴포넌트는 가중치 파라미터(예를 들어, 가중치 행렬W)에 기반하여 입력 데이터에 대해 동작하도록 구성되고, 예를 들어, 상기 동작은 입력 데이터를 가중치 행렬와 곱하는 동작을 포함한다.
일부 실시예에서, 제1 네트워크 최적화 컴포넌트는, 실행될 경우, 컴퓨팅 기기(105)로 하여금, 네트워크 모델 파라미터에 의해 발생한 손실을 결정하는 단계, (예를 들어, 손실 함수 컴포넌트를 사용함으로써)네트워크 모델 파라미터와 연관된 그레이디언트를 결정하는 단계, 및 (예를 들어, 각 시간 스텝에서 실행되는 동작을 정의하도록 구성되는 시간 스텝 컴포넌트를 통해)업데이트된 네트워크 모델 파라미터를 결정하는 단계를 개별적으로(추가적으로 또는 대안적으로, 순차적으로) 실행하여 결과를 각각 출력할 수 있게 하도록 구성될 수 있다.
제2 네트워크 최적화 컴포넌트는, 실행될 경우, 컴퓨팅 기기(105)로 하여금, 순전파에 대한 제2 컴퓨팅 그래프를 구축하여, 네트워크 모델 파라미터로 인한 손실을 결정하는 단계(552), 역전파에 대한 제3 컴퓨팅 그래프를 구축하여, 네트워크 모델 파라미터와 관련된 그레이디언트를 결정하는 단계(554), 및 네트워크 모델 파라미터 업데이트에 대한 제4 컴퓨팅 그래프를 구축하여, 업데이트된 네트워크 모델 파라미터를 결정하는 단계(556)를 개별적으로(추가적으로 또는 대안적으로, 순차적으로) 실행하게 하여, 컴퓨팅 기기(105)에 의해 제1 네트워크 최적화 컴포넌트를 실행하는데 포함된 단계들과 대응하도록 구성될 수 있다. 이로써, 제2 실행 모드에서, 컴퓨팅 기기(105)가 결과를 단계적으로 출력하여 디버깅을 용이하게 하도록 할 수 있는 것을 구현할 수 있다.
일부 실시예에서, 네트워크 최적화 컴포넌트는 컴퓨팅 기기(105)에 의해 판독될 필요가 있는 코드 및 실행될 필요가 있는 단계를 단순화하기 위해, 상술한 네트워크 실행 컴포넌트를 사용할 수 있다. 예를 들어, 손실 함수의 컴퓨팅 및 역전파의 그레이디언트에 대한 컴퓨팅 과정에서, 상술한 네트워크 실행 컴포넌트를 사용할 수 있다.
일부 실시예에서, 컴퓨팅 기기(105)는 단지 첫 번째 라운드의 반복에서만 단계552 내지 단계556 중의 컴퓨팅 그래프를 구축하는 단계를 실행하고, 후속 반복 과정에서는, 이미 구성된 컴퓨팅 그래프를 사용하여, 손실 함수 및/또는 그레이디언트 및/또는 업데이트된 네트워크 모델 파라미터를 결정할 수 있다.
이하, 도 6을 참조하여 상기 단계를 구체적으로 설명한다. 도 6은 본 개시의 일부 실시예에 따른 파라미터를 업데이트하기 위한 컴퓨팅 그래프(600)의 개략도이다. 구체적으로, 컴퓨팅 그래프(600)는 상기 단계552 내지 단계556과 대응된다. 컴퓨팅 그래프(600)는 단지 설명을 위한 것이고, 실제 응용에서 컴퓨팅 기기(105)가 코드에 따라 결정한 컴퓨팅 그래프는 더 많은 및/또는 더 적은 및/또는 상이한 컴퓨팅 노드를 포함할 수 있다는 점을 이해할 수 있을 것이다. 예를 들어, 학습율 조정을 고려하는 경우, 상기 컴퓨팅 그래프는 학습율 조정과 관련된 노드를 포함할 수 있다.
컴퓨팅 그래프(600)는 순전파부분(652), 역전파부분(654) 및 네트원트 모델 파라미터 업데이트부분(656)을 포함할 수 있다.
제2 실행 모드에서, 제2 네트워크 최적화 컴포넌트를 사용함으로써, 컴퓨팅 기기(105)는 우선 순전파부분(652)의 컴퓨팅 그래프(제2 컴퓨팅 그래프)를 구축하고, 상기 컴퓨팅 그래프를 사용하여 해당 동작을 실행하여 이 부분의 출력 결과(예를 들어, 오차)를 획득할 수 있다.
구체적으로, 최적화될 파라미터는 오프셋 파라미터(601)(예를 들어, 오프셋 파라미터b)와 가중치 파라미터(602)(예를 들어, 가중치 행렬W)이고, 이는 초기화 동작(601 및 602)에 의해 초기 값을 설정할 수 있다. 컴퓨팅 그래프 구축 단계에서, 플레이스 홀딩을 위한 플레이스 홀더를 구축할 수 있고, 상기 플레이스 홀더는 컴퓨팅 그래프 실행 단계에서 동작(603)을 통해 입력 데이터(607)를 입력할 수 있다. 다음, 컴퓨팅 기기(105)는 동작(614)(예를 들어, 상술한 변환층 컴포넌트의 호출)을 통해, 네트워크 모델의 출력(609)에 대해 컴퓨팅할 수 있고, 출력(609)은 예를 들어, 입력 가중치 파라미터(602)를 입력 데이터와 곱한 다음, 오프셋 파라미터(601)와 가하여 획득된 것이다(즉, W*x+b). 컴퓨팅 구축 단계에서, 플레이스 딩을 위한 플레이스 홀더를 구축하여, 동작(604)을 통해 출력(609)에 대응하는 진실 값(610)(이는 예를 들어, 라벨링된 샘플에 의해 획득할 수 있음)을 입력할 수 있다. 컴퓨팅 그래프 실행 단계에서, 컴퓨팅 기기는 출력(609) 및 진실 값(610)에 대해 동작(619)(예를 들어, 평균 제곱 오차를 구하는 동작)을 실행하여, 네트워크 모델의 출력(609)과 진실 값(610) 사이의 손실(611)을 획득하고, 이에 따라, 순전파부분이 종료된다. 이로써, 컴퓨팅 기기(105)는 제2 실행 모드에서, 제2 네트워크 최적화 컴포넌트를 호출하여 손실(611)을 획득할 수 있어, 순전파 과정에 대한 조정을 편리하게 할 수 있다.
다음, 제2 네트워크 최적화 컴포넌트를 사용함으로써, 컴퓨팅 기기(105)는 역전파부분(654)의 컴퓨팅 그래프(제3 컴퓨팅 그래프)를 구축하고, 이 컴퓨팅 그래프를 사용하여 해당 동작을 실행하여 이 부분의 출력 결과(데이터(615) 및 데이터(616))를 획득할 수 있다.
구체적으로, 출력(609), 손실(611), 진실 값(610) 및 손실된 그레이디언트(612)에 기반하여, 컴퓨팅 기기(105)는 동작(613)(예를 들어, 각 입력에 대해 모든 출력과 해당 입력에 대한 그레이디언트의 합을 계산함)을 실행함으로써, 출력(609)의 그레이디언트를 나타내는 데이터(620)를 획득할 수 있다. 오프셋 파라미터(601), 가중치 파라미터(602), 입력 데이터(607), 출력(609) 및 데이터(613)에 기반하여, 컴퓨팅 기기(105)는 동작(614)을 실행함으로써, 가중치 파라미터(605) 및 오프셋 파라미터(606)의 그레이디언트를 각각 나타내는 데이터(615) 및 데이터(616)를 획득할 수 있다. 이에 따라, 역전파부분이 종료된다. 이로써, 컴퓨팅 기기(105)는 제2 실행 모드에서, 가중치 파라미터(605) 및 오프셋 파라미터(606)의 그레이디언트에 대한 데이터(615) 및 데이터(616)를 획득할 수 있어, 역전파 과정에 대한 조정을 편리하게 할 수 있다.
다음, 제2 네트워크 최적화 컴포넌트를 사용함으로써, 컴퓨팅 기기(105)는 네트워크 모델 파라미터 업데이트 부분(656)의 컴퓨팅 그래프(제4 컴퓨팅 그래프)를 구축하고, 이 컴퓨팅 그래프를 사용하여 해당 동작을 실행하여 출력 결과를 획득하며, 상기 출력 결과에 기반하여 네트워크 모델의 파라미터(605) 및 파라미터(606)에 대해 업데이트할 수 있다.
구체적으로, 데이터(615) 및 데이터(616)에 기반하여, 컴퓨팅 기기는 예를 들어 동작617 및 동작618(이는 확률적 경사 하강법(SGD)을 통해 실행할 수 있음)을 개별적으로 실행하여, 가중치 파라미터(601) 및 오프셋 파라미터(602)를 업데이트할 수 있다.
다시 도 5를 참조하면, 일부 실시예에서, 제1 네트워크 최적화 컴포넌트는, 실행될 경우, 컴퓨팅 기기(105)로 하여금 네트워크 모델 파라미터에 의해 발생한 손실을 결정하는 단계, 상기 네트워크 모델 파라미터와 연관된 그레이디언트를 결정하는 단계, 및 업데이트된 네트워크 모델 파라미터를 결정하는 단계를 통일적으로 실행하여 결과를 출력하도록 구성될 수 있다. 이는, 상기 단계들에 대해 통일화된 함수를 정의하고 해당 함수를 호출하는 것을 통해 구현될 수 있음으로써, 상기 함수를 호출할 때 대응하는 결과를 출력할 수 있게 한다.
종래 방식에 따르면, 제2 실행 모드에서, 우선 컴퓨팅 그래프의 순방향 네트워크에 따라 역방향 네트워크를 추가하고, 다음 컴퓨팅 그래프에 그레이디언트 업데이트의 연산자의 컴포넌트를 추가하여 컴퓨팅 그래프를 결정한 후, 실행 컴포넌트를 사용하여 결정된 컴퓨팅 그래프에 대해 해당 컴퓨팅을 실행한다. 이에 비하여, 본 개시의 실시예에 따르면, 컴퓨팅 기기(105)는 동일한 신택스 엘리먼트를 통해, 동일한 컴포넌트 인터페이스에 의해 네트워크 최적화 컴포넌트에 대한 호출을 구현할 수 있고, 컴퓨팅 기기(105)는 처해 있는 상이한 실행 모드에 따라, 대응하는 컴포넌트에 포함된 실행 로직을 각각 실행함으로써, 상이한 실행 모드에서 네트워크 모델 파라미터에 대해 최적화하도록 지원할 수 있다.
도 7은 본 개시의 일부 실시예에 따른 컴퓨팅 기기(105)가 학습율 조정 컴포넌트를 실행하는 방법(700)에 대한 개략도이다.
종래 방식에 따르면, 상기에서 검토한 바와 같이, 제1 실행 모드와 제2 실행 모드의 차이(실시간 실행 및 단계별 실행)로 인하여, 컴퓨팅 기기(105)는 상이한 신택스 엘리먼트를 통해 네트워크 최적화 컴포넌트에 대한 호출을 구현해야 한다. 네트워크 최적화 컴포넌트가 네트워크 모델에 대한 최적화를 실행할 경우, 통상적으로 하기 수식(1)에 따라 업데이트된 파라미터를 결정하는 것이 필요하다.
param_new = param - learning_rate*grad(수식1)
여기서, param_new는 업데이트된 파라미터를 의미하고, param는 아직 업데이트되지 않은 파라미터를 의미하고, learning_rate는 학습율을 의미하며, grad는 그레이디언트를 의미한다.
네트워크 모델의 훈련 과정에서, 학습율에 대한 조정이 필요하며, 통상적으로 훈련된 반복 라운드 수가 많을수록, 필요하는 학습율이 더 작다는 것을 이해할 수 있을 것이다.
본 개시의 실시예에 따르면, 제1 실행 모드와 제2 실행 모드에서 사용되는 학습율 조정 컴포넌트는 동일한 컴포넌트 인터페이스, 즉 동일한 학습율 조정 컴포넌트 인터페이스(730)를 갖도록 설계될 수 있다. 또한, 제2 실행 모드에서 학습율 조정 기능을 구현하기 위한 방법을 대응하는 컴포넌트(751)로 패키징할 수 있으며, 이로써, 코드(710)는 학습율 조정 기능을 구현하는 방법에 대응하는 상이한 신택스 엘리먼트를 포함하지 않아도 된다.
제1 실행 모드에서, 학습율 조정 컴포넌트 인터페이스(730)에 대응하는 신택스 엘리먼트(711)가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제1 컴포넌트(740) 내의 제1 학습율 조정 컴포넌트(741)를 사용하여 학습율에 대해 조정할 수 있다.
컴퓨팅 기기(105)는, 예를 들어, 코드(710) 내의 신택스 엘리먼트(712)를 통해 모드 파라미터 업데이트 컴포넌트(761)를 호출하여, 실행 모드를 제1 실행 모드로부터 제2 실행 모드로 전환할 수 있다.
제2 실행 모드에서, 학습율 조정 컴포넌트 인터페이스(730)에 대응하는 신택스 엘리먼트(713)(예를 들어, 신택스 엘리먼트(711)와 동일함)가 컴퓨팅 기기(105)에 의해 실행될 경우, 컴퓨팅 기기(105)는 제2 컴포넌트(750) 내의 제2 학습율 조정 컴포넌트(751)를 사용하여 학습율에 대해 조정할 수 있다.
학습율을 조정하는 과정에서, 업데이트된 학습율을 계산해야 하므로, 이는 제2 실행 모드에서 대응하는 컴퓨팅 그래프 노드를 설정하고, 데이터를 상기 노드에 입력하는 것을 통해 구현해야 함으로 인해, 이러한 구현 과정은 상대적으로 복잡하고, 일정한 자원 낭비를 초해할 수 있다.
일부 실시예에서, 제2 학습율 조정 컴포넌트(751)는, 제2 학습율 조정 컴포너트가 실행될 경우, 컴퓨팅 기기(105)로 하여금 학습율 노드를 포함하지만 학습율을 업데이트하기 위한 노드를 포함하지 않는 제5 컴퓨팅 그래프를 구축하는 단계(752), 학습율의 업데이트 값을 수신하여 학습율 노드의 입력으로 하는 단계(754), 및 제5 컴퓨팅 그래프 및 학습율의 업데이트 값에 기반하여 학습율을 조정하는 단계(756)를 실행하도록 구성된다.
구체적으로, 상기 동작에 의해, 컴퓨팅 기기(105)는 처음으로 학습율 조정 컴포넌트(예를 들어, 학습율 조정 컴포넌트에 사용되는 상기에서 검토한 바와 같은 시간 스텝 컴포넌트)를 호출할 때, 제5 컴퓨팅 그래프를 생성할 때, 원래의 학습율을 업데이트하기 위한 컴퓨팅 동작의 노드를, 학습율을 입력하는 노드로 변경하고, 초기 학습율을 입력할 수 있다. 다음, 컴퓨팅 기기(105)는 후속의 라운드에 따라 순차적으로 학습율 조정 컴포넌트(예를 들어, 시간 스텝 컴포넌트)를 호출할 때, 외부로부터 업데이트된 학습율을 컴퓨팅 그래프의 해당 노드로 전송하여, 네트워크 모델 파라미터 업데이트를 실행하는데 사용한다. 여기서, 업데이트된 학습율은 컴퓨팅 기기(105)에 의해 python 등과 같은 언어로 작성된 프로그램이 실행되어 계산될 수 있다.
일부 실시예에서, 네트워크 최적화 컴포넌트는 컴퓨팅 기기(105)에 의해 판독될 필요가 있는 코드 및 실행될 필요가 있는 단계를 단순화하기 위해, 상술한 네트워크 실행 컴포넌트 및 상술한 네트워크 최적화 컴포넌트를 사용할 수 있다.
이러한 방식으로, 컴퓨팅 기기(105)가 학습율을 계산하는데 필요한 단계들을 단순화하여, 계산을 구현하는데 필요한 오버 헤드(Overhead)를 감소시킬 수 있다.
도 8은 본 개시의 일부 실시예에 따른 딥 러닝의 네트워크 모델을 구축하기 위한 장치(800)의 개략적인 블록도이다. 도 8에 도시된 바와 같이, 장치(800)는 실행 모드 결정 모듈(802)을 포함할 수 있고, 실행 모드 결정 모듈(802)은 모드 파라미터에 기반하여, 코드를 실행하기 위한 실행 모드를 결정하도록 구성될 수 있다. 장치(800)는 제1 실행 모듈(804)을 더 포함할 수 있으며, 제1 실행 모듈(804)은 실행 모드가 제1 실행 모드로 결정되면, 코드 내의 신택스 엘리먼트를 통해, 제1 실행 모드에서 사용될 수 있는 제1 컴포넌트를 사용하여 코드를 실행하도록 구성될 수 있다. 장치(800)는 제2 실행 모듈(806)을 더 포함할 수 있으며, 제2 실행 모듈(806)은 실행 모드가 제2 실행 모드로 결정되면, 신택스 엘리먼트를 통해, 제2 실행 모드에서 사용될 수 있는 제2 컴포넌트를 사용하여 코드를 실행하도록 구성될 수 있다. 여기서, 제1 컴포넌트와 제2 컴포넌트는 동일한 컴포넌트 인터페이스를 가지며, 신택스 엘리먼트는 컴포넌트 인터페이스에 대응한다.
일부 실시예에서, 상기 컴포넌트 인터페이스는 제어 흐름 컴포넌트 인터페이스를 포함하고, 제어 흐름 인터페이스에 대응하는 신택스 엘리먼트가 장치에 의해 실행될 경우, 제1 실행 모듈(804)은, 나아가 제1 실행 모드에서 제1 컴포넌트 내의 제1 제어 흐름 컴포넌트를 사용하도록 구성되고, 제2 실행 모듈(806)은, 나아가 제2 실행 모드에서 제2 컴포넌트 내의 제2 제어 흐름 컴포넌트를 사용하도록 구성된다.
일부 실시예에서, 상기 컴포넌트 인터페이스는 네트워크 구축 컴포넌트 인터페이스를 포함하고, 네트워크 구축 컴포넌트에 대응하는 신택스 엘리먼트가 장치에 의해 실행될 경우, 제1 실행 모듈(804)은, 나아가 제1 실행 모드에서 제1 제어 흐름 컴포넌트를 통해 네트워크 구축 컴포넌트를 사용하도록 구성되고, 제2 실행 모듈(806)은, 나아가 제2 실행 모드에서 제2 제어 흐름 컴포넌트를 통해 네트워크 구축 컴포넌트를 사용하도록 구성된다.
일부 실시예에서, 상기 컴포넌트 인터페이스는 네트워크 실행 컴포넌트 인터페이스를 포함하고, 네트워크 실행 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 장치에 의해 실행될 경우, 제1 실행 모듈(804)은, 나아가 제1 실행 모드에서 제1 컴포넌트 내의 제1 네트워크 실행 컴포넌트를 사용하여 입력 데이터에 대해 처리하여 출력 데이터를 획득하도록 구성되고, 제2 실행 모듈(806)은, 나아가 제2 실행 모드에서 제2 컴포넌트 내의 제2 네트워크 실행 컴포넌트를 사용하여 입력 데이터에 대해 처리하여 출력 데이터를 획득하도록 구성된다.
일부 실시예에서, 상기 제2 실행 모듈(806)은 추가로, 제2 컴포넌트 내의 제2 네트워크 실행 컴포넌트가 장치에 의해 실행될 경우, 입력 데이터에 기반하여, 입력 데이터에 대한 제1 컴퓨팅 그래프를 결정하고, 및 제1 컴퓨팅 그래프에 기반하여, 입력 데이터에 대해 처리하여 출력 데이터를 획득하도록 구성된다.
일부 실시예에서, 상기 컴포넌트 인터페이스는 네트워크 최적화 컴포넌트 인터페이스를 포함하고, 네트워크 최적화 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 장치에 의해 실행될 경우, 제1 실행 모듈(804)은 추가로, 제1 실행 모드에서 제1 컴포넌트 내의 제1 네트워크 최적화 컴포넌트를 사용하여 네트워크 모델 파라미터에 대해 업데이트하도록 구성되고, 제2 실행 모듈(806)은 추가로, 제2 실행 모드에서 제2 컴포넌트 내의 제2 네트워크 최적화 컴포넌트를 사용하여 네트워크 모델 파라미터에 대해 업데이트하도록 구성된다.
일부 실시예에서, 상기 제2 실행 모듈(806)은 추가로, 제2 네트워크 최적화 컴포넌트가 장치에 의해 실행될 경우, 순전파에 대한 제2 컴퓨팅 그래프를 구축하여, 네트워크 모델 파라미터로 인한 손실을 결정하고, 역전파에 대한 제3 컴퓨팅 그래프를 구축하여, 상기 네트워크 모델 파라미터와 관련된 그레이디언트를 결정하며, 및 그레이디언트 업데이트에 대한 제4 컴퓨팅 그래프를 구축하여, 업데이트된 네트워크 모델 파라미터를 결정하도록 구성된다.
일부 실시예에서, 상기 컴포넌트 인터페이스는 학습율 조정 컴포넌트 인터페이스를 포함하고, 학습율 조정 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 장치에 의해 실행될 경우, 제1 실행 모듈(804)은 추가로, 제1 실행 모드에서 제1 컴포넌트 내의 제1학습율 조정 컴포넌트를 사용하여 학습율에 대해 조정하여 네트워크 모델 파라미터의 업데이트에 사용하도록 구성되고, 제2 실행 모듈(806)은 추가로, 제2 실행 모드에서 제2 컴포넌트 내의 제2학습율 조정 컴포넌트를 사용하여 학습율에 대해 조정하여 네트워크 모델 파라미터의 업데이트에 사용하도록 구성된다.
일부 실시예에서, 상기 제2 실행 모듈(806)은 추가로, 제2 학습율 조정 컴포넌트가 장치에 의해 실행될 경우, 학습율 노드를 포함하지만 학습율을 업데이트하기 위한 노드를 포함하지 않은 제5 컴퓨팅 그래프를 구축하고, 학습율의 업데이트 값을 수신하여 학습율 노드의 입력으로 하며, 및 제5 컴퓨팅 그래프 및 학습율의 업데이트 값에 기반하여 학습율을 조정하도록 구성된다.
일부 실시예에서, 상기 제1 실행 모듈(804)은 추가로, 신택스 엘리먼트와 연관된 입력 데이터에 기반하여, 제1 컴포넌트에 대응하는 제1 동작을 실행하여 출력 데이터를 결정하도록 구성된다.
일부 실시예에서, 상기 제2 실행 모듈(806)은 추가로, 제2 컴포넌트에 대응하는 제2 동작을 사용하여 복수의 컴퓨팅 동작에 대응하는 복수의 네트워크 노드를 포함하는 컴퓨팅 그래프를 결정하고, 신택스 엘리먼트와 연관된 입력 데이터에 기반하여, 실행 컴포넌트에 의해 컴퓨팅 그래프를 사용하여 출력 데이터를 결정하도록 구성된다.
일부 실시예에서, 제1 실행 모드는 동적 그래프 모드를 포함하고, 제2 실행 모드는 정적 그래프 모드를 포함한다.
본 개시의 실시예에 따르면, 본 개시는 전자 기기, 판독 가능 저장 매체 및 컴퓨터 프로그램 제품을 더 개시한다.
도 9에 도시된 바와 같이, 본 개시의 실시예에 따른 딥 러닝의 네트워크 모델을 구현하기 위한 전자 기기(900)의 블록도이다. 전자 기기는 예를 들어, 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크스테이션, 개인 디지털 비서(Personal Digital Assistants, PDA), 서버, 블레이드 서버, 메인 프레임 컴퓨터, 및 기타 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 의미한다. 전자 기기는 예를 들어, 개인 디지털 비서, 셀룰러 폰, 스마트 폰, 웨어러블 기기, 및 기타 유사한 컴퓨팅 기기와 같은 다양한 형태의 모바일 기기를 포함할 수 있다. 본 명세서에 기재된 부품, 이들의 연결 및 관계, 그리고 이들의 기능은 단지 예시적인 것에 불과하며, 본 명세서에서 설명 및/또는 요구하는 본 개시의 범위를 한정하기 위한 것이 아니다.
도 9에 도시된 바와 같이, 상기 전자 기기는, 하나 또는 복수의 프로세서(901), 메모리(902), 및 각 부품을 연결하기 위한 인터페이스를 포함하고, 상기 인터페이스에는 고속 인터페이스 및 저속 인터페이스가 포함된다. 각 부품들은 서로 다른 버스를 통해 서로 연결되고, 공공 메인보드에 장착되거나 또는 수요에 따라 기타 방식으로 장착될 수 있다. 프로세서는 전자 기기에서 실행되는 명령어를 실행할 수 있고, 상기 명령어는 메모리에 저장되어 외부 입력/출력 장치(예를 들어, 인터페이스에 접속된 표시 장치)에 GUI의 그래픽 정보를 표시하기 위한 명령어를 포함할 수 있다. 다른 실시예에서는, 수요에 따라 복수의 프로세서 및/또는 복수의 버스 및 복수의 메모리를 복수의 메모리와 함께 사용될 수 있다. 마찬가지로, 복수의 전자 기기를 연결하고, 각 전자 기기에 의해 일부 필요한 동작을 제공할 수 있다(예를 들어, 서버 어레이, 한 세트의 블레이드 서버, 또는 멀티 프로세서 시스템로 함). 도 9에서는, 하나의 프로세서(901)의 경우를 예로 한다.
메모리(902)는 본 개시에 의해 제공되는 비휘발성 컴퓨터 판독 가능 저장 매체이다. 여기서, 상기 메모리에는 적어도 하나의 프로세서에 의해 실행될 수있는 명령어가 저장되어 있어, 상기 적어도 하나의 프로세서로 하여금, 본 개시에 의해 제공되는 딥 러닝의 네트워크 모델을 구축하기 위한 방법을 실행하게 한다. 본 개시의 비휘발성 컴퓨터 판독 가능 저장 매체에는 컴퓨터로 하여금 본 개시에 의해 제공되는 딥 러닝의 네트워크 모델을 구축하기 위한 방법을 실행하도록 하는 컴퓨터 명령어가 저장되어 있다.
메모리(902)는 비휘발성 컴퓨터 판독 가능 저장 매체로서, 예를 들어, 본 개시의 실시예에 따른 딥 러닝의 네트워크 모델을 구축하기 위한 방법 에 대응하는 프로그램 명령어/모듈과 같은 비휘발성 소프트웨어 프로그램, 비휘발성 컴퓨터 실행 가능 프로그램 및 모듈(예를 들어, 도 8에 도시된 실행 모드 결정 모듈(802), 제1 실행 모듈(804), 제2 실행 모듈(806))을 저장할 수 있다. 프로세서(901)는 메모리(902)에 저장된 비휘발성 소프트웨어 프로그램, 명령어 및 모듈을 실행함으로써, 서버의 다양한 기능 및 데이터 처리를 실행한다. 즉, 상기 방법 실시예에 따른 딥 러닝의 네트워크 모델을 구축하기 위한 방법을 구현한다.
메모리(902)는 프로그램 저장 영역 및 데이터 저장 영역을 포함할 수 있다. 여기서, 프로그램 저장 영역은 OS 시스템 및 적어도 하나의 기능에 필요한 앱을 저장할 수있고, 데이터 저장 영역은 딥 러닝의 네트워크 모델을 구축하기 위한 전자 기기의 사용에 따라 생성된 데이터 등을 저장할 수 있다. 또한, 메모리(902)는 고속 RAM(Random Access Memory)를 포함할 수도 있고, 예를 들어, 적어도 하나의 디스크 저장 디바이스, 플래시 메모리 디바이스, 또는 기타 비휘발성 고체 저장 디바이스와 같은 비휘발성 메모리를 포함할 수도 있다. 일부 실시예에 따르면, 메모리(902)는 선택적으로 프로세서(901)에 대해 원격으로 설치된 메모리를 포함할 수 있고, 이러한 원격 메모리는 네트워크를 통해 딥 러닝 네트원크 모델을 구축하기 위한 전자 기기에 연결될 수 있다. 상기 네트워크의 실예로는 인터넷, 인트라넷, 근거리 통신망(LAN), 이동 통신망 및 이들의 조합을 포함할 수 있는데, 이에 한정되지는 않는다.
딥 러닝의 네트워크 모델을 구축하기 위한 방법의 전자 기기는, 입력 장치(903) 및 출력 장치(904)를 더 포함할 수 있다. 프로세서(901), 메모리(902), 입력 장치(903) 및 출력 장치(904)는 버스 또는 기타 방식으로 연결될 수 있는데, 도 9에서는 버스를 통해 연결되는 경우를 예로 한다.
입력 장치(903)는 입력된 숫자 또는 문자 부호 정보를 수신할 수 있고, 또한 딥 러닝의 네트워크 모델을 구축하는 전자 기기에 대한 사용자 설정 및 기능 제어와 연관된 키 신호 입력을 생성할 수 있으며, 예를 들어, 터치 스크린, 키 패드, 마우스, 트랙패드, 터치패드, 인디케이터 로드, 하나 또는 복수의 마우스버튼, 트랙 볼, 콘트로럴 로드 등과 같은 입력 장치를 포함할 수 있다. 출력 장치(904)는 표시 장치, 보조 조명장치(예를 들어, LED) 및 촉각 피드백 장치(예를 들어, 진동모터) 등을 포함할 수 있다. 상기 표시 장치는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이 및 플라스마 디스플레이를 포함할 수 있는데, 이에 한정되지는 않는다. 일부 실시 형태에 따르면, 표시 장치는 터치스크린일 수 있다.
여기서 설명한 시스템 및 기술의 다양한 실시 형태는 디지털 전자회로 시스템, 집적회로 시스템, 전용 ASIC(전용 집적회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합에서 구현될 수 있다. 이러한 다양한 실시 형태는 하나 또는 복수의 컴퓨터 프로그램에서 구현되는 것을 포함할 수 있고, 상기 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그램 가능 프로세서를 포함하는 프로그램 가능 시스템에서 실행 및/또는 해석될 수 있으며, 상기 프로그램 가능 프로세서는 전용 또는 범용 프로그램가능 프로세서일 수 있고, 저장 시스템, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치로부터 데이터 및 명령어를 수신하고, 데이터 및 명령어를 저장 시스템, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치로 송신할 수 있다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이선, 또는 코드라고도 함)은 프로그램 가능 프로세서의 기계 명령어를 포함하고, 하이라벨 프로세스 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블러/기계 언어를 사용하여 이러한 컴퓨터 프로그램을 실시할 수 있다. 본 명세서에서 사용되는 "기계 판독 가능 매체” 및 "컴퓨터 판독 가능 매체”등과 같은 용어는, 기계 명령어 및/또는 데이터를 프로그램 가능 프로세서의 임의의 컴퓨터 프로그램 제품, 장비, 및/또는 장치(예를 들어, 디스크, CD-ROM, 메모리, 프로그램 가능 논리 장치(PLD))에 제공하기 위한 것이고, 기계 판독 가능 신호로서의 기계 명령어를 수신하는 기계 판독 가능 매체를 포함한다. "기계 판독 가능 신호”라는 용어는 기계 언어 명령어 및/또는 데이터를 프로그램 가능 프로세서에 제공하기 위한 임의의 신호를 의미한다.
사용자와의 인터랙션을 제공하기 위해서는, 컴퓨터를 통해 본 명세서에서 설명한 시스템 및 기술을 구현할 수 있는데, 상기 컴퓨터는, 사용자에게 정보를 표시하기 위한 표시 장치(예를 들어, CRT(음극 선관) 또는 LCD(액정 디스플레이) 모니터), 및 사용자가 상기 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 포함한다. 기타 유형의 디바이스도 사용자와의 인터랙션을 제공할 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 센싱 피드백(예를 들어, 시각 피드백, 청각 피드백, 또는 촉각 피드백)일 수 있고, 임의의 형태(소리 입력, 음성 입력, 또는 촉각 입력을 포함)로 사용자로부터의 입력을 수신할 수 있다.
본 명세서에서 설명한 시스템 및 기술은, 백그라운드 부품을 포함하는 컴퓨팅 시스템(예를 들어, 데이터 서버), 또는 미들웨어 부품을 포함하는 컴퓨팅 시스템(예를 들어, 앱 서버), 또는 프론트 앤드 부품을 포함하는 컴퓨팅 시스템(예를 들어, GUI 또는 웹 브라우저를 갖는 사용자 컴퓨터이며, 사용자는 상기 GUI 또는 상기 웹브라우저를 통하여 본 명세서에서 설명한 상기 시스템 및 기술의 실시 형태와 인터랙션을 할 수 있음), 또는 이러한 백그라운드 부품, 미들웨어 부품, 또는 프론트앤드 부품의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 부품은 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)을 통해 서로 연결될 수 있다. 통신 네트워크는 예를 들어 근거리 통신망(LAN), 광역 통신망(WAN) 및 인터넷을 포함할 수 있다.
컴퓨터 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있고, 통상적으로 통신 네트워크를 통해 인터랙션을 진행한다. 클라이언트와 서버의 관계는 대응하는 컴퓨터에서 실행되고 서로 클라이언트-서버의 관계를 갖는 컴퓨터 프로그램에 의해 생성된다.
두 가지 실행 모드(예를 들어, 동정적 그래프)의 인터페이스를 통일화시키는 구현 방식을 통해, 개발자는 한 세트의 코드만 작성하면 두 가지 실행 모드에서 실행될 수 있다. 컴퓨팅 기기는 상기 한 세트의 코드를 사용하여, 동적 그래프 모드 및 정적 그래프 모드에서 각각 실행할 수 있다. 이러한 방식으로, 동적 그래프의 디버깅하기 쉬운 장점이 유지될 수 있고, 정적 그패프의 전반적 최적화 및 예측 배치에 대한 편리성 장점도 유지될 수 있으며, 동시에, 코드를 재 작성하거나 코드를 동정적 전환하는 것을 피할 수도 있다.
상기에서 설명한 다양한 흐름을 사용하여 단계를 다시 순서 배열, 추가 또는 삭제할 수 있다는 점을 이해하여야 한다. 예를 들어, 본 개시에 의해 개시된 기술방안이 원하는 결과를 구현할 수 있는 한, 본 개시에 기재된 다양한 단계는 병렬적으로 또는 순차적으로, 또는 서로 다른 순서로 실행될 수 있고, 본 개시는 이에 대해 특별히 한정하지 않는다.
본 개시의 보호 범위는 상기 다양한 실시 형태에 의해 제한되지 않는다. 당업자라면, 설계 요구 및 기타 요인에 의해, 다양한 수정, 조합, 서브 조합 및 교체가 이루어질 수 있음을 이해할 것이다. 본 개시의 취지 및 원칙내에서 이루어진 임의의 수정, 등가 교체 및 개선 등은 모두 본 개시의 보호 범위에 속한다.

Claims (27)

  1. 모드 파라미터에 기반하여, 코드를 실행하기 위한 실행 모드를 결정하는 것, 및
    상기 실행 모드가 제1 실행 모드로 결정되면, 상기 코드 내의 신택스 엘리먼트를 통해, 상기 제1 실행 모드에서 사용될 수 있는 제1 컴포넌트를 사용하여 상기 코드를 실행하는 것,
    상기 실행 모드가 제2 실행 모드로 결정되면, 상기 신택스 엘리먼트를 통해, 상기 제2 실행 모드에서 사용될 수 있는 제2 컴포넌트를 사용하여 상기 코드를 실행하는 것을 포함하고,
    여기서, 상기 제1 컴포넌트와 상기 제2 컴포넌트는 동일한 컴포넌트 인터페이스를 가지며, 상기 신택스 엘리먼트는 상기 컴포넌트 인터페이스에 대응하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  2. 제1항에 있어서,
    상기 컴포넌트 인터페이스는 제어 흐름 컴포넌트 인터페이스를 포함하고,
    상기 방법은 또한,상기 제어 흐름 인터페이스에 대응하는 신택스 엘리먼트가 실행될 경우,
    상기 제1 실행 모드에서, 상기 제1 컴포넌트 내의 제1 제어 흐름 컴포넌트를 사용하고, 및
    상기 제2 실행 모드에서, 상기 제2 컴포넌트 내의 제2 제어 흐름 컴포넌트를 사용하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  3. 제2항에 있어서,
    상기 컴포넌트 인터페이스는 네트워크 구축 컴포넌트 인터페이스를 포함하고,
    상기 방법은 또한, 상기 네트워크 구축 컴포넌트에 대응하는 신택스 엘리먼트가 실행될 경우,
    상기 제1 실행 모드에서, 상기 제1 제어 흐름 컴포넌트에 의해 네트워크 구축 컴포넌트를 사용하는 것, 및
    상기 제2 실행 모드에서, 상기 제2 제어 흐름 컴포넌트에 의해 상기 네트워크 구축 컴포넌트를 사용하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  4. 제1항에 있어서,
    상기 컴포넌트 인터페이스는 네트워크 실행 컴포넌트 인터페이스를 포함하고,
    상기 방법은 또한, 상기 네트워크 실행 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 실행될 경우,
    상기 제1 실행 모드에서, 상기 제1 컴포넌트 내의 제1 네트워크 실행 컴포넌트를 사용하여 입력 데이터에 대해 처리하여 출력 데이터를 획득하는 것, 및
    상기 제2 실행 모드에서, 상기 제2 컴포넌트 내의 제2 네트워크 실행 컴포넌트를 사용하여 입력 데이터에 대해 처리하여 출력 데이터를 획득하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  5. 제4항에 있어서,
    또한, 상기 제2 컴포넌트 내의 제2 네트워크 실행 컴포넌트가 실행될 경우,
    상기 입력 데이터에 기반하여, 상기 입력 데이터에 대한 제1 컴퓨팅 그래프를 결정하는 것, 및
    상기 제1 컴퓨팅 그래프에 기반하여, 상기 입력 데이터에 대해 처리하여 상기 출력 데이터를 획득하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  6. 제1항에 있어서,
    상기 컴포넌트 인터페이스는 네트워크 최적화 컴포넌트 인터페이스를 포함하고,
    상기 방법은 또한, 상기 네트워크 최적화 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 실행될 경우,
    상기 제1 실행 모드에서, 상기 제1 컴포넌트 내의 제1 네트워크 최적화 컴포넌트를 사용하여 네트워크 모델 파라미터에 대해 업데이트하는 것, 및
    상기 제2 실행 모드에서, 상기 제2 컴포넌트 내의 제2 네트워크 최적화 컴포넌트를 사용하여 네트워크 모델 파라미터에 대해 업데이트하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  7. 제6항에 있어서,
    또한, 상기 제2 네트워크 최적화 컴포넌트가 실행될 경우,
    순전파에 대한 제2 컴퓨팅 그래프를 구축하여, 상기 네트워크 모델 파라미터로 인한 손실을 결정하는 것,
    역전파에 대한 제3 컴퓨팅 그래프를 구축하여, 상기 네트워크 모델 파라미터와 관련된 그레이디언트를 결정하는 것, 및
    네트워크 모델 파라미터 업데이트에 대한 제4 컴퓨팅 그래프를 구축하여, 업데이트된 상기 네트워크 모델 파라미터를 결정하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  8. 제1항에 있어서,
    상기 컴포넌트 인터페이스는 학습율 조정 컴포넌트 인터페이스를 포함하고,
    상기 방법은 또한, 상기 학습율 조정 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 실행될 경우,
    상기 제1 실행 모드에서, 상기 제1 컴포넌트 내의 제1 학습율 조정 컴포넌트를 사용하여 학습율에 대해 조정하여 네트워크 모델 파라미터의 업데이트에 사용하는 것, 및
    상기 제2 실행 모드에서, 상기 제2 컴포넌트 내의 제2 학습율 조정 컴포넌트를 사용하여 학습율에 대해 조정하여 네트워크 모델 파라미터의 업데이트에 사용하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  9. 제8항에 있어서,
    또한, 상기 제2 학습율 조정 컴포넌트가 실행될 경우,
    학습율 노드를 포함하지만 상기 학습율을 업데이트하기 위한 노드를 포함하지 않은 제5 컴퓨팅 그래프를 구축하는 것,
    상기 학습율의 업데이트 값을 수신하여 상기 학습율 노드에 대한 입력으로 하는 것, 및
    상기 제5 컴퓨팅 그래프 및 상기 학습율의 업데이트 값에 기반하여, 상기 학습율에 대해 조정하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  10. 제1항에 있어서,
    상기 제1 컴포넌트를 사용하여 상기 코드를 실행하는 것은,
    상기 신택스 엘리먼트와 연관된 입력 데이터에 기반하여, 상기 제1 컴포넌트에 대응하는 제1 동작을 실행하여 출력 데이터를 결정하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  11. 제1항에 있어서,
    상기 제2 컴포넌트를 사용하여 상기 코드를 실행하는 것은,
    상기 제2 컴포넌트에 대응하는 제2 동작을 사용하여, 복수의 컴퓨팅 동작에 대응하는 복수의 네트워크 노드를 포함하는 컴퓨팅 그래프를 결정하는 것, 및
    상기 신택스 엘리먼트와 연관된 입력 데이터에 기반하여, 실행 컴포넌트에 의해 상기 컴퓨팅 그래프를 사용하여 출력 데이터를 결정하는 것을 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 실행 모드는 동적 그래프 모드를 포함하고,
    상기 제2 실행 모드는 정적 그래프 모드를 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 방법.
  13. 모드 파라미터에 기반하여, 코드를 실행하기 위한 실행 모드를 결정하도록 구성되는 실행 모드 결정 모듈,
    상기 실행 모드가 제1 실행 모드로 결정되면, 상기 코드 내의 신택스 엘리먼트를 통해, 상기 제1 실행 모드에서 사용될 수 있는 제1 컴포넌트를 사용하여 상기 코드를 실행하도록 구성되는 제1 실행 모듈, 및
    상기 실행 모드가 제2 실행 모드로 결정되면, 상기 신택스 엘리먼트를 통해, 상기 제2 실행 모드에서 사용될 수 있는 제2 컴포넌트를 사용하여 상기 코드를 실행하도록 구성되는 제2 실행 모듈,
    여기서, 상기 제1 컴포넌트와 상기 제2 컴포넌트는 동일한 컴포넌트 인터페이스를 가지며, 상기 신택스 엘리먼트는 상기 컴포넌트 인터페이스에 대응하는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  14. 제13항에 있어서,
    상기 컴포넌트 인터페이스는 제어 흐름 컴포넌트 인터페이스를 포함하고, 상기 제어 흐름 인터페이스에 대응하는 신택스 엘리먼트가 상기 장치에 의해 실행될 경우,
    상기 제1 실행 모듈은 나아가, 상기 제1 실행 모드에서, 상기 제1 컴포넌트 내의 제1 제어 흐름 컴포넌트를 사용하도록 구성되고,
    상기 제2 실행 모듈은 나아가, 상기 제2 실행 모드에서, 상기 제2 컴포넌트 내의 제2 제어 흐름 컴포넌트를 사용하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  15. 제14항에 있어서,
    상기 컴포넌트 인터페이스는 네트워크 구축 컴포넌트 인터페이스를 포함하고, 상기 네트워크 구축 컴포넌트에 대응하는 신택스 엘리먼트가 상기 장치에 의해 실행될 경우,
    상기 제1 실행 모듈은 나아가, 상기 제1 실행 모드에서, 상기 제1 제어 흐름 컴포넌트에 의해 네트워크 구축 컴포넌트를 사용하도록 구성되고,
    상기 제2 실행 모듈은 나아가, 상기 제2 실행 모드에서, 상기 제2 제어 흐름 컴포넌트에 의해 상기 네트워크 구축 컴포넌트를 사용하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  16. 제13항에 있어서,
    상기 컴포넌트 인터페이스는 네트워크 실행 컴포넌트 인터페이스를 포함하고, 상기 네트워크 실행 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 상기 장치에 의해 실행될 경우,
    상기 제1 실행 모듈은 나아가, 상기 제1 실행 모드에서, 상기 제1 컴포넌트 내의 제1 네트워크 실행 컴포넌트를 사용하여 입력 데이터에 대해 처리하여 출력 데이터를 획득하도록 구성되고, 또한,
    상기 제2 실행 모듈은 나아가, 상기 제2 실행 모드에서, 상기 제2 컴포넌트 내의 제2 네트워크 실행 컴포넌트를 사용하여 입력 데이터에 대해 처리하여 출력 데이터를 획득하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  17. 제16항에 있어서,
    상기 제2 실행 모듈은 나아가, 상기 제2 컴포넌트 내의 제2 네트워크 실행 컴포넌트가 상기 장치에 의해 실핼될 경우,
    상기 입력 데이터에 기반하여, 상기 입력 데이터에 대한 제1 컴퓨팅 그래프를 결정하고,
    상기 제1 컴퓨팅 그래프에 기반하여, 상기 입력 데이터에 대해 처리하여 상기 출력 데이터를 획득하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  18. 제13항에 있어서,
    상기 컴포넌트 인터페이스는 네트워크 최적화 컴포넌트 인터페이스를 포함하고, 상기 네트워크 최적화 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 상기 장치에 의해 실행될 경우,
    상기 제1 실행 모듈은 나아가, 상기 제1 실행 모드에서, 상기 제1 컴포넌트 내의 제1 네트워크 최적화 컴포넌트를 사용하여 네트워크 모델 파라미터에 대해 업데이트하도록 구성되고,
    상기 제2 실행 모듈은 나아가, 상기 제2 실행 모드에서, 상기 제2 컴포넌트 내의 제2 네트워크 최적화 컴포넌트를 사용하여 네트워크 모델 파라미터에 대해 업데이트하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  19. 제18항에 있어서,
    상기 제2 실행 모듈은 나아가, 상기 제2 네트워크 최적화 컴포넌트가 상기 장치에 의해 실핼될 경우,
    순전파에 대한 제2 컴퓨팅 그래프를 구축하여, 상기 네트워크 모델 파라미터로 인한 손실을 결정하고,
    역전파에 대한 제3 컴퓨팅 그래프를 구축하여, 상기 네트워크 모델 파라미터와 관련된 그레이디언트를 결정하며,
    네트워크 모델 파라미터 업데이트에 대한 제4 컴퓨팅 그래프를 구축하여, 업데이트된 상기 네트워크 모델 파라미터를 결정하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  20. 제13항에 있어서,
    상기 컴포넌트 인터페이스는 학습율 조정 컴포넌트 인터페이스를 포함하고, 상기 학습율 조정 컴포넌트 인터페이스에 대응하는 신택스 엘리먼트가 상기 장치에 의해 실행될 경우,
    상기 제1 실행 모듈은 나아가, 상기 제1 실행 모드에서, 상기 제1 컴포넌트 내의 제1 학습율 조정 컴포넌트를 사용하여 학습율에 대해 조정하여 네트워크 모델 파라미터의 업데이트에 사용하도록 구성되고,
    상기 제2 실행 모듈은 나아가, 상기 제2 실행 모드에서, 상기 제2 컴포넌트 내의 제2 학습율 조정 컴포넌트를 사용하여 학습율에 대해 조정하여 네트워크 모델 파라미터의 업데이트에 사용하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  21. 제20항에 있어서,
    상기 제2 실행 모듈은 나아가, 상기 제2 학습율 조정 컴포넌트가 상기 장치에 의해 실핼될 경우,
    학습율 노드를 포함하지만 상기 학습율을 업데이트하기 위한 노드를 포함하지 않은 제5 컴퓨팅 그래프를 구축하고,
    상기 학습율의 업데이트 값을 수신하여 상기 학습율 노드에 대한 입력으로 하고,
    상기 제5 컴퓨팅 그래프 및 상기 학습율의 업데이트 값에 기반하여, 상기 학습율에 대해 조정하도로 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  22. 제13항에 있어서,
    상기 제1 실행 모듈은 나아가,
    상기 신택스 엘리먼트와 연관된 입력 데이터에 기반하여, 상기 제1 컴포넌트에 대응하는 제1 동작을 실행하여 출력 데이터를 결정하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  23. 제13항에 있어서,
    상기 제2 실행 모듈은 나아가,
    상기 제2 컴포넌트에 대응하는 제2 동작을 사용하여, 복수의 컴퓨팅 동작에 대응하는 복수의 네트워크 노드를 포함하는 컴퓨팅 그래프를 결정하고,
    상기 신택스 엘리먼트와 연관된 입력 데이터에 기반하여, 실행 컴포넌트에 의해 상기 컴퓨팅 그래프를 사용하여 출력 데이터를 결정하도록 구성되는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  24. 제13항 내지 제23항 중 어느한 항에 있어서,
    상기 제1 실행 모드는 동적 그래프 모드를 포함하고,
    상기 제2 실행 모드는 정적 그래프 모드를 포함하는
    딥 러닝의 네트워크 모델을 구축하기 위한 장치.
  25. 적어도 하나의 프로세서, 및
    상기 적어도 하나의 프로세서와 통신 연결되는 메모리를 포함하는 전자 기기에 있어서,
    상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령어가 저장되어 있고, 상기 명령어가 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제11항 중 어느한 항의 방법을 실행하게 하는
    전자 기기.
  26. 컴퓨터 명령어가 저장되어 있는 비휘발성 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 컴퓨터 명령어가 프로세서로 하여금 제1항 내지 제11항 중 어느 한 항의 방법을 구현하게 하기 위한 것인
    비휘발성 컴퓨터 판독 가능 저장 매체.
  27. 컴퓨터 프로그램 명령어가 포함되어 있는 컴퓨터 프로그램 제품에 있어서,
    상기 컴퓨터 프로그램 명령어가 프로세서에 의해 실행될 경우 제1항 내지 제11항 중 어느 한 항의 방법을 구현하게 하는
    컴퓨터 프로그램 제품.
KR1020210124464A 2020-11-10 2021-09-17 딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램 제품 KR20210120938A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011249391.2 2020-11-10
CN202011249391.2A CN112270403B (zh) 2020-11-10 2020-11-10 构建深度学习的网络模型的方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
KR20210120938A true KR20210120938A (ko) 2021-10-07

Family

ID=74340631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210124464A KR20210120938A (ko) 2020-11-10 2021-09-17 딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램 제품

Country Status (5)

Country Link
US (1) US20220058490A1 (ko)
EP (1) EP3995950B1 (ko)
JP (1) JP7223817B2 (ko)
KR (1) KR20210120938A (ko)
CN (1) CN112270403B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157183B (zh) * 2021-04-15 2022-12-16 成都新希望金融信息有限公司 深度学习模型构建方法、装置、电子设备及存储介质
WO2023125858A1 (zh) * 2021-12-30 2023-07-06 本源量子计算科技(合肥)股份有限公司 一种数据处理方法、机器学习框架系统及相关设备
CN115809688B (zh) * 2022-08-24 2023-10-24 北京百度网讯科技有限公司 一种模型调试方法、装置、电子设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508645B (zh) * 2011-09-23 2016-02-10 武汉大学 一种面向行为的软件需求模型可视化方法
US20140351182A1 (en) 2013-05-24 2014-11-27 Qualcomm Incorporated Modifying Learning Capabilities of Learning Devices
JP2016029547A (ja) 2014-07-25 2016-03-03 株式会社デンソー 実行モジュール生成装置、及び電子制御装置
US20160358099A1 (en) 2015-06-04 2016-12-08 The Boeing Company Advanced analytical infrastructure for machine learning
JP2018173672A (ja) 2015-09-03 2018-11-08 株式会社Preferred Networks 実装装置
CN107423817B (zh) * 2017-04-17 2020-09-01 星环信息科技(上海)有限公司 一种深度学习实现的方法及设备
CN107578453B (zh) * 2017-10-18 2019-11-01 北京旷视科技有限公司 压缩图像处理方法、装置、电子设备及计算机可读介质
EP3502975A1 (en) 2017-12-20 2019-06-26 Fujitsu Limited Methods and apparatus for model parallelism in artificial neural networks
CN108829441B (zh) * 2018-05-14 2022-10-18 中山大学 一种分布式深度学习的参数更新优化系统
US20190354851A1 (en) * 2018-05-17 2019-11-21 International Business Machines Corporation Construction of a machine learning model for structured inputs
CN110569090A (zh) * 2018-06-05 2019-12-13 中移(苏州)软件技术有限公司 一种数据处理方法、装置、电子设备及存储介质
US11496493B2 (en) * 2018-09-19 2022-11-08 Nec Corporation Dynamic transaction graph analysis
US20190317844A1 (en) * 2019-06-26 2019-10-17 Intel Corporation Methods, systems, articles of manufacture and apparatus to select code data structure types
CN111144564A (zh) * 2019-12-25 2020-05-12 上海寒武纪信息科技有限公司 对神经网络执行训练的设备及其集成电路板卡

Also Published As

Publication number Publication date
CN112270403B (zh) 2022-03-29
CN112270403A (zh) 2021-01-26
EP3995950B1 (en) 2024-05-15
JP2022000768A (ja) 2022-01-04
US20220058490A1 (en) 2022-02-24
EP3995950A1 (en) 2022-05-11
JP7223817B2 (ja) 2023-02-16

Similar Documents

Publication Publication Date Title
KR20210120938A (ko) 딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램 제품
KR102484617B1 (ko) 이종 그래프 노드를 표현하는 모델 생성 방법, 장치, 전자 기기, 저장 매체 및 프로그램
CN111832736B (zh) 用于处理机器学习模型的方法、设备和计算机可读存储介质
KR102396936B1 (ko) 문답 독해 모델 취득 방법, 장치, 전자 기기 및 저장 매체
US10235140B2 (en) Defining attributes of variables in a state chart of a technical computing environment
US9740459B2 (en) Automated generation of bridging code to augment a legacy application using an object-oriented language
KR20220001008A (ko) 분산 훈련 방법, 시스템, 기기, 저장 매체 및 프로그램
KR20210114853A (ko) 모델 파라미터를 업데이트하는 방법 및 장치
JP7350923B2 (ja) ディープラーニングフレームワークのオペレータ登録方法、装置、デバイス及び記憶媒体
US11182276B2 (en) Development-time awareness of a production dependency injection environment
JP2024054244A (ja) 状態管理永続性
US10740537B2 (en) Enterprise form dependency visualization and management
CN112734040A (zh) 一种嵌入式人工智能计算框架及应用方法
US20220101194A1 (en) Method, electronic device, and computer program product for processing machine learning model
US20200110592A1 (en) Auto-deployment of applications
US9003360B1 (en) Configuring attributes using configuration subgraphs
US11853752B2 (en) Migration of web applications between different web application frameworks
JP7105297B2 (ja) ニューラルネットワークモデルの処理方法及び装置
US9142184B1 (en) Speed function module and numerical minimization module for an active contour model
WO2023125857A1 (zh) 基于机器学习框架系统的模型训练方法及相关设备
CN115964042A (zh) 菜单的生成方法及装置、存储介质、电子设备
US11281477B2 (en) Assigning computing resources to execution of evaluators for image animation
KR20200022254A (ko) 자기 정의 명세서 기반 os 설정 장치 및 방법
CN116483482B (zh) 深度学习任务处理方法、系统、装置、设备及介质
US11928409B2 (en) Dynamic abstract generation and synthesis flow with area prediction