Python学习记录 如何使用TensorFlow
如何使用TensorFlow
TensorFlow的使用分为下面几步
- 先定义训练的数据集
- 定义输入输出
- 定义计算图
- 定义损失函数
- 训练的过程
好了,你已经学会怎么使用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相关推荐
- 【Python学习记录】Numpy广播机制(broadcast)
✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...
- Python学习记录day3
2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...
- Python学习记录——英文名修改成标准格式
Python学习记录--英文名修改成标准格式 功能需求 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', ...
- python学习记录——容器篇
容器 字符串 下标(索引) # 下表也称为是索引,是一个整型数字,可以是正数,也可以是负数 # 正数下标是从0开始的,表示第一个字符,-1表示最后一个字符 my_str = 'hello'h e l ...
- Python学习记录day6-反射、常用模块
Python学习记录day6-反射.常用模块 @(学习)[python] Python学习记录day6-反射常用模块 反射 常用模块 1 sys System-specific parameters ...
- Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)
一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...
- 蜗牛一步一步地往上爬的Python学习记录
Python学习记录 前言 简介 基础知识 类型变量 高级特性 函数式编程 高阶函数 偏函数 装饰器decorator 匿名函数 前言 第一,绝对不断更: 第二,绝对认真写: 第三,绝对撰写的公正漂亮 ...
- Python学习记录:shapefile.Writer报错
Python学习记录 shapefile.Writer报错 w=shapefile.Writer(r.shapeType)使用时报错 Exception: The target filepath 5 ...
- Python学习记录(一)PIL库对于图像操作方法的简单整理
Python学习记录(一)PIL库对于图像操作方法的简单整理 首先对PIL库进行一个简单的介绍:Python图像库PIL(Python Image Library)是python的第三方图像处理库,由 ...
最新文章
- java 超时中断_怎么在超时后中断任务的ExecutorService
- VSCode中experimentalDecorators设置问题
- 【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )
- cmake编译android平台的libPoco
- 月入5万,程序员夫人们过上贵妇生活了吗?
- sublime html 折叠,关于sublime text, notepad++,vscode 代码折叠显示的比较
- ASP.NET Core MVC 模型绑定用法及原理
- Delphi运算符及优先级
- 5G的来龙去脉及未来
- JavaScript学习笔记 1
- 机器学习基础:交叉熵损失(Machine Learning Fundamentals: Cross Entropy Loss)
- oracle设置禁用外键,oracle禁用表外键
- [ 渗透工具篇 ] sqlmap 详解(一) sqlmap 安装详解
- loadrunner11 java脚本_LoadRunner11开发Java Vuser协议脚本
- 千方百剂创建账套服务器文件,千方百剂各工具使用.doc
- 小米笔记本Pro14 黑苹果失败<经验>
- 【论文学习】Large-scale Video Classification with Convolutional Neural Networks
- 阿里云认证未来网络学院ACE公开课——30分钟掌握ACE考试通关攻略
- 备战金九银十 你必须知道的Mybatis面试题
- 考研数学二-汤家凤中值定理