【发布时间】:2017-02-21 09:06:53
【问题描述】:
我实现了一个简单的逻辑回归。在运行训练算法之前,我为我的权重创建了一个占位符,我将所有权重初始化为 0...
W = tf.Variable(tf.zeros([784, 10]))
正确初始化所有变量后,逻辑回归就实现了(我已经测试并正确运行)...
for epoch in range(training_epochs):
avg_cost = 0
total_batch = int(mnist.train.num_examples/batch_size)
# loop over all batches
for i in range(total_batch):
batch_xs, batch_ys = mnist.train.next_batch(batch_size)
_, c = sess.run([optimizer, cost], feed_dict={x: batch_xs, y: batch_ys})
# compute average loss
avg_cost += c / total_batch
# display logs per epoch step
if (epoch + 1) % display_step == 0:
print("Epoch:", '%04d' % (epoch + 1), "cost=", "{:.9f}".format(avg_cost))
我的问题是,我需要提取模型中使用的权重。我将以下内容用于我的模型...
pred = tf.nn.softmax(tf.matmul(x, W) + b) # Softmax
我尝试通过以下方式提取...
var = [v for v in tf.trainable_variables() if v.name == "Variable:0"][0]
print(sess.run(var[0]))
我认为训练后的权重将位于 tf.training_variables(),但是当我运行 print 函数时,我得到一个零数组。
我想要的是所有的权重集。但由于某种原因,我得到的是零数组,而不是分类器的实际权重。
【问题讨论】:
标签: python machine-learning tensorflow