如何使用张量流估计器



我正在按照这个关于创建卷积神经网络的Tensorflow教程进行操作。

我正在读取训练和测试数据的步骤:

def main(unused_argv):
mnist = learn.datasets.load_dataset("mnist")
train_data = mnist.train.images # Returns np.array
train_labels = np.asarray(mnist.train.labels, dtype=np.int32)
eval_data = mnist.test.images # Returns np.array
eval_labels = np.asarray(mnist.test.labels, dtype=np.int32)

到这里为止,一切都很好。

但随后突然创建了一个估计器:

mnist_classifier = learn.Estimator(
model_fn=cnn_model_fn, model_dir="/tmp/mnist_convnet_model")

我的问题是:

  1. 什么是估算器?

  2. 前面的代码不会在"/tmp/mnist_convnet_model"下保存任何内容。为什么在该目录下保存了一个模型? 它是如何到达那里的?

编辑:

当我运行代码时,我得到:

Couldn't find trained model at ../tmp/mnist_convnet_model. 

这是因为在该目录结构下找不到模型。

如何将模型放在那里?另外,为什么我必须把它放在那里,而不是将其存储在内存中以执行脚本。

第一个问题在教程中得到了回答。估算器是"用于执行高级模型训练、评估和推理的 TensorFlow 类"。

第二个问题的答案是不,尚未将任何内容保存到该目录中。估算器对象将使用此目录来保存训练检查点、日志等。首次运行此代码时,它不会加载任何内容。但是一旦你训练了模型,它将从那里加载保存的状态。

最新更新