最近在学习《动手深度学习》的卷积神经网络中遇到了需要使用自己的数据集,根据官方文档,如果需要迭代自己的数据集,则需要先根据自己的图片数据生成lst文件和rec文件,在第一步中就遇到了坑,使用im2rec.py文件生成lst文件时,总是提示error: unrecognized arguments。后来查了很多资料,总算是解决了。
解决办法如下截图:
截图原网址:https://discuss.gluon.ai/t/topic/5216
附上我做成功的数据路径以及代码:
import os
if __name__ == '__main__':
output_dir = r'./mxrec/' # 输出结果存放目录,这个可自定义
current_dir = os.getcwd() + '\\original_resource'
for top, dirs, _ in os.walk(current_dir):
for dr in dirs:
if not os.path.isdir(os.path.join(current_dir, dr)): # 过滤在循环中新建的lst文件,我也不知道为啥Windows会把lst文件视为文件夹
continue
order = r' python D:\Python3.8\Lib\site-packages\mxnet\tools\im2rec.py --list --recursive' \
+ r' --pack-label --train-ratio 1 ' + output_dir + dr + ' ' + current_dir + '\\' + dr
# print(order)
os.system(order)
current_dir = os.getcwd()
for _, dirs, files in os.walk(current_dir+'\\mxrec'):
for file in files:
name, suffix = os.path.splitext(file)
if suffix == '.lst':
order = r'python D:\Python3.8\Lib\site-packages\mxnet\tools\im2rec.py ./mxrec/' + file + ' '\
+ os.path.join('./original_resource/', name)
print(order)
os.system(order)
for _, dirs, files in os.walk(current_dir):
for dr in dirs:
full_path = os.path.join(current_dir, dr)
order = r'python D:\Python3.8\Lib\site-packages\mxnet\tools\im2rec.py --num-thread 4 --recursive ' \
r'--pack-label ' + current_dir + ' ' + full_path
print(order)
os.system(order)
脚本在运行时遇到:imread read blank (None) image for file:这个问题,也应该是路径没有弄对
参考链接:https://blog.csdn.net/u014380165/article/details/78279820