신경망을 생성하려면 이 단계별 예제를 사용합니다. 합계.ipynb, 예상 출력은 단순히 입력의 합계이고 숨겨진 레이어를 하나만 사용합니다. 이 간단한 작업은 여러 가지 방법으로 완료할 수 있지만 다음을 훈련하는 것은 쉽습니다. Moku 뉴럴 네트워크 간단한 대수에서 복잡한 추론까지 거의 모든 기능을 구현합니다. 다른 예 찾기 여기에서 확인하세요. 그리고 신경망 가이드를 다운로드하세요 여기에서 확인하세요..

일반 전제 조건

Moku 신경망을 사용하려면 다음이 필요합니다.

  • A Moku:Pro 장치(Moku:Lab 및 Moku:Go는 현재 지원되지 않음)
  • 모쿠 버전 3.3Windows 또는 macOS에서 다운로드 가능
  • Python 설치(v3.11); Moku Python을 참조하세요. 설치 설명서 자세한 내용은 다음을 참조하세요. 또한 다음과 같은 내비게이터를 설치할 수도 있습니다. 아나콘다. Python 설치는 v3.11 이상이어야 합니다. 어떤 버전을 사용 중인지 확실하지 않으면 명령 프롬프트나 터미널에서 Python –version 또는 python3 –version으로 Python 버전을 확인하세요.

파이썬 필수 조건

컴퓨터에 Python을 설치한 후, 다음 명령을 실행하여 컴퓨터의 명령줄이나 터미널 창에 Moku Neural Network API를 설치하세요. 이렇게 하면 API가 설치되고 필요한 모든 종속성이 적용됩니다.

pip install 'moku[neuralnetwork]'

이렇게 하면 다음이 설치됩니다. 

  • Moku 신경망 API
  • 넘파이 1.26.4
  • 아이피커널 6.29.5
  • 맷플롯립 3.9.2
  • 티엠디엠 4.66.5
  • 텐서플로우 2.16.2
  • SciPy(이 예제에는 필요하지만 일반적으로는 필요하지 않음) 

Python을 정기적으로 사용한다면 이러한 패키지 대부분이 이미 설치되어 있을 가능성이 높습니다. 확인하려면 명령 프롬프트나 터미널을 열고 다음을 입력합니다. pip 설치 X어디로 X 는 설치하려는 패키지의 이름입니다. 패키지가 이미 설치되어 있는 경우 명령은 다음과 같은 메시지를 반환합니다. 

(base) jessicapatterson@Jessicas-MacBook-Pro ~ % pip install numpy
Requirement already satisfied: numpy in /opt/anaconda3/lib/python3.12/site-packages (1.26.4)


tensorflow 설치 절차는 GPU를 계산에 사용할지 여부에 따라 달라질 수 있습니다. 설치 방법에 대한 정확한 지침은 다음을 참조하세요. Tensorflow의 문서, 특히 GPU를 사용할 예정이라면. 지금은 pip install tensorflow를 사용하여 설치되었는지 확인하기만 하면 됩니다.

(base) jessicapatterson@Jessicas-MacBook-Pro ~ % pip install tensorflow

설치가 완료되면 Tensorflow를 호출하고 다음 명령을 사용하여 텐서를 생성해 보세요.

(base) jessicapatterson@Jessicas-MacBook-Pro ~ % python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

이 명령이 오류 없이 실행되면 설치가 완료되고 다음 단계로 넘어갈 수 있습니다. "TensorFlow 라이브러리가 AVX 명령어를 사용하도록 컴파일되었지만, 이 명령어는 컴퓨터에서 사용할 수 없습니다."라는 오류가 반환되면 불행히도 컴퓨터에서 Tensorflow를 실행할 수 없습니다. 이 문제에 대한 해결책은 해당 설명서를 참조하세요.

(base) jessicapatterson@Jessicas-MacBook-Pro ~ % python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
tf.Tensor(258.68292, shape=(), dtype=float32)

간단한 신경망 훈련

첫 번째 신경망의 경우, 입력 채널의 가중 합을 생성하는 모델을 학습시키고, 선택적인 바이어스/오프셋 항을 추가합니다. 가중치와 바이어스는 Python에서 만든 인공 학습 데이터를 통해 결정됩니다. 그런 다음 매개변수를 Moku 신경망 도구에 로드하고 다음을 사용하여 모델을 검증할 수 있습니다. 모쿠 오실로스코프 그리고 내장된 Waveform Generator. 이 예제에서는 Python 코드를 쉽고 대화형으로 실행하기 위해 Jupyter notebook을 사용합니다. 그러나 좋아하는 IDE에서 작성하고 실행하는 간단한 Python 스크립트도 충분합니다.

Anaconda 창에서 Jupyter를 시작한 다음 sum.ipynb Python 노트북을 업로드하여 엽니다.

1단계: 가져오기 및 함수 정의

첫 번째 코드 블록(그림 1)을 실행하여 시작합니다. 이 블록은 모든 필수 종속성을 가져오고 신경망 API를 호출합니다. 첫 번째 코드 블록이 오류 없이 실행되면 모든 부분이 제자리에 있고 다음 단계로 진행할 수 있습니다. 오류가 반환되면 위의 섹션을 확인하여 모든 필수 구성 요소가 설치되었는지 확인합니다.

그림 1: sum.ipynb에 필요한 가져오기

다음으로, 그림 2에 표시된 대로 훈련을 위한 신호를 생성합니다. 시뮬레이션된 데이터의 3개 입력 채널과 XNUMX개 출력 채널이 필요합니다. Moku:Pro를 사용하여 실제 훈련 데이터를 생성하거나 캡처할 수도 있습니다. 생성된 입력 신호를 원하는 합산 출력과 함께 플로팅하여 훈련 데이터를 확인합니다(그림 XNUMX).

그림 2: 시뮬레이션된 훈련 데이터 생성.

그림 3: 모델 훈련을 위한 시뮬레이션된 훈련 입력과 원하는 출력.

다음으로, 우리는 모델을 훈련하기 위해 데이터를 준비해야 합니다. 우리는 먼저 입력을 형태(N,3) 그리고 형성할 출력 (N,1) 모델로 보내기 전에. 이 코드는 그림 4에 나와 있습니다.

그림 4: 훈련을 위한 데이터 전치.

이 예에서 기존 데이터는 학습에 충분하지만, 추가 학습 데이터를 생성하거나 입력 및 출력을 스케일링하도록 선택할 수 있습니다. 스케일링을 적용하도록 선택하는 경우 런타임에 Moku 신경망에서 동일한 스케일링을 적용해야 합니다.

2단계: 모델 정의

이제 신경망 모델을 빌드할 수 있습니다. 먼저 Moku Neural Network 도구의 구성과 제약을 나타내는 "linn_model"이라는 객체를 만듭니다. 그림 5에서 모델 객체를 인스턴스화하면 이전에 생성된 교육 데이터를 모델에 전달할 수 있습니다.

그림 5: 모델 인스턴스화.

그런 다음 배열을 만들어 모델을 정의합니다. 배열의 각 요소는 신경망의 계층에 해당합니다. 이러한 요소는 튜플로, 뉴런 수와 해당 계층의 활성화 함수를 제공합니다. 예를 들어 (16, 'relu')는 ReLU 활성화 함수가 있는 16개 뉴런 계층을 나타냅니다. 입력 및 출력 계층 외에 각 계층의 뉴런 수와 활성화 함수는 사용자가 결정합니다. sum.ipynb 모델은 단일 뉴런을 사용하지만(그림 7), 해당 모델 정의에 주석을 달고 추가 옵션을 사용해 보세요. 각 계층에 대해 다른 활성화 함수와 뉴런 수를 사용할 수 있습니다.

그림 6: 모델 정의 구성.

이 셀을 실행하면 그림 7에 표시된 모델 정의가 채워집니다.

그림 7: sum.ipynb 모델 정의.

자신의 모델을 만들 때 최대 100개의 dense 레이어(hidden layer라고도 함)를 포함할 수 있으며, 각각 최대 XNUMX개의 뉴런을 포함합니다. 각 레이어에 대해 ReLU, tanh, softsign, linear, sigmoid 활성화 함수 중에서 선택합니다. 레이어 출력은 다음 레이어로 이동하기 전에 이 활성화 함수를 통과합니다. 이러한 함수가 없으면 신경망 연산은 완전히 선형이 되어 단일 연산으로 축소됩니다.

3단계: 모델 학습 및 피드백 보기

이제 모델을 정의했으므로 원하는 매핑을 나타내도록 모델을 학습시켜야 합니다. 이는 몇 가지 기본 인수로 fit_model() 함수를 호출하는 것만큼 간단합니다. 모델이 500에포크(학습 단계) 동안 학습하도록 허용하고 위에서 학습 데이터의 10%를 검증을 위해 따로 보관합니다. 또한 손실 함수가 정점에 도달하면 학습을 중단하도록 조기 중단 구성을 설정합니다. 이 접근 방식은 일반성을 희생하고 모델이 학습 데이터를 매우 잘 예측하게 되는 "과도한 적합"을 방지하는 데 도움이 됩니다. 또한 완료 시간을 단축하는 이점이 있습니다.

훈련 시대

그림 8: 모델 학습.

훈련이 완료되면 훈련 손실과 검증 손실을 플로팅하여 훈련의 성공 여부를 평가합니다. 그림 9의 손실은 훈련이 진행됨에 따라 감소하는데, 이는 예상된 것입니다.

그림 9: 훈련에서 얻은 손실과 검증 손실을 그래프로 나타낸 것입니다.

그림 10에서 보듯이, 학습이 완료되었으므로 이제 예측 출력을 플로팅하여 모델의 유효성을 검사할 수 있습니다. 예측 출력과 원하는 출력 사이의 매우 작은 차이를 보여주는 두 번째 플롯의 크기에 주목하세요.

그림 10: 모델에서 원하는 출력과 예측 출력을 표시한 그림입니다.

4단계: 매개변수 저장

이제 완전히 훈련된 모델이 있으므로 Moku에서 실행할 준비가 되었습니다. 모델을 .linn 파일로 저장하여 Moku 신경망에서 사용합니다(그림 11).

그림 11: Moku 신경망과 호환되는 .linn 형식으로 네트워크 모델을 저장하는 기능.

Moku를 사용하여 모델 배포 및 검증

In 다중 장비 모드 Moku:Pro(그림 12)에서 슬롯 1에 Moku 신경망을, 슬롯 2에 오실로스코프를 놓습니다. 다음으로 오실로스코프의 출력을 신경망의 입력에 연결합니다. 그런 다음 "변경 사항 적용"을 클릭하고 FPGA가 구성될 때까지 기다립니다.

그림 12: Moku:Pro의 다중 악기 모드 구성.

이제 Neural Network 메뉴를 열고 그림 13에서 표시된 다이어그램 아래에 있는 "Load network configuration" 버튼을 사용하여 Python 스크립트에서 생성된 sum.linn 파일을 업로드합니다. 예상대로 세 개의 입력, 하나의 출력 및 선형 활성화 함수가 있는 한 개의 레이어가 표시되어야 합니다.

신경망, 단일 뉴런 및 계층

그림 13: sum.linn이 로드된 Moku 신경망.

오실로스코프를 실행하고 오른쪽 하단 모서리에 있는 사인파 아이콘을 클릭하여 내장 파형 발생기를 엽니다. 그림 14와 같이 두 개의 신호를 생성하여 모델의 기능을 테스트합니다. 이 예제에서는 두 개의 사인파를 사용합니다. 하나는 진폭이 1Vpp이고 주파수가 1kHz이고, 다른 하나는 진폭이 500mVpp이고 주파수가 100Hz입니다.

그림 13: 내장 파형 생성기 예제 설정.

오실로스코프의 채널 A에 합산된 신호가 나타나는 것을 볼 수 있습니다. 마우스로 오실로스코프 뷰를 확장하여 신호를 봅니다. 두 개의 사인파를 합치면 그림 15의 신호와 비슷해야 합니다.

그림 15: Moku 신경망의 출력.

그림 16에서 볼 수 있듯이 커서와 내장 측정을 사용하여 네트워크 작동을 확인하고 예상되는 진폭 및 주파수 구성 요소를 테스트하거나 Moku를 사용합니다. 스펙트럼 분석기. 추가 신호 유형, 주파수 또는 기타 매개변수로 네트워크를 자유롭게 테스트하세요.

그림 16: Moku 신경망 출력 확인.

맺음말

여기에서 제공된 예제 스크립트를 수정하거나 직접 작성하여 다른 Moku 기기와 통합할 수 있는 고유하고 강력한 머신 러닝 모델을 만들 수 있습니다. 재구성 가능한 고성능 테스트 및 측정 기기 세트와 통합된 유일한 FPGA 기반 신경망으로 제어 시스템을 실시간으로 실행하고 실험 결과를 예측하는 등의 작업을 모두 수행할 수 있습니다.

비디오 튜토리얼을 선호하시나요? 주문형 웨비나를 시청하세요. 빠르고 유연한 신호 분석, 폐쇄 루프 피드백 등을 위한 FPGA 기반 신경망을 구현하는 방법을 학습합니다.

Moku 신경망에 대해 자세히 알아보세요

제공된 나머지 예제를 검토하고, 사양을 검토하고, Moku 신경망에 대해 계속 학습하세요. 질문이 있으신가요? 저희에게 연락하세요 여기에서 확인하세요..

사용자 포럼에 가입하시어 연락을 받으십시오

새로운 기능을 요청하고 싶으십니까? 공유할 지원 팁이 있으십니까? 사용 사례 예시부터 새로운 기능 발표 등에 이르기까지, 사용자 포럼은 제품 업데이트에서 Liquid Instruments 및 글로벌 사용자 커뮤니티와의 연결까지 한번에 해결할 수 있는 도깨비 방망이입니다.


데모 모드에서 Moku를 사용해 보세요

macOS 및 Windows용 Moku 앱을 다운로드할 수 있습니다. 여기에서 확인하세요..


FAQ에 대한 답변을 받으세요

장치 및 계측기에 대한 질문과 답변을 찾아보세요. 기술 자료.


Moku 사용자와 연결

또한 사용자 포럼 새로운 기능을 요청하고, 지원 팁을 공유하고, 글로벌 사용자 커뮤니티와 소통하세요.