TypeError: can't pickle _thread.lock objects (第6章,训练 cifar10数据 预测时报错)
来源:6-13 模型训练与预测
jandy_chen
2020-01-11
如下截图:(这个数据集,我用有一个普通的1070GPU 训练30个epochs 大概用了45分钟,use_multiprocessing =True 时,报如下截图错误,请问如何解决????。。当我把 它设为false 这一步好几个小时也过不去,,进展什么情况也不知,我去看文档有个 verbose参数,设置了也没有运行过程的可以显示),另请问有一下,您works=10 时,这一步执行30万张图片的预测大概花费多长时间???
写回答
1回答
-
同学你好,抱歉晚回复了。
这个问题的根源在于,使用多线程后,需要给子线程分发参数,对于有无法pickle的参数的generator,就会报这个错误。https://stackoverflow.com/questions/56447556/typeerror-cant-pickle-thread-lock-objects-when-training-keras-model
也是类似的说法,需要generator中的参数可以pickle。
个人感觉是tf.keras里的generator实现的有问题,也试了不少方法想解决,还没有成功。先回复你一下。如果解决了再来更新。
我用的P100,没有试多线程,印象中单线程已经挺快的了,具体可能是半个小时左右(有点记不清了)。
112020-05-05
相似问题