building_with_espdl-3-failure
building_with_espdl-3-failure
这部分在实践的过程中知识有点杂,因此笔记稍显混乱。
windows中的powershell
类似ls的shell语言
Get-ChildItem
列出当前目录下的所有文件和文件夹:Get-ChildItem
递归列出指定目录下的所有文件和文件夹:Get-ChildItem -Recurse C:\MyDocuments
筛选特定类型的文件:Get-ChildItem -Filter *.txt
常用参数:
-Path
: 指定要获取子项的路径。-Recurse
: 递归搜索子目录。-Filter
: 根据文件名模式筛选文件。-Include
: 指定要包含的文件名模式。-Exclude
: 指定要排除的文件名模式。-Directory
: 只返回目录。-File
: 只返回文件。
dir
列出当前目录下的所有文件和文件夹:dir
以简略格式列出:dir /B
只列出目录:dir /AD
常用参数:
/B
: 以简略格式列出。/AD
: 只列出目录。/S
: 递归搜索子目录。
其他杂项
打开jupyter notebook中ipynb文件自动关闭jupyter终端:
https://blog.csdn.net/qq_45404853/article/details/121310483?fromshare=blogdetail&sharetype=blogdetail&sharerId=121310483&sharerefer=PC&sharesource=m0_60571820&sharefrom=from_link
windows的conda安装:
https://blog.csdn.net/ciagrate/article/details/140129703?fromshare=blogdetail&sharetype=blogdetail&sharerId=140129703&sharerefer=PC&sharesource=m0_60571820&sharefrom=from_link
在powershell中识别不了conda环境是因为也需要像ubuntu中修改.bashrc一样修改powershell的配置文件。
原文第三部分的复现(失败)
本人在windows11上重新尝试了全文,参数是esp-idf的release/v4.4的branch,esp-dl的idfv4.4的branch,python=3.7,和原作者完全相同。但在执行到第二部分优化和量化模型,在前面笔记提到的三行代码处仍然失败(如下图),证明esp-dl确实有问题。
因此本人改变思路,既然作者自己都无法在24年复现22年的优化和量化过程,那我直接使用22年作者机缘巧合成功生成的cpp文件,直接往esp32s3里面烧录,复现第三部分模型部署,但是仍然遇到问题:
cmake文件路径未标明
外层 CMakeLists.txt
文件已经包含以下行:`set(EXTRA_COMPONENT_DIRS ./components/esp-dl)·
为了确保路径一致性,建议简化路径设置:
1 |
|
在 main
文件夹中的 CMakeLists.txt
文件,可以做以下调整:
1、**更新 include_dirs
**:
- 将
include_dirs
添加components/esp-dl
路径,以确保dl_tool.hpp
能被找到。set(include_dirs ../model ${CMAKE_SOURCE_DIR}/components/esp-dl)
2、检查idf_component_register
设置: - 更新
idf_component_register
部分,将INCLUDE_DIRS
变量更新为刚刚修改的include_dirs
,确保esp-dl
的头文件路径被正确添加:idf_component_register(SRCS ${srcs} INCLUDE_DIRS ${include_dirs} REQUIRES ${requires})
头文件未放置在.components/esp-dl/文件夹中
.hpp
文件是一种 C++ 代码文件的扩展名,用来定义 C++ 的头文件(header file),类似于 .h
文件。本文需要将下图的esp-dl官方的头文件放到此文件夹中。
printf
函数的格式化字符串上(未解决)
当前的代码中,以下几行使用了 printf
,并且 %u
与 uint32_t
类型不匹配:
1 |
|
要修正这些格式化问题,需要引入 <inttypes.h>
头文件,然后使用 PRIu32
来替代 %u
。这是因为 PRIu32
是一个与 uint32_t
类型兼容的格式宏。以下是修改后的代码示例:
1 |
|
后续可能解决方案
只有放弃esp-dl,使用其他模型转化工具了。