Skip to main content

10.1 ๆจกๅž‹ๅ‡†ๅค‡

ๆœฌ้˜ถๆฎตไป‹็ปๅฆ‚ไฝ•ๆž„ๅปบ็คบไพ‹ 1D-CNN ๆจกๅž‹ใ€ๅฐ†ๅ…ถๅฏผๅ‡บไธบ int8 TFLite ๆ ผๅผใ€็”Ÿๆˆ้‡ๅŒ–่พ“ๅ…ฅๆ•ฐๆฎ๏ผŒไปฅๅŠ็”ŸๆˆๅตŒๅ…ฅ MCU ๅ›บไปถ็š„ C ๅญ—่Š‚ๆ•ฐ็ป„ใ€‚ ๆœฌ้˜ถๆฎต็š„ๆบๆ–‡ไปถ๏ผˆmodel_keras.pyใ€export_tflite.pyใ€gen_input_data.py๏ผ‰้šๆœฌๆ–‡ๆกฃไธ€ๅŒๆไพ›ใ€‚ๅœจ่ฟ่กŒไปปไฝ•่„šๆœฌไน‹ๅ‰๏ผŒ่ฏทๅ…ˆๅœจไธปๆœบไธŠๅฎ‰่ฃ…ไธ€ๆฌกไพ่ต–้กน๏ผš

10.1.1 ๅ‚่€ƒๆจกๅž‹ๆžถๆž„

็คบไพ‹ๆจกๅž‹ๆ˜ฏไธ€ไธชไฝฟ็”จ้šๆœบๆƒ้‡็š„ๆœ€ๅฐ 1D-CNNใ€‚

10.1.1.1 ๆจกๅž‹่ฎก็ฎ—ๅ›พ

BatchNormalization ๅœจๅฏผๅ‡บ่ฟ‡็จ‹ไธญ่ขซๆŠ˜ๅ ่ฟ› Conv2D ๆƒ้‡ไธญ๏ผŒไธไผšไฝœไธบๅ•็‹ฌ็š„็ฎ—ๅญๅ‡บ็Žฐๅœจ้‡ๅŒ–่ฎก็ฎ—ๅ›พไธญใ€‚่ฏฅ int8 ๆจกๅž‹ๆฐๅฅฝๅŒ…ๅซ 3 ไธช็ฎ—ๅญใ€‚

10.1.2 ๆบๆ–‡ไปถ

10.1.2.1 model_keras.py๏ผšๆจกๅž‹ๅฎšไน‰

ๅฎšไน‰ Keras ๆจกๅž‹ๆžถๆž„ใ€‚

10.1.2.2 export_tflite.py๏ผšๅฏผๅ‡บ Float32 ๅ’Œ Int8 TFLite

ๅŸบไบŽ model_keras.py ๆž„ๅปบๆจกๅž‹๏ผŒไฝฟ็”จ้šๆœบไปฃ่กจๆ€งๆ•ฐๆฎ้›†ๆ‰ง่กŒๅ…จๆ•ดๆ•ฐ้‡ๅŒ–๏ผŒๅนถ้ชŒ่ฏไธคไธช่พ“ๅ‡บใ€‚
่ฟ่กŒ๏ผš
่พ“ๅ‡บ๏ผš ่ฏฅ่„šๆœฌ่ฟ˜ไผšๆ‰“ๅฐ gen_input_data.py ๅ†…้ƒจไฝฟ็”จ็š„่พ“ๅ…ฅ้‡ๅŒ–ๅ‚ๆ•ฐ๏ผˆscaleใ€zero_point๏ผ‰ใ€‚

10.1.2.3 gen_input_data.py๏ผš็”Ÿๆˆ้‡ๅŒ–่พ“ๅ…ฅๆ–‡ไปถ

็›ดๆŽฅไปŽๅฏผๅ‡บ็š„ int8 ๆจกๅž‹ไธญ่ฏปๅ–้‡ๅŒ–ๅ‚ๆ•ฐ๏ผŒ็„ถๅŽๅŸบไบŽ็œŸๅฎžๆ•ฐๆฎ้›†ๆˆ–ๅˆๆˆๆ•ฐๆฎ็”Ÿๆˆ 200 ไธชๆ ทๆœฌ็š„ int8 ็ช—ๅฃใ€‚
่ฟ่กŒ๏ผš
่พ“ๅ‡บ๏ผˆไฝไบŽ inputs/ ๆ–‡ไปถๅคนไธญ๏ผ‰๏ผš

10.1.3 ๅœจไธปๆœบไธŠ้ชŒ่ฏ

ๅœจๅฐ†ๆจกๅž‹้›†ๆˆๅˆฐ MCU ๅ›บไปถไน‹ๅ‰๏ผŒ่ฏท็กฎ่ฎคๆจกๅž‹่ƒฝๅคŸไฝฟ็”จ็”Ÿๆˆ็š„่พ“ๅ…ฅๆญฃ็กฎ่ฟ่กŒ๏ผš
้ข„ๆœŸ็š„ๅฝข็Šถๅ’Œ็ฑปๅž‹๏ผˆๅ…ทไฝ“ๆ•ฐๅ€ผๅ–ๅ†ณไบŽ้šๆœบๆƒ้‡๏ผ‰๏ผš