首页 > 解决方案 > 使用 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中可见。

我已经尝试了以下步骤:

有谁知道,如何解决这个问题,或者我做错了什么?

编辑:

打开描述该错误的GitHub 问题。

如果有人对使用 decode_raw 的解决方法感兴趣,请查看此stackoverflow 答案

标签: tensorflowtf.kerastfrecordtf.data.dataset

解决方案


推荐阅读