Machine learning 为什么可以';我不能恢复这个模型吗?

Machine learning 为什么可以';我不能恢复这个模型吗?,machine-learning,tensorflow,Machine Learning,Tensorflow,我目前无法恢复此模型以进行预测 代码: def神经网络(数据): 使用tf.name_范围(“网络”): layer1=tf.layers.dense(数据,1000,激活=tf.nn.relu,name=“hidden_layer1”) layer2=tf.layers.dense(layer1,1000,activation=tf.nn.relu,name=“hidden_layer2”) 输出=tf.layers.dense(第2层,第2层,name=“输出层”) 返回输出 def eva

我目前无法恢复此模型以进行预测

代码:

def神经网络(数据):
使用tf.name_范围(“网络”):
layer1=tf.layers.dense(数据,1000,激活=tf.nn.relu,name=“hidden_layer1”)
layer2=tf.layers.dense(layer1,1000,activation=tf.nn.relu,name=“hidden_layer2”)
输出=tf.layers.dense(第2层,第2层,name=“输出层”)
返回输出
def evaluate():
具有tf.name_范围(“损失”):
全球x
xentropy=tf.nn.softmax_交叉_熵_与_logits(标签=y,logits=神经网络(x))
损失=tf.减少平均值(xentropy,name=“损失”)
具有tf.name_范围(“列车”):
优化器=tf.train.AdamOptimizer()
培训=优化器。最小化(损失)
使用tf.name_范围(“exec”):
使用tf.Session()作为sess:
对于范围(1,10)内的i:
sess.run(tf.global\u variables\u initializer())
run(training_op,feed_dict={x:np.array(train_数据)。重塑([-1,1]),y:label})
打印“培训”+str(一)
saver=tf.train.saver()
保存(sess,“保存的模型/测试”)
打印“已保存模型”
def predict():
使用tf.name_范围(“预测”):
输出=神经网络(x)
输出=tf.nn.softmax(输出)
使用tf.Session()作为sess:
saver=tf.train.import\u元图(“saved\u models/testing.meta”)
#saver=tf.train.saver()
saver.restore(sess,“已保存的模型/测试”)
打印sess.run(输出,提要={x:np.array([12003])。重塑([-1,1]))
我曾尝试使用
tf.train.Saver()
进行恢复,但也出现了相同的错误

The error given is ValueError: Variable hidden_layer1/kernel already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at:
我已尝试为
tf.layers.dense()
设置
reuse=True
,但这导致我无法训练图形(给出与上述相同的值错误,但要求设置
reuse=None

我猜这与会话中仍然存在的图形有关,因此当我尝试恢复它时,它会检测到一个重复的图形。然而,我认为这不应该发生,因为会议已经结束


链接到整个代码:

我认为您正在同一个图形中加载变量。对于测试,请尝试创建一个新图形并加载它。这样做:

loaded_graph=tf.graph()
将tf.Session(graph=loaded_graph)作为sess:
#用经过训练的状态加载图形

你是说像这样修改我的predict()吗?
def predict():使用tf.name\u scope(“predict”):output=neural\u network(x)output=tf.nn.softmax(output)loaded\u graph=tf.graph(),tf.Session(loaded\u graph)作为sess:saver=tf.train.import\u元图(“saved\u models/testing.meta”)#saver=tf.train.saver()saver.restore(sess,“saved_models/testing”)打印sess.run(output,feed_dict={x:np.array([12003])。重塑([-1,1])}
不是你的计算机,而是你的内核我对tensorflow还是很陌生。你的意思是tensorflow内核,对吗?如果有帮助的话,我还在文章中添加了整个代码的链接。