美文网首页
斯坦福大学TensorFlow课程笔记cs20si:#3(1)

斯坦福大学TensorFlow课程笔记cs20si:#3(1)

作者: CristinaXu | 来源:发表于2017-12-13 13:45 被阅读0次

03_linear_regression_sol.py
第三课示例代码笔记

目标
这是一个线性回归的例子,通过输入火灾数量X与盗窃数量Y的数据,用X预测Y。通过这个简单的例子可以窥见TF的数据结构,所以在这里记录一下。

代码分析

先忽略预处理输入数据的步骤不管。

输入数据用placeholder初始化先占位。设name,之后生成graph对应的名字是' '内的内容。

    X = tf.placeholder(tf.float32, name='X')
    Y = tf.placeholder(tf.float32, name='Y')

网络内部的参数用Variable声明,variable是optimizer可以优化的一类数据。设name,之后生成graph对应的名字是' '内的内容。

    w = tf.Variable(0.0, name='weights')
    b = tf.Variable(0.0, name='bias

编辑预测模型的公式

    Y_predicted = X * w + b 

编辑计算loss的公式

  loss = tf.square(Y - Y_predicted, name='loss')  

初始化优化功能,做梯度下降。
其实到这一步已经把预测模型和loss计算统统打包了。

optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.001).minimize(loss)

开始正式计算

with tf.Session() as sess:
  #初始化之前的所有variable(w与b)
  sess.run(tf.global_variables_initializer()) 
  #写入tensorboard的graph文件
  writer = tf.summary.FileWriter('./graphs/linear_reg', sess.graph)

  for i in range(50): # 训练50次
    total_loss = 0
    for x, y in data:
        # 正式开始optimizer运算并获取loss数值
        #从feed_dict输入数据
        _, l = sess.run([optimizer, loss], feed_dict={X: x, Y:y}) 
        total_loss += l
    print('Epoch {0}: {1}'.format(i, total_loss/n_samples))

Tensorboard输出的graph

可以在图中找出这两个公式

Y_predicted=X*w+b
loss=(Y-Y_predicted)²
1.png

相关文章

网友评论

      本文标题:斯坦福大学TensorFlow课程笔记cs20si:#3(1)

      本文链接:https://www.haomeiwen.com/subject/lvmaixtx.html