跟我学算法-tensorflow 实现线性拟合
TensorFlow™ 是一个开放源代码软件库,用于进行高性能数值计算。借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、GPU、TPU)和设备(桌面设备、服务器集群、移动设备、边缘设备等)。TensorFlow™ 最初是由 Google Brain 团队(隶属于 Google 的 AI 部门)中的研究人员和工程师开发的,可为机器学习和深度学习提供强力支持,并且其灵活的数值计算核心广泛应用于许多其他科学领域
接下来我们通过一个线性拟合的简单实例来说明一下
第一步,通过np.random.normal 创造一批高斯分布的数据
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import tensorflow as tf num_points = 1000
vector_sector = [] # 创造一1000个点
for num_point in range(num_points):
x = np.random.normal(0.0, 0.55)
y = x*0.1 + 0.3 + np.random.normal(0, 0.03)
vector_sector.append([x, y])
#进行添加赋值操作
x_data = [v[0] for v in vector_sector]
y_data = [v[1] for v in vector_sector]
第二步: 初始化参数和使用估计值和真实值的均方误差来表示loss
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0), name='W')
# 产生一个初始值为0 的b值
b = tf.Variable(tf.zeros([1]), name='b')
# 构造线性函数
y = W * x_data + b
print(np.shape(y))
# 以预估值y和实际值y_data之间的均方误差作为损失
loss = tf.reduce_mean(tf.square(y-y_data), name='loss')
第三步: 初始化模型,并进行迭代降低loss,优化模型
optimizer = tf.train.GradientDescentOptimizer(0.5)
# 训练的时候就是最小化这个参数
train = optimizer.minimize(loss) #进行初始化
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
# 打印当前值
print('W', sess.run(W), 'b', sess.run(b), 'loss', sess.run(loss)) #循环20次,训练train,降低loss
for i in range(20):
sess.run(train)
print(print('W', sess.run(W), 'b', sess.run(b), 'loss', sess.run(loss)))
第四步: 做出拟合曲线的图
# 做散点图的拟合曲线
plt.scatter(x_data, y_data, c='r')
plt.plot(x_data, x_data*sess.run(W)+ sess.run(b))
plt.show()

跟我学算法-tensorflow 实现线性拟合的更多相关文章
- 跟我学算法- tensorflow 实现RNN操作
对一张图片实现rnn操作,主要是通过先得到一个整体,然后进行切分,得到的最后input结果输出*_w[‘out’] + _b['out'] = 最终输出结果 第一步: 数据载入 import ten ...
- 跟我学算法- tensorflow VGG模型进行测试
我们使用的VGG模型是别人已经训练好的一个19层的参数所做的一个模型 第一步:定义卷积分部操作函数 mport scipy.io import numpy as np import os import ...
- 跟我学算法-tensorflow 实现卷积神经网络附带保存和读取
这里的话就不多说明了,因为上上一个博客已经说明了 import numpy as np import tensorflow as tf import matplotlib.pyplot as plt ...
- 跟我学算法- tensorflow模型的保存与读取 tf.train.Saver()
save = tf.train.Saver() 通过save. save() 实现数据的加载 通过save.restore() 实现数据的导出 第一步: 数据的载入 import tensorflo ...
- 跟我学算法-tensorflow 实现卷积神经网络
我们采用的卷积神经网络是两层卷积层,两层池化层和两层全连接层 我们使用的数据是mnist数据,数据训练集的数据是50000*28*28*1 因为是黑白照片,所以通道数是1 第一次卷积采用64个filt ...
- 跟我学算法-tensorflow 实现神经网络
神经网络主要是存在一个前向传播的过程,我们的目的也是使得代价函数值最小化 采用的数据是minist数据,训练集为50000*28*28 测试集为10000*28*28 lable 为50000*10, ...
- 跟我学算法-tensorflow 实现logistics 回归
tensorflow每个变量封装了一个程序,需要通过sess.run 进行调用 接下来我们使用一下使用mnist数据,这是一个手写图像的数据,训练集是55000*28*28, 测试集10000* 28 ...
- 跟我学算法- tensorflow 卷积神经网络训练验证码
使用captcha.image.Image 生成随机验证码,随机生成的验证码为0到9的数字,验证码有4位数字组成,这是一个自己生成验证码,自己不断训练的模型 使用三层卷积层,三层池化层,二层全连接层来 ...
- 深度学习原理与框架-Tensorflow基本操作-实现线性拟合
代码:使用tensorflow进行数据点的线性拟合操作 第一步:使用np.random.normal生成正态分布的数据 第二步:将数据分为X_data 和 y_data 第三步:对参数W和b, 使用t ...
随机推荐
- HDU1757
解题思路:分析需要不少时间,比较懒,直接把别人的分析贴在这里, 然后贴上自己写的代码: K相当之大.所以逐一递推的算法无法胜任.这时我们就不得不运用矩阵加速.首先来讲一下矩阵乘法: 若一矩阵的列数与另 ...
- 转载 vi替换windows换行符为linux换行符
1.用vi打开指定文本文件:vi filename.c 2.按 Esc 键,进入命令模式: 3.按 : 键 (按 Shift 键不放后,同时按 : 键)进入命令输入状态: 4.在冒号后输入:%s/^M ...
- DependencyProperty.UnsetValue 的正确打开方式
无论是 WPF,还是 UWP,只要你用了绑定或者标记扩展,一定会碰到一个神奇的值——DependencyProperty.UnsetValue.UnsetValue 是什么意思?为什么会出现这个值呢? ...
- Docker环境下eShopOnContainers部署
从头开始学eShopOnContainers--Visual Studio 2017环境配置 https://www.cnblogs.com/dusthunter/p/9973815.html 一.安 ...
- Unicode字符转换成字符串
/*** * Unicode字符转换成字符串 * @param str * Unicode字符 * @return * String * * @author WXW */ public static ...
- 使用C#和Java发送邮件(转载)
using System.Net.Mail; using System.Net; public class EmailEntity { private MailMessage mm; /// < ...
- CH1803 City Game
题意 这片土地被分成NM个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda. 现在freda要在这里卖萌...它要找一块矩形土地,要求这片土 ...
- lapis cockroachdb 数据访问试用
备注: cockroachdb 的安装可以参考官方文档,以下实例代码使用的是官方的参考例子 1. 数据库配置 // config.lua 参考: local config = require( ...
- php基础语法(控制语句、数组、函数)
流程控制 if -else if -else语句: switch语句: while循环: do while循环 for循环: 控制脚本执行进度 die(“输出内容”) exit是die的同义词. sl ...
- http请求发生了两次(options请求)
前言 自后台restful接口流行开来,请求了两次的情况(options请求)越来越普遍.笔者也在实际的项目中遇到过这种情况,做一下整理总结. 文章书写思路: 为什么发生两次请求 http的请求方式, ...