概述
使用Keras如果要使用大规模数据集对网络进行训练,就没办法先加载进内存再从内存直接传到显存了,除了使用Sequence类以外,还可以使用迭代器去生成数据,但迭代器无法在fit_generation里开启多进程,会影响数据的读取和预处理效率,在本文中就不在叙述了,有需要的可以另外去百度。
下面是我所使用的代码
?
然后在代码里通过fit_generation函数调用并训练
这里要注意,use_multiprocessing参数是是否开启多进程,由于python的多线程不是真的多线程,所以多进程还是会获得比较客观的加速,但不支持windows,windows下python无法使用多进程。
?
同样的,也可以在测试的时候使用
model.evaluate_generator(generator=SequenceData('face_test.csv'),steps=int(125100/32),workers=32)
补充知识:keras数据自动生成器,继承keras.utils.Sequence,结合fit_generator实现节约内存训练
我就废话不多说了,大家还是直接看代码吧~
?
以上这篇keras使用Sequence类调用大规模数据集进行训练的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_22033759/article/details/88798423
最后
以上就是慈祥水壶为你收集整理的python调用数据集_keras使用Sequence类调用大规模数据集进行训练的实现的全部内容,希望文章能够帮你解决python调用数据集_keras使用Sequence类调用大规模数据集进行训练的实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复