赞
踩
- import numpy as np
- import tensorflow as tf
- import matplotlib as plt
-
- def addlayer(inputs, insize, outsize, activefunction=None):
- Weight = tf.Variable(tf.random_normal([insize, outsize]))
- biases = tf.Variable(tf.zeros([1, outsize]) + 0.1)
- Wx_plus_b = tf.matmul(inputs,Weight) + biases
- if activefunction is None:
- outputs = Wx_plus_b
- else:
- outputs = activefunction(Wx_plus_b)
- return outputs
-
- x_data = np.linspace(-1,1,300)[:, np.newaxis]
- nosic = np.random.normal(0, 0.05, x_data.shape)
- y_data = np.square(x_data)- 0.5 + nosic
-
- xs = tf.placeholder(tf.float32,[None,1])
- ys = tf.placeholder(tf.float32,[None,1])
-
- l1 = addlayer(xs, 1, 10, activefunction=tf.nn.relu)
- prediction = addlayer(l1,10,1,activefunction=None)
-
- loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction),reduction_indices=[1]))
-
- train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
-
- init = tf.initialize_all_variables()
-
- sess = tf.Session()
- sess.run(init)
-
- fig = plt.figure()
- ax = fig.add_subplot(1,1,1)
- ax.scatter(x_data,y_data)
- plt.ion()
- plt.show()
-
- for i in range(1000):
- sess.run(train_step,feed_dict={xs:x_data,ys:y_data})
- if i % 50 == 0:
- # print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))
- try:
- ax.lines.remove(lines[0])
- except Exception:
- pass
- prediction_value = sess.run(prediction,feed_dict={xs:x_data})
- lines = ax.plot(x_data,prediction_value,'r-',lw=5)
- plt.pause(0.1)
这样直接在JupyterNotebook上运行会报错:NameError:name 'time' is not defined!
针对这个错误只需要在文件代码开始的位置加一句代码:%matplotlib即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。