Tensorflow可视化编程安装Tensoflow1.0将加法运算以图形化方式展示实现简单的线性回归为程序添加作用域模型的保存与恢复(保存会话资源)
时间:2022-05-11
本文章向大家介绍Tensorflow可视化编程安装Tensoflow1.0将加法运算以图形化方式展示实现简单的线性回归为程序添加作用域模型的保存与恢复(保存会话资源),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
安装Tensoflow1.0
Linux/ubuntu:
- python2.7:
pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp27-none-linux_x86_64.whl
- python3.5:
pip3 install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl
Maxos:
- python2:
pip install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.0.1-py2-none-any.whl
- python3:
pip3 install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.0.1-py3-none-any.whl
Tensorflow完成加法
import tensorflow as tf
# 消除警告(使用源码安装可自动消除)
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
a = tf.constant(3.0)
b = tf.constant(4.0)
with tf.Session() as sess:
a_b = tf.add(a, b)
print("相加后的类型为")
print(a_b)
print("真正的结果为:")
print(sess.run(a_b))
将加法运算以图形化方式展示
- 在会话中添加记录文件的语句
import tensorflow as tf
# 消除警告(使用源码安装可自动消除)
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
a = tf.constant(3.0)
b = tf.constant(4.0)
with tf.Session() as sess:
a_b = tf.add(a, b)
print("相加后的类型为")
print(a_b)
print("真正的结果为:")
print(sess.run(a_b))
# 添加board记录文件
file_write = tf.summary.FileWriter('/Users/lijianzhao/tensorBoard/', graph=sess.graph)
- 在终端运行
tensorboard --logdir="/Users/lijianzhao/tensorBoard/"
- 根据终端提示,在浏览器键入
http://192.168.199.213:6006
- 选择GRAPHS
实现简单的线性回归
import tensorflow as tf
# 消除警告(使用源码安装可自动消除)
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# 回归函数
def my_regression():
# 准备10000 条数据x的平均值为5.0 标准差为1.0
x = tf.random_normal([100, 1], mean = 5.0, stddev=1.0, name="x")
# 真实的关系为 y = 0.7x + 0.6
y_true = tf.matmul(x, [[0.7]]) + 0.6
# 创建权重变量
weight = tf.Variable(tf.random_normal([1, 1], mean=1.0, stddev=0.1), name="weight")
# 创建偏置变量,初始值为1
bias = tf.Variable(1.0, name="bias")
# 预测结果
y_predict = tf.matmul(x, weight) + bias
# 计算损失
loss = tf.reduce_mean(tf.square(y_predict - y_true))
# 梯度下降减少损失,每次的学习率为0.1
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
# 收集变量
tf.summary.scalar("losses", loss)
tf.summary.histogram("weightes", weight)
# 合并变量
merged = tf.summary.merge_all()
# 初始化变量
init_op = tf.global_variables_initializer()
# 梯度下降优化损失
with tf.Session() as sess:
sess.run(init_op)
print("初始的权重为{}, 初始的偏置为{}".format(weight.eval(), bias.eval()))
# 添加board记录文件
file_write = tf.summary.FileWriter('/Users/lijianzhao/tensorBoard/my_regression', graph=sess.graph)
# 循环训练线性回归模型
for i in range(20000):
sess.run(train_op)
print("训练第{}次的权重为{}, 偏置为{}".format(i,weight.eval(), bias.eval()))
# 观察每次值的变化
# 运行merge
summery = sess.run(merged)
# 每次收集到的值添加到文件中
file_write.add_summary(summery, i)
if __name__ == '__main__':
my_regression()
为程序添加作用域
import tensorflow as tf
# 消除警告(使用源码安装可自动消除)
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# 回归函数
def my_regression():
# 准备数据
with tf.variable_scope("data"):
# 准备10000 条数据x的平均值为5.0 标准差为1.0
x = tf.random_normal([100, 1], mean = 5.0, stddev=1.0, name="x")
# 真实的关系为 y = 0.7x + 0.6
y_true = tf.matmul(x, [[0.7]]) + 0.6
# 创建模型
with tf.variable_scope ("model"):
# 创建权重变量
weight = tf.Variable(tf.random_normal([1, 1], mean=1.0, stddev=0.1), name="weight")
# 创建偏置变量,初始值为1
bias = tf.Variable(1.0, name="bias")
# 预测结果
y_predict = tf.matmul(x, weight) + bias
# 计算损失
with tf.variable_scope ("loss"):
# 计算损失
loss = tf.reduce_mean(tf.square(y_predict - y_true))
# 减少损失
with tf.variable_scope("optimizer"):
# 梯度下降减少损失,每次的学习率为0.1
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
# 收集变量
tf.summary.scalar("losses", loss)
tf.summary.histogram("weightes", weight)
# 合并变量
merged = tf.summary.merge_all()
# 初始化变量
init_op = tf.global_variables_initializer()
# 梯度下降优化损失
with tf.Session() as sess:
sess.run(init_op)
print("初始的权重为{}, 初始的偏置为{}".format(weight.eval(), bias.eval()))
# 添加board记录文件
file_write = tf.summary.FileWriter('/Users/lijianzhao/tensorBoard/my_regression', graph=sess.graph)
# 循环训练线性回归模型
for i in range(20000):
sess.run(train_op)
print("训练第{}次的权重为{}, 偏置为{}".format(i,weight.eval(), bias.eval()))
# 观察每次值的变化
# 运行merge
summery = sess.run(merged)
# 每次收集到的值添加到文件中
file_write.add_summary(summery, i)
if __name__ == '__main__':
my_regression()
模型的保存与恢复(保存会话资源)
- 创建保存模型的saver
saver = tf.train.Saver()
- 保存模型
saver.save(sess, "./tmp/ckpt/test")
- 恢复模型
save.restore(sess, "./tmp/ckpt/test")
- ASP.NET MVC集成EntLib实现“自动化”异常处理[实例篇]
- ASP.NET Core管道深度剖析(2):创建一个“迷你版”的管道来模拟真实管道请求处理流程
- 机器学习实战之决策树
- 初学ReactJS,写了一个RadioButtonList组件
- 今天,你有微信小游戏提交审核吗?
- 云计算,迷你版线程同步
- Kubernetes 年度关键进展回顾
- 比较一下以“反射”和“表达式”执行方法的性能差异
- 人工智能芯片是什么?有什么用?
- 柯洁食言“复出”再战AI:明年4月见分晓
- 深入探讨ASP.NET MVC的筛选器
- pytorch自然语言处理之Pooling层的句子分类
- su命令cannot set groups: Operation not permitted的解决方法
- 利用腾讯云 COS 云对象存储定时远程备份网站
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法