tensorflow 拟合三维平面

例子:拟合三维平面

数据集是npy类型,二进制的文件,以数组的形式呈现
步骤:
1.导入数据
2.构造线性模型
矩阵相乘,加权求核
3.定义损失函数
4.定义训练函数
5.启动图
6.初始化变量
7.开始训练

import numpy as np
import tensorflow as tf
import os
from DEA.tensor import sess

tf.compat.v1.disable_eager_execution()
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# 忽略掉版本的错误

# 导入数据, 直接修改浮点型
data=np.float32(np.load('D:/科技数据/机器学习/tensorflow/line_fit_data.npy'))
x_data=data[:,:2]  # 样本自变量
Y_data=data[:,2:]  # 样本实际值

'''
定义计算(计算图)
'''

# 构建一个线性模型
w=tf.Variable(tf.zeros([2,1]))
bias=tf.Variable(tf.zeros([1]))
y=tf.matmul(x_data,w)+bias
# y 是tensor类型看不到具体取值

# 定义损失函数(均方误差)
loss = tf.reduce_mean(tf.square(Y_data-y))

# 构建梯度下降法优化器(梯度下降优化器,学习率=0.5)
optimizer=tf.compat.v1.train.GradientDescentOptimizer(0.5)  

# 定义训练函数
train=optimizer.minimize(loss)

'''
执行计算(会话中)
'''
# 启动会话A
sess = tf.compat.v1.Session()
sess.run(tf.compat.v1.global_variables_initializer())
# 计算所有变量,也就是初始化变量
for i in range(100):
    print('第',i, '轮训练后模型的损失值',sess.run(loss))
    sess.run(train)  # 开始训练,改变权重和偏置项
print(sess.run([w,bias])) # 0.0999*x1+0.1999*x2+0.3000
# 开始演练
sess.close()

注:

  1. 高阶版本的tensorflow,不能直接用tf.Session(),要修改成tf.compat.v1.Session()才能调用tf下的函数
  2. y 打印出来不是具体的数值类型,而是tensor类型,需要sess.run(y)一下,才能打印出具体的值
  3. 提前声明权重和偏置项是Variable,在后续的训练中可以识别出两个变量,并不断的改进
  4. numpy是通过C++来开发的
  5. tensorflow将计算过程完全运行在python外部
  6. TensorFlow依赖于一个高效的C++后端来进行计算,并通过session连接。先创建一个图,然后在session中启动它
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值