• 这是一个非常简单的神经网络的例子,而且在tensorflow当中实现非常的容易。那么按照上一篇介绍神经网络的文章:什么是神经网络?我们知道神经网络的架构就是包含了input layer,hidden layer和output layer三层。
  • 第一步,我们先导入相关的module:
    1
    2
    import tensorflow as tf
    import numpy as np
  • 然后,创造一些training data:
    1
    2
    x_data = np.random.rand(100).astype(np.float32)
    y_data = x_data * 0.1 + 0,3
  • 以上第一个语句是创造了100个(0,1)之间的随机数,并且把它的类型定义为float32。
  • 第二个语句则是定义了training data的label。y_data = x_data * 0.1 + 0.3
  • 下面开始创建tensorflow的structure。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ## create tensorflow structue 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)

    init = tf.global_variables_initializer()

    sess = tf.Session()
    sess.run(init)

    for step in range(10000):
    sess.run(train)
    if step % 500 == 0:
    print(step, sess.run(Weights), sess.run(biases), sess.run(loss))
  • 第2,3句定义了权重(Weights)偏置(bias)
  • 第5句创建了预测值y和输入X_data之间的等式关系
  • 第7句定义了损失函数(loss),y-y_data就是预测值和真实值之间的误差,而tf.sqaure()则是计算误差的平方和,tf.reduce_mean则是计算了向量的均值,如[1,2,3,4,5]的均值是3
  • 第8句定义了一个优化器,tf.train.GradientDescentOptimizer(0.5)
  • 第9句定义了优化器的优化规则,就是最小化
  • 第11句是定义全局变量的初始化,这一步非常重要
  • 第13句创建了一个Session来控制图的计算
  • 第14句,当run的时候,才会执行之前定义的操作,包括全局变量的初始化
  • 运行的结果: