gpt4 book ai didi

python - Tensorflow:关闭 session 后访问经过训练的变量

转载 作者:太空狗 更新时间:2023-10-29 20:21:02 25 4
gpt4 key购买 nike

我最近开始使用 tensorflow 并尝试使用一些模拟数据的线性回归模型。我有以下代码,其中我使用 GradientDescentOptimizer 训练两个变量 wb(我使用 numpy 随机初始化)。模型完成训练后,我想查看这些变量,看看它们与实际值的接近程度。 (我省略了代码的其他部分,因为它们与问题无关)。因此,当 session 退出 with tf.Session()... 时,我使用 sess = tf.Session() 打开默认 session 并尝试使用 sess.run(w) 但我收到了 Attempting to use uninitialized value train_weights。这是意料之中的。所以我想到了使用 sess.run(tf.global_variables_initializer()) 但这只是将 w 的值初始化回开始。所以问题是——假设 session 已关闭,在 tensorflow session 中更改变量后如何访问变量的最终值

_ = tf.global_variables_initializer()

with tf.Session() as sess:
sess.run(_)
for epoch in range(n_epochs):
for batch_pos in range(num_batches):
x_batch = X[batch_ind[batch_pos]:batch_ind[batch_pos+1]]
y_batch = Y[batch_ind[batch_pos]:batch_ind[batch_pos+1]]
sess.run(optimizer, feed_dict = {x_train_batch: x_batch,\
y_train_batch: y_batch})
cost_ = sess.run(cost, feed_dict = {x_train_batch: x_batch,\
y_train_batch: y_batch})
if (epoch)%display_rate == 0:
print('Epoch:', epoch+1, 'Cost: ', cost_)

sess = tf.Session()
# sess.run(tf.global_variables_initializer())
sess.run(w)

最佳答案

如果您已经关闭 session ,则无法从中访问权重。

一般有两种方式:

1)不关闭session(不使用tf.Session()作为sess的构造);

2) 在 session 结束时使用保护程序:

saver = tf.train.Saver() 
saver.save(sess, 'filename.chkp')

然后您就可以访问模型了:

sess = tf.Session()
saver = tf.train.Saver()
saver.restore(sess, 'filename.chkp')

关于python - Tensorflow:关闭 session 后访问经过训练的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45608870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com