Tensorflow 张量流中的恢复误差

Tensorflow 张量流中的恢复误差,tensorflow,deep-learning,convolutional-neural-network,Tensorflow,Deep Learning,Convolutional Neural Network,我是tensorflow的初学者,当时我正在尝试使用convnet进行图像识别。但是在保存模型后,在恢复模型时出现了一个错误 这是我的张量图组件-> Y_train = to_categorical(y_train,num_classes=4) Y_test = to_categorical(y_test,num_classes=4) X = tf.placeholder(tf.float32, shape=(None, 64,64,3)) Y = tf.placeholder(tf.floa

我是tensorflow的初学者,当时我正在尝试使用convnet进行图像识别。但是在保存模型后,在恢复模型时出现了一个错误

这是我的张量图组件->

Y_train = to_categorical(y_train,num_classes=4)
Y_test = to_categorical(y_test,num_classes=4)

X = tf.placeholder(tf.float32, shape=(None, 64,64,3))
Y = tf.placeholder(tf.float32, shape=(None, 4))

w1 = tf.get_variable("w1", [4,4,3,8], initializer = tf.contrib.layers.xavier_initializer(seed = 0))
w2 = tf.get_variable("w2", [2,2,8,16], initializer = tf.contrib.layers.xavier_initializer(seed = 0))


Z1 = tf.nn.conv2d(X,w1, strides = [1,1,1,1], padding = 'SAME')
A1 = tf.nn.relu(Z1)
P1 = tf.nn.max_pool(A1, ksize = [1,8,8,1], strides = [1,8,8,1], padding = 'SAME')
Z2 = tf.nn.conv2d(P1,w2, strides = [1,1,1,1], padding = 'SAME')
A2 = tf.nn.relu(Z2)
P2 = tf.nn.max_pool(A2, ksize = [1,4,4,1], strides = [1,4,4,1], padding = 'SAME')
P2 = tf.contrib.layers.flatten(P2) 
Z3 = tf.contrib.layers.fully_connected(P2,4,activation_fn=None)

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = Z3, labels = Y))


optimizer = tf.train.AdamOptimizer(0.004).minimize(cost)
这是一个基本的convnet,我已经成功地进行了培训和测试。 然而,我面临的问题是,在完成所有历代的培训之后,如何保存此模型,以便在某个文件中再次使用它(比如predict.py),我可以在其中导入它并进行预测

所以我读了一些关于“保存和恢复”的博客,并这样做了,但后来我发现了下面提到的错误

尝试使用未初始化的值完全连接/偏置[[节点: 完全连接/偏置/读取=标识Y=DT\U浮动, _device=“/job:localhost/replica:0/task:0/device:CPU:0”]]


因此,鉴于convnet,我应该如何使用该模型?是否有人可以为模型文件和预测文件提供工作代码。

请提供一个最小、完整且可验证的示例:很抱歉不方便,我已修改了问题。问题是我甚至无法理解问题到底出在哪里,所以我甚至列出了我真正打算做的事情。这就是我试图使用的
tf.global\u variables\u initializer()