TensorFlow:Chap3笔记总结
来源:互联网 发布:网络综艺点击率排行榜 编辑:程序博客网 时间:2024/06/13 13:03
1.三个基本概念
1).计算模型——计算图(tf.Graph):所有TensorFlow的程序都会通过计算图的形式表示。计算图的每一个节点都是一个运算,而计算图上的边则表示了运算之间的数据传递关系;同时还保存了运行每个运算的设备信息以及运算之间的依赖关系。计算图提供了管理不同集合的功能,并且TensorFlow会自动维护五个不同的默认集合。
2).数据模型——张量(tf.Tensor):TensorFlow中所有运算的输入、输出都是张量。张量本身并不存储任何数据,只是对运算结果的引用。
3).运算模型——会话(tf.Session):管理了一个TensorFlow程序所拥有的系统资源,所有的运算要通过会话执行。为解决异常退出时资源释放的问题,TensorFlow可以通过python的上下文管理器来使用会话。
#创建一个会话,并通过python中上下文管理器来管理该会话with tf.Session() as sess: sess.run#不需要调用“Session.close()”来关闭会话
2.TensorFlow训练神经网络步骤:
1). 定义神经网络结构和前向传播输出结果2).定义损失函数及反向传播优化算法
3).生成会话(tf.Session)并在训练数据上反复运行反向传播优化算法
3.加法计算的实现、通过变量实现前向传播、通过placeholder实现前向传播
import tensorflow as tfprint("tensorflow version: ", tf.VERSION) # 1.2.1#加法计算def func00_def(): #函数func00_def a = tf.Variable([1.0, 2.0], name="a") # 声明a、b两个变量 b = tf.Variable([2.0, 3.0], name="b") # result = tf.placeholder(tf.float32, shape=(1, 2), name="result"); 三个属性:类型、维度、名字 g = tf.Graph() # 计算图 with tf.Session() as sess: # 创建会话,通过Python中的上下文管理器来管理会话,自动释放资源 with g.device('/cpu:0'): # 指定计算运行的设备 init_op = tf.global_variables_initializer() sess.run(init_op) result = a + b print(sess.run(result))#通过变量实现神经网络的参数并实现前向传播def func01_constant(): w1 = tf.Variable(tf.random_normal([2, 3], stddev=1,seed=1)) #声明w1、w2两个变量。2*3的矩阵 w2 = tf.Variable(tf.random_normal([3, 1], stddev=1,seed=1)) #3*1的矩阵 seed设定随机种子,确保每次运行结果一致 x = tf.constant([[0.7, 0.9]]) #将输入的特征向量定义为一个常量。x是一个1*2的矩阵 a = tf.matmul(x, w1) #前向传播算法获得神经网络的输出 y = tf.matmul(a, w2) sess = tf.Session() init_op = tf.global_variables_initializer() #初始化 #init_op = tf.initialize_all_variables() sess.run(init_op) print(sess.run(y))#通过placeholder实现前向传播算法def func02_placeholder(): w1 = tf.Variable(tf.random_normal([2, 3], stddev=1,seed=1)) w2 = tf.Variable(tf.random_normal([3, 1], stddev=1,seed=1))#定义placeholder作为存放输入数据的地方,维度不一定要定义,但维度确定可以降低出错的概率 x = tf.placeholder(tf.float32, shape=(3, 2), name="input") a = tf.matmul(x, w1) y = tf.matmul(a, w2) sess = tf.Session() init_op = tf.global_variables_initializer() #init_op = tf.initialize_all_variables() sess.run(init_op) # placeholder的赋值 print(sess.run(y, feed_dict={x: [[0.7, 0.9],[0.1,0.4],[0.5,0.8]]}))func00_def() #函数调用func01_constant()func02_placeholder()
输出:'''tensorflow version: 1.2.1[ 3. 5.][[ 3.95757794]][[ 3.95757794] [ 1.15376544] [ 3.16749239]]'''
以上代码都是书上的实例,但也参考了http://blog.csdn.net/longji/article/details/69472310,博主总结得很到位。
其中,tf.initialize_all_variables已被弃用,使用了tf.global_variables_initializer代替,否则运行过程中会出现警告,要求更新。另外,使用神经网络解决分类问题主要有4个步骤:
1)提取问题中实体的特征向量作为神经网络的输入。
2)定义神经网络的结构,并定义如何从神经网络的输入得到输出(神经网络的前向传播算法)。
3)通过训练数据来调整神经网络中参数的取值(训练神经网络的过程)。
4)使用训练好的神经网络来预测未知的数据。
阅读全文
0 0
- TensorFlow:Chap3笔记总结
- TensorFlow:Chap4笔记总结
- C++ Primer 总结之Chap3 Library Types
- 《Python基础教程》学习笔记 Chap3 使用字符串
- TensorFlow笔记之基础总结
- Inside the C++ Object Model学习笔记[Chap3.0]
- Inside the C++ Object Model学习笔记[Chap3.1-3.3]
- Inside the C++ Object Model学习笔记[Chap3.4]
- Inside the C++ Object Model学习笔记[Chap3.5-3.6]
- [设计模式]--Design Patterns Explained学习笔记[chap3]
- 《python自然语言处理》笔记---chap3加工原料文本
- TensorFlow学习笔记(十二)TensorFLow tensorBoard 总结
- TensorFlow学习笔记(十三)TensorFLow 常用Optimizer 总结
- tensorflow总结
- Tensorflow 总结
- Tensorflow笔记
- tensorflow笔记
- TensorFlow笔记
- Oracle 连接远程数据库
- 漏洞扫描
- jQuery one事件
- 微信公众平台开发[http、https访问问题]
- mysql数据库事务类型
- TensorFlow:Chap3笔记总结
- 【转】 web网页测试用例(非常实用)
- Tensorflow C++ 编译和调用图模型
- UML类图详解
- MySql 查询数据库中所有表名
- minimum-depth-of-binary-tree
- 如何在虚拟机上搭建并配置一个分布式的 Hadoop2.7.4 集群
- OkHttp3练习util
- 拒绝纸上谈兵--从维护了一年的项目中抽取的MVP框架