栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

tensorflow后续

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tensorflow后续

4.变量

变量也是一种OP 是一种特殊的张量 能够进行存储持久化 它的
值就是张量 默认被训练

1 变量的创建
tf.Variable(initial_value None,name None)
创建一个带值initial_value的新变量
assign(value)为变量分配一个新值,返回新值
eval(session None)计算并返回此变量的值
name属性表示变量名字
tf.global_variables_initializer()
添加一个初始化所有变量的op
并在会话中开启

举例

# 变量op
# 1.变量op能够持久化保存 普通张量op是不可行的
# 2.当定义一个变量op的时候 一定要在会话当中去运行初始化
a tf.constant([1,2,3,4,5])
var tf.Variable(tf.random_normal([2,3],mean 0.0,stddev 1.0))
print(a,var)
# 必须做一步显示的初始化op
# 添加一个初始化所有变量的op
init_op tf.global_variables_initializer()
with tf.Session() as sess:
 # 必须运行初始化op
 sess.run(init_op)
 print(sess.run([a,var]))

2 可视化学习tensorboard
数据序列化-events文件
TensorBoard 通过读取 TensorFlow 的事件文件来运行
tf.summary.FileWriter( /tmp/tensorflow/summary/test/ , graph 
default_graph)
返回filewriter,写入事件文件到指定目录(最好用绝对路径) 以提供给tensorboard使用
tensorboard --logdir /tmp/tensorflow/summary/test/
一般浏览器打开为127.0.0.1:6006或http://localhost:6006/



符号意义

3 增加变量显示

目的 观察模型的参数、损失值等变量值的变化

1、收集变量
tf.summary.scalar(name ’’,tensor) 收集对于损失函数和准确率
等单值变量,name为变量的名字 tensor为值
tf.summary.histogram(name ‘’,tensor) 收集高维度的变量参数
tf.summary.image(name ‘’,tensor) 收集输入的图片张量能显示图片
2、合并变量写入事件文件
merged tf.summary.merge_all()
运行合并 summary sess.run(merged) 每次迭代都需运行
添加 FileWriter.add_summary(summary,i),i表示第几次的值
4 tensorflow实现线性回归

前提引入tensorflow运算API

矩阵运算
tf.matmul(x, w)
tf.square(error)
tf.reduce_mean(error)

梯度下降API

tf.train.GradientDescentOptimizer(learning_rate)
 梯度下降优化
learning_rate:学习率 一般为
method:
return:梯度下降op

举例步骤

准备好特征值和目标值 y x*0.7 0.8 建立模型 {随机初始化准备一个权重w 一个偏置b} y_predict x w b 求损失函数 误差梯度下降去优化损失过程

代码实现

import os
os.environ[ TF_CPP_MIN_LOG_LEVEL ] 2 
import tensorflow as tf
def myregression():
 自我实现一个线性回归预测
 # 1.准备数据 x 特征值 [100,10] y 目标值[100]
 x tf.random_normal([100,1],mean 1.75,stddev 0.5,name x_data )
 # 矩阵相乘必须是二维的
 y_ture tf.matmul(x,[[0.7]]) 0.8
 # 2.建立线性回归模型 1个特征 1个权重 1个偏置 y x w b
 # 随机给一个权重和偏置的值(两个均为变量) 让他去计算损失 然后再当前状态下优化
 # 用变量定义才能优化
 weight tf.Variable(tf.random_normal([1,1],mean 0.0,stddev 1.0,name w ))
 bias tf.Variable(0.0,name b )
 y_predict tf.matmul(x,weight) bias
 # 3.建立损失函数 均方误差
 loss tf.reduce_mean(tf.square(y_ture-y_predict))
 # 4.梯度下降 优化损失,learning_rate:0~1,2,3,5,7,10
 train_op tf.train.GradientDescentOptimizer(0.1).minimize(loss)
 # 定义一个初始化变量op
 init_op tf.global_variables_initializer()
 # 通过会话运行程序
 with tf.Session() as sess:
 # 初始化变量
 sess.run(init_op)
 # 打印随机最先初始化的权重和偏置
 print( 随机最先初始化权重 %f,偏置为 %f, % (weight.eval(),bias.eval()))
 # 循环训练 运行优化
 # 运行优化
 for i in range(300):
 sess.run(train_op)
 print( 第%d词优化的参数权重 %f,偏置为 %f, % (i,weight.eval(), bias.eval()))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/266960.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号