Implementation of Convolution Neural Network using Python & Verilog
성균관대학교 소프트웨어학과 & 전자전기공학부 강보영 졸업작품
파이토치는 앞서 설치한 아나콘다 버전/OS/플랫폼에 따라 다르므로 위 링크에서 확인 후 설치합니다.
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge
설치 후 아나콘다 프롬프트에서 버전 확인이 가능하다.
import torch
torch.__version__
https://eda.sw.siemens.com/en-US/modelsim-student-edition-unavailable/
해당 프로젝트는 21.2 버전 환경에서 개발되었다.
채택한 CNN의 구조는 아래의 2-Layer이며, 파라미터는 아래와 같이 설정하였다.
- Batch Size = 64
- Training Epoch = 10
- Learning Rate = 0.01
- Optimizer = Stochastical Gradient Descent (Momentum = 0.5)
- Activation Function = ReLU
학습 결과 96.29%의 적중률을 보였다.
- Single MNIST dataset input 단일 MNIST 입력데이터에 대해 100MHz 동작 클럭에서 13335ps에서 인식에 성공하였다. 총 1335 클럭이 소요되었다.
- Multiple random MNIST dataset input 연속적으로 1,000개의 MNIST 입력데이터를 랜덤하게 입력하였을 때, 1000번 중 920번이 적중하여 92%의 적중률을 갖는다.