博客
关于我
tensorflow
阅读量:192 次
发布时间:2019-02-28

本文共 2042 字,大约阅读时间需要 6 分钟。

TensorFlow是一款强大的机器学习框架,拥有丰富的功能和工具。以下是对TensorFlow基础知识的系统总结,帮助您快速掌握核心概念和操作。

1. TensorFlow Session

TensorFlow Session 是执行图计算的上下文环境,负责管理图的运行和 TensorBoard 日志记录。Session 提供了一个运行 TensorFlow 计算的环境,用户通过 Session.run() 方法执行图中的操作。Session 在多线程和分布式计算中也发挥重要作用。

2. 变量与常量

  • 变量 (Variable):用于创建可修改的张量,可通过 tf.get_variable() 或 tf.Variable 创建。变量初始化后可以通过赋值(如 tf.assign)进行修改。
  • 常量 (Constant):用于创建不可变的张量,使用 tf.constant() 创建。常量值在运行时保持不变。

3. 操作符

TensorFlow 提供了丰富的操作符,用于基本和高级的张量运算:

  • 加法与乘法:使用 tf.add() 和 tf.multiply() 进行元素-wise 加法和乘法。
  • 矩阵运算:使用 tf.matmul() 进行矩阵乘法,tf.reduce_sum() 和 tf.reduce_mean() 进行矩阵求和和平均。
  • 激活函数:如 tf.nn.relu()、tf.sigmoid() 和 tf.tanh() 用于非线性激活。

4. TensorBoard

TensorBoard 是 TensorFl ow 的可视化工具,用于记录和可视化训练过程中的数据。

  • 日志记录:使用 tf.summary.histogram() 和 tf.summary.scalar() 记录标量和直方图数据。
  • 摘要合并与保存:使用 tf.summary.merge_all() 将所有摘要信息合并,并通过 tf.summary.FileWriter() 将日志保存到文件。

5. 卷积(CNN)

卷积神经网络(CNN)是深度学习中的常用结构,主要包括输入层、卷积核、卷积层、激活函数、池化层等。

  • 输入数据:通常为 4D 张量,通过 tf.reshape() 转换成 [batch, height, width, channels]。
  • 卷积核:4D 张量,通过 tf.truncated_normal() 创建,形状为 [filter_height, filter_width, in_channels, out_channels]。
  • 卷积操作:使用 tf.nn.conv2d() 进行卷积,步长和填充模式(VALID/SAME)需注意。
  • 激活与池化:使用 tf.nn.relu() 激活,tf.nn.max_pool_2x2() 进行池化。

6. 反卷积

反卷积层用于特征图的解构或图像生成,常见于图像恢复和生成任务。

  • 使用反卷积:使用 tf.layers.conv2d_transpose() 创建反卷积核,并设置步长和填充模式(SAME/VALID)。
  • 示例:输入层尺寸为 2x2,反卷积核尺寸为 3x3,步长为 2,填充模式为 SAME 时,输出尺寸为 4x4。

7. dropout

tf.nn.dropout() 用于防止过拟合,通过设定 keep_prob 参数控制丢弃率。

8. 变量管理

  • tf.variable_scope:用于管理变量组,允许在同一变量组中创建和获取变量。
  • tf.name_scope:用于为变量设置命名空间,方便在 TensorBoard 中可视化。

9. 保存与加载模型

  • 保存模型:使用 tf.train.Saver() 指定要保存的变量,设置 max_to_keep 和 keep_checkpoint_every_n_hours。
  • 加载模型:使用 tf.train.import_meta_graph() 和 tf.train.latest_checkpoint() 恢复已保存的模型。

10. 激活函数

  • sigmoid:用于二分类,输出为 0-1。
  • tanh:用于中间层,输出范围为 -1 到 1。
  • ReLU:常用于深度网络,输出非负值。
  • softplus:类似于 log(cosh(x)),用于损失函数。
  • softmax:用于分类,输出概率分布。

11. TensorBoard 高级使用

  • 记录多种数据类型:使用 tf.summary.text()、tf.summary.image() 和 tf.summary.audio() 记录文本、图像和音频。
  • 自动生成摘要:使用 tf.summary.merge_all() 合并所有摘要信息,并通过 FileWriter() 保存到指定路径。

通过以上知识,您可以开始构建和训练复杂的机器学习模型,结合 TensorBoard 进行调试和可视化,充分发挥 TensorFlow 的优势。

转载地址:http://fcbi.baihongyu.com/

你可能感兴趣的文章
Oracle EBS环境下查找数据源(OAF篇)
查看>>
Oracle GoldenGate Director安装和配置(无图)
查看>>
oracle script
查看>>
Oracle select表要带双引号的原因
查看>>
Oracle SOA Suit Adapter
查看>>
Oracle Spatial空间数据库建立
查看>>
UML— 活动图
查看>>
Oracle Statspack分析报告详解(一)
查看>>
oracle 使用leading, use_nl, rownum调优
查看>>
Oracle 写存储过程的一个模板还有一些基本的知识点
查看>>
Oracle 创建 DBLink 的方法
查看>>
oracle 创建字段自增长——两种实现方式汇总
查看>>
Oracle 升级10.2.0.5.4 OPatch 报错Patch 12419392 Optional component(s) missing 解决方法
查看>>
oracle 可传输的表空间:rman
查看>>
Oracle 启动监听命令
查看>>
oracle 学习
查看>>
ORACLE 客户端工具连接oracle 12504
查看>>
oracle 行转列
查看>>
Oracle 表
查看>>
Oracle 递归
查看>>