恢复张量流模型并使用inpu运行

2024-04-23 11:16:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型,它接受int输入x,并创建大小为x的向量的均值和方差。 我可以保存此模型,但要恢复,请通过传递x值来运行它。我也可以恢复,但不知道如何执行后,行

saver.restore(sess, './mean_var.ckpt')

对于不同的x。我可以用feed_dict来做这个吗?请帮我修一下

import tensorflow as tf
def mean_var(x):
    vec = tf.random_normal([x])
    mean, variance = tf.nn.moments(vec, [0], keep_dims=True)
    return  mean, variance 
with tf.Graph().as_default():
    x = tf.placeholder(tf.int32)
    output = mean_var(x)
    init = tf.initialize_all_variables()
    _ = tf.Variable(initial_value='fake_variable')
    saver = tf.train.Saver()


    with tf.Session() as sess:
        sess.run(init)
        sess.run(_.initializer)
        #val = sess.run(output, feed_dict={x: 4})
        #print(val[0], val[1])
        save_path = saver.save(sess, "./mean_var.ckpt")

tf.reset_default_graph()

with tf.Graph().as_default():
    init = tf.initialize_all_variables()
    _ = tf.Variable(initial_value='fake_variable')
    saver = tf.train.Saver()
    with tf.Session() as sess:
        sess.run(init)
        sess.run(_.initializer)
        saver.restore(sess, './mean_var.ckpt')

Tags: run模型defaultinitvartfasfeed
1条回答
网友
1楼 · 发布于 2024-04-23 11:16:35

使用此选项可恢复和预测:

with tf.Graph().as_default():
    with tf.Session() as sess:
        saver = tf.train.import_meta_graph('./mean_var.ckpt.meta')
        saver.restore(sess, tf.train.latest_checkpoint('./'))
        graph = tf.get_default_graph()
        x = graph.get_tensor_by_name("x:0")   
        output = mean_var(x)
        y_pred = sess.run(output, feed_dict={x:4})
        print(y_pred)

还有一件事是给占位符x命名,如下所示:

x = tf.placeholder(tf.int32, name="x")

完整代码:

import tensorflow as tf
def mean_var(x):
    vec = tf.random_normal([x])
    mean, variance = tf.nn.moments(vec, [0], keep_dims=True)
    return  mean, variance 

with tf.Graph().as_default():
    x = tf.placeholder(tf.int32, name="x")
    output = mean_var(x)
    init = tf.initialize_all_variables()
    _ = tf.Variable(initial_value='fake_variable')
    saver = tf.train.Saver()


    with tf.Session() as sess:
        sess.run(init)
        sess.run(_.initializer)
        val = sess.run(output, feed_dict={x: 4})
        print(val[0], val[1])
        save_path = saver.save(sess, "./mean_var/mean_var.ckpt")

tf.reset_default_graph()

with tf.Graph().as_default():
    with tf.Session() as sess:
        saver = tf.train.import_meta_graph('./mean_var/mean_var.ckpt.meta')
        saver.restore(sess, tf.train.latest_checkpoint('./mean_var/'))
        #saver.restore(sess, './mean_var/mean_var.ckpt')
        graph = tf.get_default_graph()
        x = graph.get_tensor_by_name("x:0")   
        output = mean_var(x)
        y_pred = sess.run(output, feed_dict={x:4})
        print(y_pred)

相关问题 更多 >