tensorflow - 具有恒定大小批次的 tf.data.Dataset
问题描述
我有一个包含 19 个元素和批量大小为 10 的数据集。我将数据集设置为连续迭代相同的元素,但我注意到最后一批只有 4 个元素而不是 5 个,然后从 5、5、 5、4 等等。
如何强制迭代器用来自下一次迭代的元素填充较短的批次,以便所有批次具有相同的大小?
PS只是为了理解,这不是训练模型时的明显行为吗?
解决方案
要具有此行为,.repeat()
应在batch()
or之前调用该方法padded_batch()
。所以:
file_names = [...]
def my_map_func(record):
....
dataset = tf.data.TFRecordDataset(file_names)\
.map(map_func=my_map_func)\
.repeat()\ # here!
.batch(5)
推荐阅读
- open-policy-agent - 开放策略代理 - 如何从 REST API 持久化策略?
- reactjs - GraphQL + Redux + JWT 用户认证
- c - 为什么将 char 变量的地址传递给标准的 read() 函数?
- javascript - 从 .map 函数中获取 key{index} 属性以响应被点击的元素
- c++ - C++ 类获取输入
- r - 如何在 Tanakaplot 上绘制点(例如绘制 ggplot)?
- vb.net - 在 vb.net 中使用公钥加密与通过 jsencrypt 加密产生的结果大不相同
- swift - ToolbarItem 中按钮中图像的可访问性
- azure - 我需要更改 Azure 应用服务中的哪些设置以允许在 App_Offline 中使用 base64 图像?
- ssh - ssh:连接到主机 4.12.678.96 端口 22:操作超时