用TensorFlow进行平面拟合

用TensorFlow进行平面拟合

前言

从今天开始,本人打算开始学习TensorFlow了,还别说内心真是有一点小激动(2333~)
废话不多说,直接进入正题吧!

问题简述

使用numpy生成一些三维的数据,然后用一个平面来拟合。

步骤

  1. 使用numpy来生成一些数据
  2. 构造线性模型
  3. 最小化方差
  4. 初始化变量
  5. 启动图
  6. 拟合平面

遇到的坑

作为刚入门TensorFlow的小白,我并不知道TensorFlow1和TensorFlow2有很大的差距,我就直接安装了TensorFlow2,谁知道TensorFlow2中移除了TensorFlow1中的很多模块,而网上给的示例程序是需要用TensorFlow1才能跑的,我直接吐了~~,最后多谢Stack Overflow这个网站帮了我大忙。

修改后的代码

# !/usr/bin/env python
# —*— coding: utf-8 —*—
# @Time:    2019/12/28 21:41
# @Author:  Martin
# @File:    Plane_fitting.py.py
# @Software:PyCharm
import tensorflow.compat.v1 as tf
import numpy as np

tf.disable_v2_behavior()
# 使用numpy生成数据,总共100个点
x_data = np.float32(np.random.rand(2, 100))
y_data = np.dot([0.100, 0.200], x_data) + 0.300
# 构造线性模型
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random.uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# 初始化变量
init = tf.initialize_all_variables()
# 启动图
sess = tf.Session()
sess.run(init)
# 拟合平面
for step in range(0, 201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))

最终结果

在这里插入图片描述
得到的最佳拟合结果 W:[[0.09999846 0.19999844]],b:[0.30000156]

发布了102 篇原创文章 · 获赞 93 · 访问量 9664

猜你喜欢

转载自blog.csdn.net/Deep___Learning/article/details/103749475