tfrecord开启多线程

作者: 菜田的守望者w | 来源:发表于2019-05-16 21:46 被阅读0次

关于什么时候使用在tfrecord文件方面上使用多线程问题,tensorflow封装了一套对tfrecord多进程读写消费逻辑,训练进程与数据准备进程分离。最大限度的加快了训练过程。对于大量的数据来说使用tfrecord文件是再好不过了。之前初学使用过直接把所用数据都放进去训练,内存直接MEMORY ERROR。在使用tfrecord时有时候也会报错。

Process finished with exit code -1073741819 (0xC0000005)

像这样的错误原因可以在这里https://blog.csdn.net/tz_zs/article/details/77427842找到答案。

这个错在百度上找了很多也没有解决,相对于来说减少batch_size也许会解决这个问题,这只是当你的batch_size确实比较大的时候是比较有用的,那么你设置的batch_size并不太大但是仍然会这样报错,就要考虑下多线程了,对于多线程的概念自己百度。

多线程的使用主要是用来处理程序“在一部分上会阻塞”,“在另一部分上需要持续运行”的场合。一般是根据需求,可以用多线程,事件触发,callback等方法达到。但是有一些方法是只有多线程能办到的就只有用多线程或者多进程来完成。

举个简单的例子,能理解就行。假设有这样一个程序,

1会不停的处理收到的所有TCP请求。对于每个TCP请求做不同的操作。不能有遗漏

2有很多特定的请求会向一个服务器发送存储的数据,或者是等待用户输入。

来看看。第1个要求很简单。用个while循环就搞定了。但第2个特性呢。一旦在等待用户输入或者是连接服务器时,程序会“阻塞”一段时间,这一段时间内就无法处理其他的TCP请求了。

所以可以利用多线程,每个线程处理不同的TCP请求。这样程序就不会“阻塞”掉了。

我尝试开启线程后发现解决了许多天解决不了的问题。

                                                                                                                                                                                                        未完待续..........

相关文章

  • tfrecord开启多线程

    关于什么时候使用在tfrecord文件方面上使用多线程问题,tensorflow封装了一套对tfrecord多进程...

  • 第43周学习总结——im2txt

    上周学习任务没有完成,这周终于完成了。主要的内容有: 重新学习了使用TFRecord、多线程输入数据处理 看了te...

  • (Tensorflow)TFRecord样例程序读写

    一:TFRecord样例程序读 二:TFRecord样例程序写

  • SpringBoot 多线性开发

    SpringBoot 多线程 1. 启动类开启多线程支持 使用 @EnableAsync 来开启 Springbo...

  • tfrecord处理数据&编解码多个tfrecord文件

    一 : 选择tfrecord的好处 对于数据量大的时候可以采用多线程处理数据,例如可以一个线程处理数据,另一个做训...

  • django 多线程 + uWSGI 多线程 遇到的坑

    当django中使用了多线程时,由于uwsgi默认不开启多线程,所以我们需要为uwsgi手动开启多线程。 闲言少叙...

  • (1)如何开启多线程

    前言 学习java多线程首先就是要知道如何开启多线程.在java中开启多线程主要有两种方式: 继承Thread类,...

  • tfrecord文件读写

    将数据集保存为tfrecord文件 tensorflow读取tfrecord文件用于网络训练 参考文章:Tenso...

  • TFRecord

    TFRecord 是 TensorFlow 提供的用于高速读取数据的文件格式。该post介绍了如何将数据转换为TF...

  • 多线程底层原理

    1.多线程技术方案: 2.performSelector要开启RunLoop才能开启 3.多读单写多线程: 异步...

网友评论

    本文标题:tfrecord开启多线程

    本文链接:https://www.haomeiwen.com/subject/hzgwaqtx.html