신경망을 생성하려면 이 단계별 예제를 사용합니다. 합계.ipynb, 예상 출력은 단순히 입력의 합계이고 숨겨진 레이어를 하나만 사용합니다. 이 간단한 작업은 여러 가지 방법으로 완료할 수 있지만 다음을 훈련하는 것은 쉽습니다. Moku 뉴럴 네트워크 간단한 대수에서 복잡한 추론까지 거의 모든 기능을 구현합니다. 다른 예 찾기 여기에서 확인하세요 그리고 신경망 가이드를 다운로드하세요 여기에서 확인하세요.
일반 전제 조건
Moku 신경망을 사용하려면 다음이 필요합니다.
- Moku 장치
- Moku 앱 Windows 또는 macOS에서 다운로드 가능한 버전 3.3 이상
- Python 설치(버전 3.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 신경망 도구에 로드하고 다음을 사용하여 모델을 검증할 수 있습니다. 모쿠 오실로스코프 이 예제에서는 Jupyter Notebook을 사용하여 Python 코드를 쉽고 대화형으로 실행합니다. 하지만 선호하는 IDE에서 작성하고 실행하는 간단한 Python 스크립트도 충분합니다. 먼저 Anaconda 창에서 Jupyter를 실행한 다음 sum.ipynb Python Notebook 파일을 업로드하고 엽니다.
1단계: 가져오기 및 함수 정의
첫 번째 코드 블록(그림 1)을 실행하여 시작합니다. 이 블록은 모든 필수 종속성을 가져오고 신경망 API를 호출합니다. 첫 번째 코드 블록이 오류 없이 실행되면 모든 부분이 제자리에 있고 다음 단계로 진행할 수 있습니다. 오류가 반환되면 위의 섹션을 확인하여 모든 필수 구성 요소가 설치되었는지 확인합니다.

그림 1: sum.ipynb에 필요한 임포트. 다음으로, 그림 2와 같이 학습용 신호를 생성합니다. 시뮬레이션 데이터의 입력 채널 3개와 출력 채널 1개가 필요합니다. Moku:Pro를 사용하여 실제 학습 데이터를 생성하거나 캡처할 수도 있습니다. 생성된 입력 신호와 원하는 합산 출력 신호를 함께 플롯하여 학습 데이터의 유효성을 검증합니다(그림 3).

그림 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 모델 정의. 자체 모델을 생성할 때 최대 5개의 완전 연결층(은닉층)을 포함할 수 있으며, 각 은닉층은 최대 100개의 뉴런으로 구성됩니다. 각 층에 대해 ReLU, tanh, 소프트사인, 선형, 시그모이드 활성화 함수 중에서 선택할 수 있습니다. 각 층의 출력은 다음 층으로 넘어가기 전에 해당 활성화 함수를 거칩니다. 이러한 활성화 함수가 없으면 신경망 연산은 완전히 선형적으로 수행되어 단일 연산으로 축소됩니다.
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의 다중 기기 모드 구성. 이제 신경망 메뉴를 열고 그림 13에 표시된 것처럼 다이어그램 아래에 있는 "네트워크 구성 불러오기" 버튼을 사용하여 Python 스크립트에서 생성된 sum.linn 파일을 업로드합니다. 예상대로 입력 3개, 출력 1개, 선형 활성화 함수를 가진 레이어 하나가 표시될 것입니다.

그림 13: sum.linn이 로드된 Moku 신경망. 오실로스코프를 열고 오른쪽 하단의 사인파 아이콘을 클릭하여 내장된 파형 생성기를 엽니다. 그림 14와 같이 모델의 기능을 테스트하기 위해 두 개의 신호를 생성합니다. 이 예에서는 진폭이 1 Vpp이고 주파수가 1 kHz인 사인파 하나와 진폭이 500 mVpp이고 주파수가 100 Hz인 사인파 하나를 사용합니다.

그림 13: 내장 파형 발생기 설정 예시. 오실로스코프의 A 채널에 합산된 신호가 나타날 것입니다. 마우스를 사용하여 오실로스코프 화면을 확대/축소하면 신호를 자세히 볼 수 있습니다. 두 개의 사인파가 합쳐진 신호는 그림 15와 유사할 것입니다.

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


그림 16: Moku 신경망 출력 확인.
맺음말
여기에서 제공된 예제 스크립트를 수정하거나 직접 작성하여 다른 Moku 계측기와 통합할 수 있는 독창적이고 강력한 머신 러닝 모델을 만들 수 있습니다. 재구성 가능한 고성능 테스트 및 측정 계측기 제품군과 통합된 유일한 FPGA 기반 신경망을 사용하여 제어 시스템을 실시간으로 실행하고 실험 결과를 예측하는 등 다양한 작업을 수행할 수 있습니다. 비디오 튜토리얼을 선호하시나요? 주문형 웨비나를 시청하세요. 빠르고 유연한 신호 분석, 폐쇄 루프 피드백 등을 위한 FPGA 기반 신경망을 구현하는 방법을 학습합니다.
Moku 신경망에 대해 자세히 알아보세요
제공된 나머지 예제를 검토하고, 사양을 검토하고, Moku 신경망에 대해 계속 학습하세요. 질문이 있으신가요? 저희에게 연락하세요 여기에서 확인하세요.
사용자 포럼에 가입하시어 연락을 받으십시오
새로운 기능을 요청하고 싶으신가요? 공유할 지원 팁이 있나요? 사용 사례 예시부터 새로운 기능 발표 등에 이르기까지 사용자 포럼 제품 업데이트는 물론 Liquid Instruments 및 글로벌 사용자 커뮤니티와의 연결을 위한 원스톱 상점입니다.



