Tensorflow 是很是重视结构的, 咱们得创建好了神经网络的结构, 才能将数字放进去, 运行这个结构。
今天学习一下Tensorflow
的一个简单的例子python
首先,须要加载tensorflow
和 numpy
两个模块,而且使用numpy
来建立数据。git
import tensorflow as tf import numpy as np # create data x_data = np.random.rand(100).astype(np.float32) y_data = x_data*0.1 + 0.3
使用tf.Variable
来建立描述y
的参数。github
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) biases = tf.Variable(tf.zeros([1])) y = Weights*x_data + biases
计算一下实际的值和原来的偏差。网络
loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5) train = optimizer.minimize(loss)
到目前为止, 咱们只是创建了神经网络的结构, 尚未使用这个结构. 在使用这个结构以前, 咱们必须先初始化全部以前定义的Variable
, 因此接下来这段很重要!dom
# init = tf.initialize_all_variables() # tf 立刻就要废弃这种写法 init = tf.global_variables_initializer() # 替换成这样就好
接着,咱们再建立会话 Session
。函数
sess = tf.Session() sess.run(init) # Very important for step in range(201): sess.run(train) if step % 20 == 0: print(step, sess.run(Weights), sess.run(biases))
跑了一下代码,截图以下
咱们能够看到,这个一次函数的值Weights
和biases
原来是两个随机的值,经过200次的学习,一次一次更加趋近于原来的值,也就是0.1
和0.3
。学习
完整代码以下:spa
from __future__ import print_function import os os.environ['TF_CPP_MIN_LOG_LEVEL']='2' import tensorflow as tf import numpy as np # create data x_data = np.random.rand(100).astype(np.float32) y_data = x_data*0.1 + 0.3 ### create tensorflow structure start ### Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) biases = tf.Variable(tf.zeros([1])) y = Weights*x_data + biases loss = tf.reduce_mean(tf.square(y-y_data)) optimizer = tf.train.GradientDescentOptimizer(0.5) train = optimizer.minimize(loss) ### create tensorflow structure end ### sess = tf.Session() # tf.initialize_all_variables() no long valid from # 2017-03-02 if using tensorflow >= 0.12 if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1: init = tf.initialize_all_variables() else: init = tf.global_variables_initializer() sess.run(init) for step in range(201): sess.run(train) if step % 20 == 0: print(step, sess.run(Weights), sess.run(biases))
莫烦PYTHONcode