Python TensorFlow储蓄模型-自相矛盾的例外
我试图保存一个基本的MNIST模型:Python TensorFlow储蓄模型-自相矛盾的例外,python,tensorflow,save,Python,Tensorflow,Save,我试图保存一个基本的MNIST模型: from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data', one_hot=True) import tensorflow as tf sess = tf.InteractiveSession() x = tf.placeholder(tf.float32, shape=[None, 784]) y_ =
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
import tensorflow as tf
sess = tf.InteractiveSession()
x = tf.placeholder(tf.float32, shape=[None, 784])
y_ = tf.placeholder(tf.float32, shape=[None, 10])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
saver = tf.train.Saver()
sess.run(tf.global_variables_initializer())
y = tf.matmul(x, W) + b
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels = y_, logits = y))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
saver.save(sess, './mnist_to-save-saved')
for _ in range(1000):
batch = mnist.train.next_batch(100)
train_step.run(feed_dict={x: batch[0], y_: batch[1]})
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
saver.save(sess, '/mnist-to-save-saved', global_step=1000)
print(accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
它似乎部分起作用,因为在生成此model.py文件的同一目录中,生成了一些文件:
mnist_to-save-daved.index
mnist_to-save_saved.meta
mnist_to-save.saved.data-00000-of-00001
checkpoint
我只能访问“检查点”文件的内容,即:
model_checkpoint_path: "mnist_to-save-saved"
all_model_checkpoint_paths: "mnist_to-save-saved"
我的问题是,在执行培训模型文件时,为什么我同时得到这个错误跟踪,以及如何修复它
C:\Users\username\Anaconda3\envs\tensorflowenv\python.exe C:/Users/username/PycharmProjects/estimator/mnist-to-save.py
Extracting MNIST_data\train-images-idx3-ubyte.gz
Extracting MNIST_data\train-labels-idx1-ubyte.gz
Extracting MNIST_data\t10k-images-idx3-ubyte.gz
Extracting MNIST_data\t10k-labels-idx1-ubyte.gz
2018-04-15 18:22:39.959614: W C:\tf_jenkins\home\workspace\rel-win\M\windows\PY\35\tensorflow\core\framework\op_kernel.cc:1192] Permission denied: Failed to create a directory: /; Permission denied
Traceback (most recent call last):
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\client\session.py", line 1323, in _do_call
return fn(*args)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\client\session.py", line 1302, in _run_fn
status, run_metadata)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 473, in __exit__
c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.PermissionDeniedError: Failed to create a directory: /; Permission denied
[[Node: save/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save/Const_0_0, save/SaveV2/tensor_names, save/SaveV2/shape_and_slices, Variable, Variable_1)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/username/PycharmProjects/estimator/mnist-to-save.py", line 28, in <module>
saver.save(sess, '/mnist-to-save-saved', global_step=1000)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\training\saver.py", line 1573, in save
{self.saver_def.filename_tensor_name: checkpoint_file})
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\client\session.py", line 889, in run
run_metadata_ptr)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\client\session.py", line 1120, in _run
feed_dict_tensor, options, run_metadata)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\client\session.py", line 1317, in _do_run
options, run_metadata)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\client\session.py", line 1336, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.PermissionDeniedError: Failed to create a directory: /; Permission denied
[[Node: save/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save/Const_0_0, save/SaveV2/tensor_names, save/SaveV2/shape_and_slices, Variable, Variable_1)]]
Caused by op 'save/SaveV2', defined at:
File "C:/Users/username/PycharmProjects/estimator/mnist-to-save.py", line 11, in <module>
saver = tf.train.Saver()
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\training\saver.py", line 1218, in __init__
self.build()
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\training\saver.py", line 1227, in build
self._build(self._filename, build_save=True, build_restore=True)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\training\saver.py", line 1263, in _build
build_save=build_save, build_restore=build_restore)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\training\saver.py", line 748, in _build_internal
save_tensor = self._AddSaveOps(filename_tensor, saveables)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\training\saver.py", line 296, in _AddSaveOps
save = self.save_op(filename_tensor, saveables)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\training\saver.py", line 239, in save_op
tensors)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\ops\gen_io_ops.py", line 1162, in save_v2
shape_and_slices=shape_and_slices, tensors=tensors, name=name)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\framework\ops.py", line 2956, in create_op
op_def=op_def)
File "C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site-packages\tensorflow\python\framework\ops.py", line 1470, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
PermissionDeniedError (see above for traceback): Failed to create a directory: /; Permission denied
[[Node: save/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save/Const_0_0, save/SaveV2/tensor_names, save/SaveV2/shape_and_slices, Variable, Variable_1)]]
Process finished with exit code 1
C:\Users\username\Anaconda3\envs\tensorflowenv\python.exe C:/Users/username/PycharmProjects/estimator/mnist-to-save.py
提取MNIST_数据\train-images-idx3-ubyte.gz
提取MNIST_数据\train-labels-idx1-ubyte.gz
提取MNIST_数据\t10k-images-idx3-ubyte.gz
提取MNIST_数据\t10k-labels-idx1-ubyte.gz
2018-04-15 18:22:39.959614:W C:\tf_jenkins\home\workspace\rel win\M\windows\PY\35\tensorflow\core\framework\op_kernel.cc:1192]权限被拒绝:创建目录失败:/;拒绝许可
回溯(最近一次呼叫最后一次):
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\client\session.py”,第1323行,在调用中
返回fn(*args)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\client\session.py”,第1302行,在\u run\u fn中
状态,运行(元数据)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\framework\errors\u impl.py”,第473行,在退出中__
c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.PermissionDeniedError:未能创建目录:/;拒绝许可
[[Node:save/SaveV2=SaveV2[dtypes=[DT_FLOAT,DT_FLOAT],[u device=“/job:localhost/replica:0/task:0/device:CPU:0”]([u arg_save/Const_0_0,save/SaveV2/tensor_名称,save/SaveV2/shape_和_切片,变量,变量_1)]]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:/Users/username/PycharmProjects/estimator/mnist to save.py”,第28行,在
saver.save(sess,/mnist to save save),全局步骤=1000)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\training\saver.py”,第1573行,保存
{self.saver_def.filename_tensor_name:checkpoint_file})
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\client\session.py”,第889行,正在运行
运行_元数据_ptr)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\client\session.py”,第1120行,正在运行
feed_dict_tensor、options、run_元数据)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\client\session.py”,第1317行,在运行中
选项,运行(元数据)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\client\session.py”,第1336行,在调用中
提升类型(e)(节点定义、操作、消息)
tensorflow.python.framework.errors_impl.PermissionDeniedError:未能创建目录:/;拒绝许可
[[Node:save/SaveV2=SaveV2[dtypes=[DT_FLOAT,DT_FLOAT],[u device=“/job:localhost/replica:0/task:0/device:CPU:0”]([u arg_save/Const_0_0,save/SaveV2/tensor_名称,save/SaveV2/shape_和_切片,变量,变量_1)]]
由op“save/SaveV2”引起,定义于:
文件“C:/Users/username/PycharmProjects/estimator/mnist to save.py”,第11行,在
saver=tf.train.saver()
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\training\saver.py”,第1218行,在uu init中__
self.build()
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\training\saver.py”,第1227行,内部版本
self.\u build(self.\u文件名,build\u save=True,build\u restore=True)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\training\saver.py”,第1263行,在\u build中
生成保存=生成保存,生成还原=生成还原)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\training\saver.py”,第748行,在内部版本中
save\u tensor=self.\u AddSaveOps(文件名\u tensor,可保存项)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\training\saver.py”,第296行,在_AddSaveOps中
save=self.save\u op(文件名\u张量,可保存项)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\training\saver.py”,第239行,保存在
张量)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\ops\gen\u io\u ops.py”,第1162行,在save\u v2中
形状和切片=形状和切片,张量=张量,名称=名称)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\framework\op_def_library.py”,第787行,位于_apply_op_helper中
op_def=op_def)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\framework\ops.py”,第2956行,位于create\u op
op_def=op_def)
文件“C:\Users\username\Anaconda3\envs\tensorflowenv\lib\site packages\tensorflow\python\framework\ops.py”,第1470行,在uu init中__
self._traceback=self._graph._extract_stack()35; pylint:disable=protected access
PermissionDeniedError(回溯请参见上文):无法创建目录:/;拒绝许可
[[Node:save/SaveV2=SaveV2[dtypes=[DT_FLOAT,DT_FLOAT],[u device=“/job:localhost/replica:0/task:0/device:CPU:0”]([u arg_save/Const_0_0,save/SaveV2/tensor_名称,save/SaveV2/shape_和_切片,变量,变量_1)]]
进程已完成,退出代码为1
它似乎保存了预先训练过的mdel,但在训练中效果不佳。以下是您的代码摘录
saver.save(sess, './mnist_to-save-saved')
for _ in range(1000):
batch = mnist.train.next_batch(100)
train_step.run(feed_dict={x: batch[0], y_: batch[1]})
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
saver.save(sess, '/mnist-to-save-saved', global_step=1000)
问题
最后一行有saver.save(sess),/mnist to save save'
,可能应该是saver.save(sess),/mnist to save save'
这很可能是导致问题的原因W C:\tf\u jenkins\home\workspace\rel win\M\windows\PY\35\tensorflow\core\framework\op\u kernel.C
TF_SAVE_FILE = './mnist-to-save-saved'