python - 子类化 Keras 序列是否需要实现 __next__ 方法?
问题描述
Keras序列类文档说
Every Sequence must implement the __getitem__ and the __len__ methods. If you
want to modify your dataset between epochs you may implement on_epoch_end. The
method __getitem__ should return a complete batch.
然而, training_generator.pyfit_generator
中其他类似方法的源代码调用方法,生成器作为参数传递。根据我的理解,这意味着子类应该是一个需要实现方法的迭代器。next
Sequence
__next__
为了使用从Sequence
类似fit_generator
,predict_generator
等方法的子类化的类,是否需要实现__next__
方法?
解决方案
不,不需要实现__next__
,如果你仔细签fit_generator
入training_generator.py
,你会发现如果生成器是 的子类Sequence
,__next__
则使用了另一个 API,不用于序列。
这是这样实现的,因为 aSequence
可以被多个工作人员读取,这就是为什么它使用基于索引的 API 而不是像__next__
.
推荐阅读
- reactjs - AWS 中的 403 OPTIONS Cors 错误,预检请求
- html - 如何调整左div边框
- angular6 - 预填充 Angular 材质选择具有分组
- postgresql - CMD 无法运行 .exe 并且在代码块中包含外部库 不使用构建选项
- python - Python多线程套接字服务器无法接收来自2个用户的消息
- javascript - 如何从数组 1 中删除项目并将项目推送到数组 2
- python-3.x - 查找从python中的点列表创建的两条线的交点
- javascript - 菜单不会消失
- azure - Asp.net core 从 azure cloud blob 段中获取所有文件
- reactjs - 组件销毁后撤消 API 调用