dnn回归预测_我的DNN对所有测试数据(tensorflow)返回相同的预测结果

我试图在我的数据上运行此代码以进行回归。看起来网络可以预测第一个测试数据,但所有其他预测与第一个测试数据相同。第一个函数为初始化生成随机权重。预测变量的数量是54,输出的数量是4.这里是我的代码:我的DNN对所有测试数据(tensorflow)返回相同的预测结果

def init_weights(shape):

weights = tf.random_uniform(shape, -2,2)

return tf.Variable(weights)

def forwardprop(X, w, b, sig):

if sig==1:

yhat = tf.sigmoid(tf.add(tf.matmul(X, w),b))

else:

yhat = tf.add(tf.matmul(X, w),0.)

return yhat

def main(itr,starter_learning_rate):

x_size = train_X.shape[1]

h_size = 4

y_size = train_y.shape[1]

X = tf.placeholder(“float”, shape = [None, x_size])

y = tf.placeholder(“float”, shape = [None, y_size])

w_1 = init_weights((x_size, h_size))

b_1 = tf.constant(1.)

w_2 = init_weights((h_size, y_size))

b_2 = tf.constant(1.)

yhat_1 = forwardprop(X, w_1, b_1, 1)

yhat = forwardprop(yhat_1, w_2, b_2, 0)

n_samples = train_X.shape[0]

cost = tf.reduce_sum(tf.pow(yhat-y, 2))/(2*n_samples)

updates = tf.train.GradientDescentOptimizer(starter_learning_rate).minimize(cost)

sess = tf.Session()

init = tf.global_variables_initializer()

sess.run(init)

for epoch in range(itr):

sess.run(updates, feed_dict={X: train_X, y: train_y})

train_err = train_y – sess.run(yhat, feed_dict={X: train_X, y: train_y})

train_accuracy = np.mean(train_err**2)

test_err = test_y – sess.run(yhat, feed_dict={X: test_X, y: test_y})

test_accuracy =np.mean(test_err**2)

print(sess.run(yhat, feed_dict={X: test_X, y: test_y}))

sess.close()

if name == ‘main‘:

main(itr=10000,starter_learning_rate=0.001)

2017-02-19

Nima

Original: https://blog.csdn.net/weixin_33835558/article/details/113382337
Author: ariel7morita
Title: dnn回归预测_我的DNN对所有测试数据(tensorflow)返回相同的预测结果

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/635386/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球