私は単純なロジスティック回帰を実装しました。学習アルゴリズムを実行する前に、私は私がテストしてみた(正しく、ロジスティック回帰が実装されているすべての私の変数を初期化した後、私は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))
私の問題は、モデルで使用されている重みを抽出する必要があります。私は、私が実行したときに、私はしかし、訓練を受けた重みがtf.training_variables()
に位置するであろうと考え
var = [v for v in tf.trainable_variables() if v.name == "Variable:0"][0]
print(sess.run(var[0]))
...私は、以下の方法を抽出してみました...私のモデルに
pred = tf.nn.softmax(tf.matmul(x, W) + b) # Softmax
を次のように使用しましたprint
関数、私はゼロの配列を取得します。
私が望むのは、すべての重さのセットです。しかし何らかの理由で私は分類器の実際の重みの代わりにゼロの配列を得ています。