操作类型未注册'BatchDatasetV2'

时间:2018-08-17 21:35:24

标签: google-cloud-tpu

我正在尝试训练模型,并正在使用tf.contrib.data.batch_and_drop_remainder准备我的数据集。当我运行estimator.train时,出现以下错误:

  

NotFoundError:Op类型未在二进制文件中注册“ BatchDatasetV2”   在n-be8b2535-w-0上运行。确保操作和内核已注册   在此过程中运行的二进制文件。请注意,如果您正在加载   使用tf.contrib中的ops的已保存图形,访问(例如)   tf.contrib.resampler应该在导入图形之前完成,因为   首次访问该模块时会延迟注册contrib ops。

我不是要从保存的图形中运行,而是要确保我使用的是新的model_dir。我该如何解决?这仅在我在TPU上运行时发生。在CPU上运行正常。

1 个答案:

答案 0 :(得分:1)

如果您的VM和TPU上的Tensorflow版本不同,则会出现此错误。通过运行以下命令检查VM上的版本:

    import tensorflow
    print tensorflow.__version__

通过转到GCP控制台上的TPU页面,检查TPU上的版本: https://console.cloud.google.com/compute/tpus

通过pip设置VM上的tensorflow版本。因此,如果要将VM tensorflow版本设置为1.9,请运行:

    pip install tensorflow==1.9