TensorFlow的demo下的各个模型训练效果
使用如下参数切换模型经常测试
single_fc模型下的测试图如下所示
- single_fc(单层全连接模型)
· 结构:最简单的模型,只有一个全连接层
特点:参数少、计算快,但准确率较低,主要用于初步测试
(fingerprint_input)
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
使用如下参数进行训练
Training these words: yes,no,up,down,left,right,on,off,stop,go
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
最终结果
WARNING:tensorflow:Final test accuracy = 55.6% (N=4726)
W1016 10:43:00.902996 21228 train.py:315] Final test accuracy = 55.6% (N=4726)
使用如下参数进行训练
Training these words: yes,no
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
最终结果
WARNING:tensorflow:Final test accuracy = 82.8% (N=1236)
W1020 19:13:59.910334 37564 train.py:315] Final test accuracy = 82.8% (N=1236)
conv 模型下的测试图如下所示
conv(标准卷积模型)
结构:包含两个卷积层的CNN模型
特点:基于论文《Convolutional Neural Networks for Small-footprint Keyword Spotting》,准确率较高但计算量大
(fingerprint_input)
v
[Conv2D]<-(weights)
v
[BiasAdd]<-(bias)
v
[Relu]
v
[MaxPool]
v
[Conv2D]<-(weights)
v
[BiasAdd]<-(bias)
v
[Relu]
v
[MaxPool]
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
使用如下参数进行训练
Training these words: yes,no,up,down,left,right,on,off,stop,go
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
最终结果
WARNING:tensorflow:Final test accuracy = 85.7% (N=4726)
W1016 14:43:10.853354 5356 train.py:315] Final test accuracy = 85.7% (N=4726)
使用如下参数进行训练
Training these words: yes,no
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
最终结果
WARNING:tensorflow:Final test accuracy = 94.1% (N=1236)
W1022 22:44:29.322014 46336 train.py:315] Final test accuracy = 94.1% (N=1236)
low_latency_conv 模型下的测试图如下所示
- low_latency_conv(低延迟卷积模型)
结构:简化版CNN,减少计算需求
特点:同样是基于上述论文的"cnn-one-fstride4"网络,计算量较少但准确率略低
(fingerprint_input)
v
[Conv2D]<-(weights)
v
[BiasAdd]<-(bias)
v
[Relu]
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
使用如下参数进行训练
Training these words: yes,no,up,down,left,right,on,off,stop,go
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
最终结果
WARNING:tensorflow:Final test accuracy = 53.9% (N=4726)
W1016 16:29:01.481791 20368 train.py:315] Final test accuracy = 53.9% (N=4726)
使用如下参数进行训练
Training these words: yes,no
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
最终结果
WARNING:tensorflow:Final test accuracy = 87.4% (N=1236)
W1023 10:37:53.300418 15284 train.py:315] Final test accuracy = 87.4% (N=1236)
low_latency_svdf 模型下的测试图如下所示
结构:基于SVDF(Singular Value Decomposition Factorization)的模型
特点:基于《Compressing Deep Neural Networks using a Rank-Constrained Topology》论文,显著减少参数和计算量,但准确率相对较低
(fingerprint_input)
v
[SVDF]<-(weights)
v
[BiasAdd]<-(bias)
v
[Relu]
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
使用如下参数进行训练
Training these words: yes,no,up,down,left,right,on,off,stop,go
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
这个数据看起来有些异常,不确定
将 input_shape[-1].value 改为 input_shape[-1]
将 input_shape.shape[-1].value 改为 input_shape[-1]
修改版本问题有影响。
训练过程
训练结果
WARNING:tensorflow:Final test accuracy = 8.9% (N=4726)
W1016 19:11:04.803660 19944 train.py:315] Final test accuracy = 8.9% (N=4726)
使用如下参数进行训练
Training these words: yes,no,
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
训练结果
WARNING:tensorflow:Final test accuracy = 33.9% (N=1236)
W1023 12:07:28.382571 580 train.py:315] Final test accuracy = 33.9% (N=1236)
tiny_conv 模型下的测试图如下所示
. tiny_conv(微型卷积模型)
结构:专为微控制器设计的轻量化CNN
特点:内存占用小(<20KB工作内存,<32KB闪存),准确率一般但适合始终运行的唤醒词检测
(fingerprint_input)
v
[Conv2D]<-(weights)
v
[BiasAdd]<-(bias)
v
[Relu]
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
使用如下参数进行训练
Training these words: yes,no,up,down,left,right,on,off,stop,go
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
训练结果
WARNING:tensorflow:Final test accuracy = 74.7% (N=4726)
W1017 10:33:50.421761 9012 train.py:315] Final test accuracy = 74.7% (N=4726)
使用如下参数进行训练
Training these words: yes,no,
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练过程
训练结果
WARNING:tensorflow:Final test accuracy = 91.9% (N=1236)
W1029 19:51:05.339041 66008 train.py:315] Final test accuracy = 91.9% (N=1236)
tiny_embedding_conv 模型下的测试图如下所示
tiny_embedding_conv(微型嵌入卷积模型)
结构:多层轻量化CNN
特点:同样面向资源受限设备,比tiny_conv稍复杂,但保持低内存占用
(fingerprint_input)
v
[Conv2D]<-(weights)
v
[BiasAdd]<-(bias)
v
[Relu]
v
[Conv2D]<-(weights)
v
[BiasAdd]<-(bias)
v
[Relu]
v
[Conv2D]<-(weights)
v
[BiasAdd]<-(bias)
v
[Relu]
v
[MatMul]<-(weights)
v
[BiasAdd]<-(bias)
v
使用如下参数进行训练
Training these words: yes,no,up,down,left,right,on,off,stop,go
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练的效果如下
训练结果
[ 2 16 16 7 6 9 5 2 2 4 330 12]
[ 2 10 8 130 8 87 9 9 9 7 20 103]]
WARNING:tensorflow:Final test accuracy = 59.7% (N=4726)
W1017 13:57:23.635851 13480 train.py:315] Final test accuracy = 59.7% (N=4726)
使用如下参数进行训练
Training these words: yes,no
Training steps in each stage: 12000,3000
Learning rate in each stage: 0.001,0.0001
Total number of training steps: 15000
训练的效果如下
训练结果
WARNING:tensorflow:Final test accuracy = 85.4% (N=1236)
W1030 10:28:23.178637 67952 train.py:315] Final test accuracy = 85.4% (N=1236)
所有评论(0)