tensorflow - 使用 TFRecords 进行 Tensorflow2 训练:ValueError:as_list() 未在未知的 TensorShape 上定义
问题描述
我有一个关于 TFRecords 以及如何用它们训练 tf.keras 模型的问题。为此,我构建了一个玩具示例,加载 iris 数据集,将数据写入 TFRecord,将其读回并尝试训练我在教程中找到的简单 MLP。
对于 TFRecords 的编码/写入/读取/解码,我主要遵循官方Tutorial。
据我所知,我可以恢复原始数据,所以我认为我将数据集插入 MLP,因为fit 方法应该能够与 tf.data 数据集一起使用,但我收到以下错误(缩写):
ValueError: as_list() is not defined on an unknown TensorShape.
代码和完整的错误应该在这个 gist中可见。
我已经尝试了以下步骤:
- 在原始数据上运行模型(作品)
- 检查数据(似乎重建正确)
- 尝试在解码中显式设置张量形状(即使 tf.io.parse_tensor 不需要这样做)
有谁知道,如何解决这个问题,或者我做错了什么?
编辑:
打开描述该错误的GitHub 问题。
如果有人对使用 decode_raw 的解决方法感兴趣,请查看此stackoverflow 答案
解决方案
推荐阅读
- ansible - Ansible:具有相同yaml结构的多个vars_file不合并
- pandas - 如何在没有“应用”的情况下将复杂的函数应用到列上?
- c++ - 使用堆排序对字符串进行排序 | C++
- android - 我们应该在 Kotlin 中绑定 android 视图吗?
- oracle-sqldeveloper - 如何让“文件部分”显示在 Oracle SQL Developer 的左侧?
- reactjs - 在反应js中创建没有按下按钮的Toast消息
- java - Spring SPEL 集合投影
- puppeteer - 无法检索 href url 属性
- javascript - 如何连接 MongoDb 模型
- python-3.x - 如何将敏感数据保留在日志之外?