深度学习CNN网络:零基础入门食物声音识别
1、环境配置
- anaconda(推荐清华镜像,清华镜像无的话可以试着百度云,百度云盘链接:https://pan.baidu.com/s/17GbcC7YQ7WfzIpLk7IevHQ 提取码:Oe31 )
- pycharm(2019.3.3)更高版本也可。
- TensorFlowGPU、cuda等安装可以参开其他博文,注意的是版本之间的配合。
- 其他库的安装方式,能从pycharm安装的尽量从pycharm安装,安装路径:file--setting--project:xxxx--project interpreter
- pycharm安装不了的 可以在Terminal下使用pip install 安装。
2、数据下载:
本次数据采用Datawale和天池合作比赛数据,下载链接
- 训练集:http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531887/train_sample.zip
- 验证集:http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531887/test_a.zip
- 具体代码和教程请移步天池链接:https://tianchi.aliyun.com/competition/entrance/531887/forum
3、程序报错。
基于baseline代码运行后发现出现文件无法tqdm情况,具体显示为:IndexError:list index out of range
查看代码后发现原来是split()切割字符存在问题,split('/')[-2]是想切割遍历文件夹下倒数第二个文件名,即本次项目的标签(label)名称,但是因为后文Parent_dir目录路径及符号问题,就会导致无法正确的分割出label;
比如我的父目录路径为:parent_dir = 'D:\\datawale\\sample\\train_sample\\train_sample'
但是我存放位置如图所示:
表示我的类别,即源代码中label_name需求提取倒数第二个文件名,所以我先用[-2]表示提取的为倒数第二个,在根据我在parent_name中用的是 ‘\\' 进行的路径分隔,所以split最终表示为 split('\\')[-2],这样运行就不会报错了。
重点在于分隔split与父目录路径之间的联系,其次是要理解代码是想提取什么,再就是注意路径分隔符采用的是’\\' 还是‘/'。
有问题的话欢迎私信或者留言,谢谢大家,一起进步。