我正在使用stm32做人工智能,使用X Cube人工智能庫,我試圖通過UART將一個給定模型的網路權重發送到我的微控制器。
為此,我需要使用一個Python腳本來獲取我的tflite模型的權重,就像在stm32上一樣,作為一個c變數。
我試過一些轉換工具,如xxd -i命令或convert_bytes_to_c_source函式,但它總是轉換整個tflite檔案而我只需要重量。
uj5u.com熱心網友回復:
簡單地說
ai_handle ai_network...get(void)
{
static ai_u8 s_network_weights[6720] 。
uart_read_data(s_network_weights, sizeof(s_network_weights))。
/*...*/
uj5u.com熱心網友回復:
我找到了解決我問題的方法。X cube AI庫只是使用IEEE 754標準將模型的權重從有符號的浮點數轉換為十六進制。 我們可以通過使用這個網站來做到這一點。https://gregstoll.com/~gregstoll/floattohex/(他們甚至有一個python代碼)
我們可以看到第一個權重和網路資料值之間的比較。
如果我們將其與STM32上存盤的權重值進行比較,它們確實與前8位元組的值相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334259.html
標籤:
