如何使用TensorFlow

TensorFlow的使用分为下面几步

  1. 先定义训练的数据集
  2. 定义输入输出
  3. 定义计算图
  4. 定义损失函数
  5. 训练的过程

好了,你已经学会怎么使用TensorFlow,现在来试着写一个简单的线性回归吧!

目标

实现线性回归方程:y = a*x+b

首先先导入包,使用V1的版本

import numpy as np
import matplotlib.pyplot as plt
try:import tensorflow.compat.v1 as tftf.disable_v2_behavior()
except:import tensorflow as tf

定义训练数据集

定义x函数为-1到1,间距100

trainX = np.linspace(-1,1,100)

加入噪声,均值为0,方差为0.05,形状和trainX一样

noise = np.random.normal(0,0.05,trainX.shape)

定义y函数为线性函数,同时添加一些噪声数据

trainY = 4*trainX+10+noise

训练集定义结束,开始定义输入输出

定义输入值,输入结构的输入行数不固定

xs=tf.placeholder(tf.float32)
ys=tf.placeholder(tf.float32)

定义输出值 a ,b值为浮点型名叫a b

a = tf.Variable(0.0,name="a")
b = tf.Variable(0.0,name="a")

输入输出定义完成后,开始定义计算图

这次计算图是个线性方程

y = a*xs+b

接着定义损失函数,让损失值在一定的区间内

loss = tf.square(y-ys)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)#设置反向传播算法

最后可以创建会话,开始训练

with tf.Session() as sess:sess.run(tf.initialize_all_variables())plt.ion()  # 打开互交模式for i in range(10):for (X,Y) in zip(trainX,trainY):_,w_value,b_value = sess.run([train_step,w,b],feed_dict={xs:X,ys:Y})print("step:{},w:{},b:{}".format(i+1,w_value,b_value))plt.plot(trainX,trainY,'+')plt.plot(trainX,w.eval()*trainX+b.eval())# 暂停时间plt.pause(0.5)

运行结果

完整代码

import numpy as np
import matplotlib.pyplot as plt
# 首先先导入包,使用V1的版本
try:import tensorflow.compat.v1 as tftf.disable_v2_behavior()
except:import tensorflow as tf
# 定义训练数据集
trainX = np.linspace(-1,1,100)
noise = np.random.normal(0,0.05,trainX.shape)
trainY = 4*trainX+10+noise
# 定义输入输出
xs=tf.placeholder(tf.float32)
ys=tf.placeholder(tf.float32)
a = tf.Variable(0.0,name="a")
b = tf.Variable(0.0,name="a")
# 定义计算图
y = a*xs+b
loss = tf.square(y-ys)
# 定义损失函数
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)#设置反向传播算法
# 创建会话,开始训练
with tf.Session() as sess:sess.run(tf.initialize_all_variables())plt.ion()  # 打开互交模式for i in range(10):for (X,Y) in zip(trainX,trainY):_,a_value,b_value = sess.run([train_step,a,b],feed_dict={xs:X,ys:Y})print("step:{},a:{},b:{}".format(i+1,a_value,b_value))plt.plot(trainX,trainY,'+')plt.plot(trainX,a.eval()*trainX+b.eval())# 暂停时间plt.pause(0.5)

Python学习记录 如何使用TensorFlow相关推荐

  1. 【Python学习记录】Numpy广播机制(broadcast)

    ✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...

  2. Python学习记录day3

    2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...

  3. Python学习记录——英文名修改成标准格式

    Python学习记录--英文名修改成标准格式 功能需求 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', ...

  4. python学习记录——容器篇

    容器 字符串 下标(索引) # 下表也称为是索引,是一个整型数字,可以是正数,也可以是负数 # 正数下标是从0开始的,表示第一个字符,-1表示最后一个字符 my_str = 'hello'h e l ...

  5. Python学习记录day6-反射、常用模块

    Python学习记录day6-反射.常用模块 @(学习)[python] Python学习记录day6-反射常用模块 反射 常用模块 1 sys System-specific parameters ...

  6. Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)

    一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...

  7. 蜗牛一步一步地往上爬的Python学习记录

    Python学习记录 前言 简介 基础知识 类型变量 高级特性 函数式编程 高阶函数 偏函数 装饰器decorator 匿名函数 前言 第一,绝对不断更: 第二,绝对认真写: 第三,绝对撰写的公正漂亮 ...

  8. Python学习记录:shapefile.Writer报错

    Python学习记录 shapefile.Writer报错 w=shapefile.Writer(r.shapeType)使用时报错 Exception: The target filepath 5 ...

  9. Python学习记录(一)PIL库对于图像操作方法的简单整理

    Python学习记录(一)PIL库对于图像操作方法的简单整理 首先对PIL库进行一个简单的介绍:Python图像库PIL(Python Image Library)是python的第三方图像处理库,由 ...

最新文章

  1. java 超时中断_怎么在超时后中断任务的ExecutorService
  2. VSCode中experimentalDecorators设置问题
  3. 【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )
  4. cmake编译android平台的libPoco
  5. 月入5万,程序员夫人们过上贵妇生活了吗?
  6. sublime html 折叠,关于sublime text, notepad++,vscode 代码折叠显示的比较
  7. ASP.NET Core MVC 模型绑定用法及原理
  8. Delphi运算符及优先级
  9. 5G的来龙去脉及未来
  10. JavaScript学习笔记 1
  11. 机器学习基础:交叉熵损失(Machine Learning Fundamentals: Cross Entropy Loss)
  12. oracle设置禁用外键,oracle禁用表外键
  13. [ 渗透工具篇 ] sqlmap 详解(一) sqlmap 安装详解
  14. loadrunner11 java脚本_LoadRunner11开发Java Vuser协议脚本
  15. 千方百剂创建账套服务器文件,千方百剂各工具使用.doc
  16. 小米笔记本Pro14 黑苹果失败<经验>
  17. 【论文学习】Large-scale Video Classification with Convolutional Neural Networks
  18. 阿里云认证未来网络学院ACE公开课——30分钟掌握ACE考试通关攻略
  19. 备战金九银十 你必须知道的Mybatis面试题
  20. 考研数学二-汤家凤中值定理

热门文章

  1. C#窗体皮肤制作(二):创建窗体库项目以及最小化、最大化、关闭按钮的实现
  2. python下的四舍五入
  3. 超简单五步实现VOS3000客户端呼入配置
  4. 00002-layui 右侧呼出页面,PopupLayer
  5. oracle erp不能和其他文档复制粘贴
  6. python中的构造函数_python构造函数是什么?
  7. 合并当前目录下所有工作簿的全部工作表
  8. XCode 真机调试
  9. 空姐在飞机上碰到的好多好笑的事
  10. Java中的类(基础详解)