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