TensorFlow识别复杂验证码以及搭建生产环境(6)—— 训练与测试
2018-01-06 13:43
651 查看
0x00 前言
训练是一个不断参数调优的过程,这个过程甚至比设计神经网络的过程的时间要长很多。所以你需要一块泰坦。否则训练的过程非常非常非常的漫长。目前博主还买不起泰坦,天天借别人的机器训练了。
0x01 训练
训练中的常见错误:OOM
由于在我的小机器上只有一块2G显存的750Ti,没训练两次就OOM了。
Traceback (most recent call last):File “C:\Python35\lib\site-packages\tensorflow\python\client\session.py”, line 1139, in _do_call
return fn(*args)
File “C:\Python35\lib\site-packages\tensorflow\python\client\session.py”, line 1121, in _run_fn
status, run_metadata)
File “C:\Python35\lib\contextlib.py”, line 66, in exit
next(self.gen)
File “C:\Python35\lib\site-packages\tensorflow\python\framework\errors_impl.py”, line 466, in raise_exception_on_not_ok_status
pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[1600,60,180,32]
[[Node: Conv2D = Conv2D[T=DT_FLOAT, data_format=”NHWC”, padding=”SAME”, strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device=”/job:localhost/replica:0/task:0/gpu:0”](Reshape, Variable/read)]]
[[Node: Mean_1/_25 = _Recvclient_terminated=false, recv_device=”/job:localhost/replica:0/task:0/cpu:0”, send_device=”/job:localhost/replica:0/task:0/gpu:0”, send_device_incarnation=1, tensor_name=”edge_146_Mean_1”, tensor_type=DT_FLOAT, _device=”/job:localhost/replica:0/task:0/cpu:0”]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:/Users/HUPENG/Desktop/JwxtCaptcha/main.py”, line 210, in
train_crack_captcha_cnn()
File “C:/Users/HUPENG/Desktop/JwxtCaptcha/main.py”, line 201, in train_crack_captcha_cnn
acc = sess.run(accuracy, feed_dict={X: batch_x_test, Y: batch_y_test, keep_prob: 1.})
File “C:\Python35\lib\site-packages\tensorflow\python\client\session.py”, line 789, in run
run_metadata_ptr)
File “C:\Python35\lib\site-packages\tensorflow\python\client\session.py”, line 997, in _run
feed_dict_string, options, run_metadata)
File “C:\Python35\lib\site-packages\tensorflow\python\client\session.py”, line 1132, in _do_run
target_list, options, run_metadata)
File “C:\Python35\lib\site-packages\tensorflow\python\client\session.py”, line 1152, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[1600,60,180,32]
。。。(以下省略若干个错误信息)
遇到这个OOM的问题要不就调低训练参数,降低训练的强度,要不就换个显卡,还是换个显卡比较直接
训练完成后会生成类似以下几个文件(17500代表我训练的次数)
0x02 测试
将这行代码注释
## 训练(如果要训练则去掉下面一行的注释) # train_crack_captcha_cnn()
去掉这行代码的注释
# 测试(如果要测试则去掉下面一行的注释) crack_captcha()
测试结果如下:
0:226e,预测结果不正确1:228w,预测结果不正确
2:22b2,预测结果正确
3:22b4,预测结果正确
4:22eb,预测结果不正确
5:42w3,预测结果不正确
6:232f,预测结果正确
7:237a,预测结果正确
8:23m4,预测结果不正确
9:23nf,预测结果正确
10:246n,预测结果正确
11:24wc,预测结果正确
12:24w7,预测结果不正确
13:2574,预测结果正确
14:25a7,预测结果正确
15:25ex,预测结果不正确
16:25c4,预测结果正确
17:25e3,预测结果正确
18:25ec,预测结果不正确
19:35nx,预测结果不正确
20:26af,预测结果正确
21:26b5,预测结果正确
22:26dn,预测结果正确
23:26ey,预测结果不正确
24:26nb,预测结果正确
25:26ny,预测结果正确
26:26xe,预测结果正确
27:2788,预测结果不正确
28:27bg,预测结果正确
29:28e6,预测结果正确
30:2abb,预测结果正确
31:2an2,预测结果不正确
32:2bbn,预测结果正确
33:2c24,预测结果正确
34:2c83,预测结果正确
35:2cef,预测结果正确
36:2cwn,预测结果正确
37:2d25,预测结果正确
38:2dce,预测结果正确
39:2dd3,预测结果正确
40:2dxe,预测结果正确
。。。。。。
。。。。。。
(此处省略若干个结果)
。。。。。。
1300:ydge,预测结果正确
1301:yeew,预测结果不正确
1302:yf2n,预测结果正确
1303:xf5g,预测结果不正确
1304:yeny,预测结果不正确
1305:xwxg,预测结果不正确
1306:wmyw,预测结果不正确
1307:xn32,预测结果不正确
1308:yn3c,预测结果正确
1309:yn3w,预测结果正确
1310:yn58,预测结果正确
1311:ynnd,预测结果正确
1312:xnx7,预测结果不正确
1313:ynxa,预测结果正确
1314:xdba,预测结果不正确
1315:ype2,预测结果正确
1316:yw68,预测结果不正确
1317:ywe8,预测结果正确
1318:ywyc,预测结果正确
1319:yx2g,预测结果正确
1320:yx8f,预测结果正确
1321:yxen,预测结果正确
1322:yx3g,预测结果不正确
1323:xynn,预测结果不正确
正确率:695/1324
Process finished with exit code 0
最终训练的结果达到了50%左右的准确率。
0x03 总结
训练完之后进行测试,测试结果不满意修改参数,再训练,经过N多次的调整参数,准确率会慢慢的升高的。
经过连续几天的训练以及参数调整之后,达到50%准确率后我觉得可以部署到生产环境了。从下一篇博客开始部署生产环境了。
相关文章推荐
- TensorFlow识别复杂验证码以及搭建生产环境(2)—— 搭建训练环境
- TensorFlow识别复杂验证码以及搭建生产环境(4)—— 读取测试集
- TensorFlow识别复杂验证码以及搭建生产环境(3)—— 随机读取训练集
- TensorFlow识别复杂验证码以及搭建生产环境(9)—— 基于Java的调用
- TensorFlow识别复杂验证码以及搭建生产环境(1)—— 收集训练集
- TensorFlow识别复杂验证码以及搭建生产环境(8)—— 基于Python的调用
- TensorFlow识别复杂验证码以及搭建生产环境(5)—— 设计神经网络
- TensorFlow识别复杂验证码以及搭建生产环境(7)—— 使用TensorFlow-Serving部署生产环境
- Darknet yolo 环境搭建以及训练测试自己的数据集
- Ubuntu14.04+caffe+cuda7.5 环境搭建以及MNIST数据集的训练与测试
- TensorFlow实现人脸识别(3)------将得到的训练图片以及测试图片进行处理
- PHP com组件的使用 (环境搭建 以及测试)
- parlai环境搭建以及模型训练
- python图片(验证码)识别环境搭建(基于centos7)
- TensorFlow环境 人脸识别 FaceNet 应用(一)验证测试集
- MPI并行计算环境搭建以及集群测试
- Win7环境下Python3安装以及Django配置搭建测试
- Linux环境搭建ActiveQM以及简单测试
- tensorflow训练cnn网络实现避障与导航(二)V-rep仿真环境的搭建
- Hadoop-2.6.2 HA + Federation 生产环境集群搭建实例以及源码编译案例分享