자유게시판
마지막 Quest 진행하며 느낀 것을 적어봅니다.
과제 진행 중 X-CUBE-AI의 버전에 따라서 Python, Keras, Tensorflow, librosa등의 버전을 잘 맞추는 과정이 필요했습니다.
또한, Keras모델을 C코드로 변환 후 CubeIDE에서 빌드시 힙메모리 부족 이슈로 인해 가중치 테이블의 크기를 줄이려고 양자화 모델인 TFlite을 C코드로 변환 과정에서 X-CUBE-AI버전도 여러변 변경해 보고 그에따라 Python, Keras, Tensorflow, librosa도 여러 버전으로 설치해 보았습니다.
과제 진행 중 개발 환경의 궁합을 맞추는 일이 어려웠습니다.
추후에 다시 과제를 이어간다면 개발 환경을 유지하는 것이 관건이라고 생각했습니다.
Docker Compose등 개발환경 프로비저닝툴을 고려해봐야 겠습니다.
ASC모델을 간단하지만 만들어서 동작이 되는것을 보니 여러 가지 응용할 수 있는 아이템이 떠오릅니다.
여기서 멈추지 않고 여러가지 시도를 해봐야 겠습니다.
[추가 사항]
이번 마지막 과제에 사용한 CNN모델은 다음과 같습니다.
model = models.Sequential()
model.add(layers.Conv2D(16, (3, 3), activation='relu', input_shape=(30, 32, 1), data_format='channels_last'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(16, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(9, activation='relu'))
model.add(layers.Dense(3, activation='softmax'))
각 부분의 filters, pool_size, units 값을 조절하면 모델의 가중치 파라미터를 대폭 줄일 수 있으며 힙메모리 관련 문제도 해결할 수 있습니다.
파라미터의 크기와 성능, 자원소비 등의 trade-off가 필요합니다.
참고하십시오.
[수상소감]
수상 결과는 프로젝트의 완성도와는 크게 상관이 없는 것도 있네요.
포장이 중요할때도...
아무튼 좋은 기회에 많이 배웠습니다.
로그인 후
참가 상태를 확인할 수 있습니다.