【发布时间】:2018-10-12 12:57:19
【问题描述】:
我尝试使用逻辑回归来 mnist 数据集,但我在实现方面遇到了一些问题
from sklearn.datasets import load_digits
from sklearn.metrics import roc_auc_score
s = tf.InteractiveSession(config=tf.ConfigProto(gpu_options=gpu_options))
mnist = load_digits(2)
X,y = mnist.data, mnist.target
# inputs and shareds
weights = tf.Variable(np.zeros((64, 1), dtype='float32'))
input_X = tf.placeholder(tf.float32, shape=(None, 64))
input_y = tf.placeholder(tf.float32, shape=(None, 1))
predicted_y = tf.add(tf.matmul(input_X, weights), input_y)
loss = tf.losses.log_loss(input_y, predicted_y)
optimizer = tf.train.GradientDescentOptimizer(learning_rate=1e-2).minimize(loss)
train_function = s.run(optimizer, feed_dict={input_X: X, input_y: y.reshape(-1, 1)})
predict_function = s.run(predicted_y, feed_dict={input_X: X})
X_train, X_test, y_train, y_test = train_test_split(X, y)
for i in range(5):
s.run(optimizer)
loss_i = s.run(loss, feed_dict={input_X: X_test, input_y: y_test})
print("loss at iter %i:%.4f" % (i, loss_i))
print("train auc:",roc_auc_score(y_train, predict_function(X_train)))
print("test auc:",roc_auc_score(y_test, predict_function(X_test)))
print ("resulting weights:")
plt.imshow(weights.eval().reshape([8,8]))
plt.colorbar()
当我尝试运行train_prediction 时出现问题。它返回
FailedPreconditionError: Attempting to use uninitialized value Variable_16
[[Node: Variable_16/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_16"], _device="/job:localhost/replica:0/task:0/device:CPU:0"](Variable_16)]]
我尝试改变输入的形状,但我不明白,出了什么问题。
【问题讨论】:
-
什么是s?这不是 MVCE
-
@mad_,对不起,
s = tf.InteractiveSession(config=tf.ConfigProto(gpu_options=gpu_options))
标签: python tensorflow