【问题标题】:Error when implementing tensorflow high level api实现 tensorflow 高级 api 时出错
【发布时间】:2018-05-03 02:51:57
【问题描述】:

我正在尝试实现提供高级 API 的张量流,特别是基线分类器。但是,当尝试训练模型时,我得到以下

错误:

NotFoundError (see above for traceback): Key baseline/bias not found in checkpoint
     [[Node: save/RestoreV2 = RestoreV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save/Const_0_0, save/RestoreV2/tensor_names, save/RestoreV2/shape_and_slices)]]

代码:

import tensorflow as tf
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split

def digit_cross():
    # Number of classes, one class for each of 10 digits.
    num_classes = 10

    digit = datasets.load_digits()
    x = digit.data
    y = digit.target
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=.3, random_state=42)
    y_train_index = np.arange(y_train.size)

    train_input_fn = tf.estimator.inputs.numpy_input_fn(
        x={"x": np.array(x_train)},
        y=np.array(y_train),
        num_epochs=None,
        shuffle=False)

    # Build BaselineClassifier
    classifier = tf.estimator.BaselineClassifier(n_classes=num_classes,
                                                 model_dir="./checkpoints_tutorial17-1/")

    # Fit model.
    classifier.train(train_input_fn)

digit_cross()

【问题讨论】:

    标签: tensorflow machine-learning deep-learning tensor


    【解决方案1】:

    您在model_dir="./checkpoints_tutorial17-1/" 中似乎有一个检查点,它来自另一个模型,而不是来自 BaselineClassifier。具体来说,您在该文件夹中有一个检查点文件和 model.ckpt-* 文件。

    正如 tensorflow 记录的那样:

    • model_dir:保存模型参数、图形等的目录。这也可用于将检查点从目录加载到估计器中,以继续训练先前保存的模型。 如果是 PathLike 对象,则路径将被解析。如果设置为 None,则将使用 config 中的 model_dir。如果两者都设置,则它们必须相同。如果两者都没有,将使用一个临时目录。

    在这里,BaselineClassifier 将首先构建一个使用baseline/bias 的图形。然后它发现model_dir中有一个先前的检查点。它会尝试加载这个检查点,你应该会看到一个信息(如果你已经完成了tf.logging.set_verbosity(tf.logging.INFO)),上面写着类似

    "INFO:tensorflow:Restoring parameters from .../checkpoints_tutorial17-1\model.ckpt-..."
    

    因为model_dir 中的这个检查点不是来自BaselineClassifier,所以它不会有baseline/biasBaselineClassifier 找不到它,因此会抛出错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 2020-01-18
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      相关资源
      最近更新 更多