我只是想嘗試用簡單的邏輯regression.I've二元分類有未標記的輸出數據爲{1,0} //(他/她通過考試與否) 成本函數返回(NaN)。什麼是錯的?
learning_rate = 0.05
total_iterator = 1500
display_per = 100
data = numpy.loadtxt("ex2data1.txt",dtype=numpy.float32,delimiter=",");
training_X = numpy.asarray(data[:,[0,1]]) # 100 x 2
training_X包含100×2矩陣作爲考scores.eg [98.771 4.817]
training_Y = numpy.asarray(data[:,[2]],dtype=numpy.int) # 100 x 1
training_Y包含100X1陣列,[1] [0] [0] [1] 我可以不寫一行行由於計算器格式
m = data.shape[0]
x_i = tf.placeholder(tf.float32,[None,2]) # None x 2
y_i = tf.placeholder(tf.float32,[None,1]) # None x 1
W = tf.Variable(tf.zeros([2,1])) # 2 x 1
b = tf.Variable(tf.zeros([1])) # 1 x 1
h = tf.nn.softmax(tf.matmul(x_i,W)+b)
cost = tf.reduce_sum(tf.add(tf.multiply(y_i,tf.log(h)),tf.multiply(1-
y_i,tf.log(1-h))))/-m
我試圖用簡單的物流成本function.it得到了恢復「NaN'.i以爲我的成本函數是完全garbarage,讓我們ed tensorflow的例子的成本函數:
cost = tf.reduce_mean(-tf.reduce_sum(y_i*tf.log(h), reduction_indices=1))
但它沒有奏效。
initializer= tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print("cost: ", sess.run(cost, feed_dict={x_i:training_X,
y_i:training_Y}), "w: ", sess.run(W),"b: ", sess.run(b))
請問「我的標籤輸出數據爲{1,0}」是什麼意思? – tagoma
它沒有一個熱解碼。只是一個二進制。 –