我正在尝试训练模型,并正在使用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上运行正常。
答案 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