자유게시판
SENSING1코드의 ASC 동작을 위해 수정을 해야 하는 부분
2022. 10. 11 (화) 19:10
자작공작소
조회 30
좋아요 1
스크랩 0
댓글 2
케라스를 이용해서 모델을 만들고 X-Cube-AI를 이용해서 C코드로 변경시 입출력 가중치 파라미터 타입은 AI_BUFFER_FORMAT_FLOAT (AI_BUFFER_FMT_TYPE_FLOAT) 입니다.
그런데 ASC_NN_Run()함수에서 사용하는 aiConvertInputFloat_2_Int8(), aiConvertOutputInt8_2_Float()함수에서는 AI_BUFFER_FMT_TYPE_FLOAT 타입 데이터 처리시 오류가 발생합니다. 그래서 이부분을 수정 하던지 아니면 이 두 함수의 호출을 막아야 합니다.
아래는 마지막 과제 수행시 수정하여 사용한 코드입니다.
/**
* @brief ASC Convolutional Neural Net inference
* @param[in] pSpectrogram The CNN feature input
* @param[out] pNetworkOut The CNN output
*
* @retval ASC Status
*/
ASC_StatusTypeDef ASC_NN_Run(float32_t *pSpectrogram, float32_t *pNetworkOut)
{
/* Z-Score Scaling on input feature */
for (uint32_t i = 0; i < SPECTROGRAM_ROWS * SPECTROGRAM_COLS; i++)
{
pSpectrogram[i] = (pSpectrogram[i] - featureScalerMean[i]) / featureScalerStd[i];
}
aiRun(AI_ASC_MODEL_NAME, AI_ASC_MODEL_CTX, pSpectrogram, pNetworkOut);
return ASC_OK;
}
이 코드를 수정하지 않으면 ASC프로세싱이 제대로 실행되지 못합니다.
ASC를 시도하실때 참고하시기 바랍니다.
칩헤드
2022.10.11 23:02
답글
|
https://community.st.com/s/question/0D50X0000BJ2O2MSQV/spectrogram-recognition-with-xcube-ai-on-stm32f746 (Spectrogram recognition with X-Cube AI on STM32F746), FYI. ^^
자작공작소
2022.10.12 09:01
링크해 주신 글은 저도 읽어 보았습니다. 내용 중에도 소스 코드 내에 버그가 있다고 언급이 되었는데 터미널 프로그램을 통해서 디버깅을 해보면 ASC 실행시 "E: no meta info(1)" 메세지가 발생하며 위에 안내해 드린 내용은 이 메세지를 해결하는 방법입니다. :)
로그인 후
참가 상태를 확인할 수 있습니다.