【发布时间】:2017-07-04 02:55:32
【问题描述】:
每当我尝试使用tf.reset_default_graph() 时,都会收到此错误:IndexError: list index out of range 或 ``。我应该在代码的哪一部分使用它?我应该什么时候使用它?
编辑:
我更新了代码,但仍然出现错误。
def evaluate():
with tf.name_scope("loss"):
global x # x is a tf.placeholder()
xentropy = tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=neural_network(x))
loss = tf.reduce_mean(xentropy, name="loss")
with tf.name_scope("train"):
optimizer = tf.train.AdamOptimizer()
training_op = optimizer.minimize(loss)
with tf.name_scope("exec"):
with tf.Session() as sess:
for i in range(1, 2):
sess.run(tf.global_variables_initializer())
sess.run(training_op, feed_dict={x: np.array(train_data).reshape([-1, 1]), y: label})
print "Training " + str(i)
saver = tf.train.Saver()
saver.save(sess, "saved_models/testing")
print "Model Saved."
def predict():
with tf.name_scope("predict"):
tf.reset_default_graph()
with tf.Session() as sess:
saver = tf.train.import_meta_graph("saved_models/testing.meta")
saver.restore(sess, "saved_models/testing")
output_ = tf.get_default_graph().get_tensor_by_name('output_layer:0')
print sess.run(output_, feed_dict={x: np.array([12003]).reshape([-1, 1])})
def main():
print "Starting Program..."
evaluate()
writer = tf.summary.FileWriter("mygraph/logs", tf.get_default_graph())
predict()
如果我从更新的代码中删除 tf.reset_default_graph(),我会收到以下错误:ValueError: cannot add op with name hidden_layer1/kernel/Adam as that name is already used
根据我目前的理解,tf.reset_default_graph() 会删除所有图表,因此我避免了上面提到的错误(ValueError: cannot add op with name hidden_layer1/kernel/Adam as that name is already used)
【问题讨论】:
标签: machine-learning tensorflow