Press "Enter" to skip to content

TinyML语音关键字唤醒 – 训练模型#1

之前是用现有模型进行的,现在开始训练自己的模型,训练模型其实毫无难度,难度是人力成本,具体转到连接:

 

https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/audio/simple_audio.ipynb

 

当然如果你想不开,非要本机训练,CPU状态下要2-3小时,而Colab提供的GPU加速,只需要十几分钟,而且,默认打开就是使用GPU训练的,当然,我们还不用特殊设置,直接就好用.

 

读到现在,当然假设大家都已经掌握TF的基础(如果还不行就翻之前的内容),我就大致说一下这个训练中关键的内容.

下载 mini_speech_commands.zip 文件,这个文件包含了8个词,每个词都有1000个文件,是不同的1000个人说的.我们要训练的词,也必须找很多人不断录音哦.同理,如果你要训练小狗这个图片模型,也是需要找很多不同形态的小狗,不同环境下的小狗.
然后切割数据为三份,训练数据6400,测试数据800,验证数据800,后续用from_tensor_slices分割.
获取每个文件对应的label,目录路径中就包含label这幺关键的信息.
随机抽一些音频数据画图(可视化看看)
使用SFFT进行时域转频域(即频谱图),然后后面也打印一些频域图.
然后开始训练(构造层啊各种,这些需要不断组合做出最佳结果)
然后一直训练到自己合适的loss,然后结束训练.
然后用测试验证数据测试一下结果.

不过Colab始终有12小时的限制,如果模型很大,就必须本地训练,可以在本地这幺训练.

 

bazel-3.7.2 run tensorflow/examples/speech_commands:train

 

还可以规定一些输出参数.

 

bazel-3.7.2 run tensorflow/examples/speech_commands:train --summaries_dir=/root/retrain_logs --train_dir=/root/speech_commands_train --data_dir=/root/speech_dataset/

如果觉得无聊,可以开个tensorboard娱乐下,功能挺多,需要自己探索下.

 

tensorboard --logdir /tmp/retrain_logs

最后得到以下有用文件(其他文件省略了!):

 

root@ip-tl-ml:~# ls /tmp
speech_commands_train retrain_logs speech_dataset

 

小内存机是否可用SWAP代替?是否可以用VPS来做训练?首先如果不是独立CPU,用VPS来训练肯定会被K,如果磁盘有相关的限制,即使可以开SWAP也没用.

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注