发表于 2018-02-03 | Edited on 2018-07-16 | 分类于 tensorflow | 评论数: Tensorflow学习3:非线性回归 123import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt 123456789101112131415161718192021222324252627282930313233# 用numpy生成200个随机点x_data = np.linspace(-0.5, 0.5, 200)[:,np.newaxis] #增加一个维度,变成单列矩阵noise = np.random.normal(0,0.02,x_data.shape)y_data = np.square(x_data) + noise#x = tf.placeholder(tf.float32,[None,1])y = tf.placeholder(tf.float32,[None,1])Weights_L1 = tf.Variable(tf.random_normal((1,10)))biases_L1 = tf.Variable(tf.zeros((1,10)))Wx_plus_b_L1 = tf.matmul(x, Weights_L1) + biases_L1L1 = tf.nn.softplus(Wx_plus_b_L1)Weights_L2 = tf.Variable(tf.random_normal((10,1)))biases_L2 = tf.Variable(tf.zeros((1,1)))Wx_plus_Biases_L2 = tf.matmul(L1, Weights_L2) + biases_L2#predict_y = tf.nn.tanh(Wx_plus_Biases_L2)predict_y = Wx_plus_Biases_L2loss = tf.reduce_mean(tf.square(predict_y - y))train = tf.train.GradientDescentOptimizer(0.1).minimize(loss)with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for _ in range(1000): sess.run(train, feed_dict={x:x_data, y:y_data}) _predict_y = sess.run(predict_y, feed_dict={x:x_data}) plt.figure() plt.scatter(x_data, y_data) plt.plot(x_data, _predict_y, "red", lw=5) plt.show() ꧁༺The༒End༻꧂