【问题标题】:Why I am getting DatasetV1Adapter return type instead of TensorSliceDataset for tf.data.Dataset.from_tensor_slices(X)为什么我得到 DatasetV1Adapter 返回类型而不是 tf.data.Dataset.from_tensor_slices(X) 的 TensorSliceDataset
【发布时间】:2019-07-10 05:29:07
【问题描述】:

我只是按照“使用 scikit-learn 和 tensorflow 进行机器学习实践”一书中的代码示例。

import tensorflow as tf

X = tf.range(10)
dataset = tf.data.Dataset.from_tensor_slices(X)

根据这本书,我应该得到变量“数据集”的类型“TensorSliceDataset 形状:(),类型:tf.int32”,但我得到的是“DatasetV1Adapter 形状:(),类型:tf.int32”

【问题讨论】:

  • 我发现同样的事情。我正在使用一个简单的TFRecordDataset() 管道,虽然TFRecordDataset() 构造函数确实返回了一个TFRecordDataset 对象,但只要我应用map() 操作,我就开始将DatasetV1Adapter 作为所有剩余的结果对象结果。不知道为什么会这样,但看起来很正常。
  • 我在使用 tf 版本 1.14.0 时遇到了同样的问题。 <DatasetV1Adapter shapes: (), types: tf.int32>
  • 你需要建议你正在使用的tensorflow版本号。较新的版本显示正确的数据类型。
  • tf.data.Dataset.list_files() 的问题相同。我得到一个 。使用 TensorFlow 2.0

标签: python tensorflow machine-learning


【解决方案1】:

根据他们的文档,如果您使用的是 tf 2.0(或更低版本),它不支持 TensorSliceDataset,并且会给您 DatasetV1Adapter https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/raw_ops

您将需要 TF 2.1.x 及更高版本

【讨论】:

  • DatasetV1Adapter 的文档吗?我没找到
【解决方案2】:

您的 TensorFlow 版本可能与书中使用的版本不同。我在运行 this notebook 时遇到了类似的问题,并与我在本地运行的机器进行了比较,直到我使用 pip 而不是 anaconda 版本安装了最新版本的 TensorFlow。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-09
    • 2021-01-06
    • 2016-01-13
    • 1970-01-01
    • 2020-09-02
    • 2018-04-10
    • 2022-07-22
    • 1970-01-01
    相关资源
    最近更新 更多