순환 신경망에서 유연하게 작업 하기
Wolfram 언어는 성능을 저하시키지 않으면서 다른 길이의 입력 배치를 매끄럽게 처리할 수 있는 고레벨 순환층을 제공합니다. 또한 NetStateObject, NetFoldOperator 등의 도구에 의해 순환 평가나 사용자 지정의 고레벨 순환층 정의에 쉽게 접근할 수 있습니다.
먼저 간단한 순환층의 생성 및 사용 방법을 보여줍니다. 2 성분의 벡터 가변 길이 수열에 작용하는 순환 계층을 정의합니다.
가변 길이 수열의 배치에서 층 평가합니다.
문자의 가변 길이 열을 가지고 각각의 열에 숫자를 생성하는 네트워크를 정의합니다.
가변 길이 문자열의 배치로 층을 평가합니다.
NetChain 또는 NetGraph에서 정의된 순환층, 순환넷은 기본적으로 상태가 없습니다. 이러한 초기 내부 상태는 영 벡터이며, 평가 때마다 재설정되므로 같은 입력으로 반복 평가하면 같은 결과가 나옵니다.
네트워크의 순환층은 NetStateObject에서 상태가 있는 객체로 만들 수 있습니다. NetStateObject는 평가 후 자신의 상태를 유지하므로 같은 입력을 반복하여 평가해도 일반적으로 다른 결과가 나옵니다. 이렇게 해서 순환층의 내부 상태를 유지하며 텍스트를 효율적으로 생성합니다.
NetFoldOperator를 사용하여 기존의 NetGraph에서 사용자의 순환층을 생성하는 방법을 설명합니다. 곱셈형 LSTM의 핵심 단위를 정의합니다.
전체 Wolfram 언어 입력 표시하기
곱셈형 LSTM을 생성합니다.
길이 64벡터의 가변 길이 수열의 배치에서 층을 평가합니다.