Tensorflow神经网络的一个小栗子:
- 生成数据(create data):
- 拟合的方程为 y = 0.1 * x + 0.3
- 声明网络结构:
- 参数初始化
- 核函数(有时候需要激活函数)
- 损失函数
- 选择优化器(optimizer)
- 训练函数 = 优化器最小化损失函数
- 创建session,初始化变量
- 训练网络
1 import tensorflow as tf 2 import numpy as np 3 4 #create data 5 x_data = np.random.rand(100).astype(np.float32) 6 y_data = x_data*0.1+0.3 7 8 ###create tensorflow structure start### 9 Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0)) 10 biases = tf.Variable(tf.zeros([1])) 11 12 y = Weights * x_data + biases 13 14 loss = tf.reduce_mean(tf.square(y-y_data)) 15 optimizer = tf.train.GradientDescentOptimizer(0.5) #学习率 = 0.5 16 train = optimizer.minimize(loss) 17 18 init = tf.initialize_all_variables() 19 ###create tensorflow structure end### 20 sess = tf.Session() 21 sess.run(init) 22 for step in range(201): 23 sess.run(train) 24 if step % 20 == 0: 25 print(step,sess.run(Weights),sess.run(biases))
运行结果:
训练200次后,基本上可以拟合 y = 0.1 * x + 0.3