TensorFlow 读书笔记(一)
20250613 NOTES
这是第二篇读书笔记!2025年6月13日,前一日睡太久,头疼脑热全涌上来,跑步一小时,痊愈。所以说
,生命在于运动,是很有道理。
点击 查看 手把手教会“机器学
习”!
第六章 图像识别与卷积神经网络
主要是基于 Inception 模型作学习,10 年前依据获得 ImageNet 榜首,ImageNet 以开放数据库的形式,吸引程序员在数据集上测试算法,提供程序员统一、相对公正地比赛平台。
# 关于 Inception v3
20250617 NOTES
这篇笔记写到第四章,其实,针对图像识别的卷积神经网络也是想学习来着的,但是也兼顾自己公司的
盈利能力。因学习内容还是挺难的,平时工作之余的时间比较紧张。
第五章笔记还没想好怎么写,因代码篇幅比较多,我自己调试了一遍,改了部分函数。部分算子不是特
别能理解,especially 函数迭代的方式不算很能理解,但是我们会努力地尝试用到我们的工作中。
条件,只训练一个轮次,不迭代(如何更新这件事情没搞懂),2000 个样本(放在一个 Batch 里面)
,使用封装的函数。第一版的 Page-96,5.2.1 TensorFlow 训练神经网络,结果显示。注意,数字方面
就是原来数据集的结果,不是预测结果!

每一个轮次是重新 launch 一个训练,我们会发现 Generally 准确率在 15% 左右。
为了进一步理解好 TensorFlow (TF) 框架,我们又脱离 TF 本身封装的机器学习的算子,自己又写了
一遍前传和反向传播的神经网络,分别称为 NN 和 BPNN,后者全称 Back Propagation Neural Network
。
代码的话,读者点击
《Tensorflow 实战 Google 深度学习框架》 MNIST 笔记
。以及点击
《Tensorflow 实战 Google 深度学习框架》 读书笔记
,这篇是关于基本函数的。
点
击购买书籍,来自当当

回到模型训练。我们首先测试了一波单一前传的神经网络,基本公式如下。
a1 = x
z1 = w1 * a1 + b1
a2 = sigmoid(z1)
z2 = w2 * a2 + b2
a3 = sigmoid(z2)
结果显示,正确率可以达到 30%,也是在所有训练是“试验”中计算正确率。注意,这是中间结果,我
们真实呈现了学习过程。

前传神经网络显然是远远不够的!再说,判断图片只有 30% 正确率情何以堪呢?这不是没及格嘛!对吧
?怎么办呢?这个时候要对神经网络进行修正,具体的做法,传到第二层的时候,我计算 a3 和真实之
间差距 a3 - y (当然,你可以选择其他公式来衡量这个差距!)。再使用一套公式,计算出“边际增
量”,简单理解就是斜率,但是因为是多元的,所以有若干个斜率,计算这个斜率是有固定公式的。大
多数时候,您记住这个公式,就能解决很多问题了!看结果吧!
图1:这是我用没有入模型的 test set 做的测试,显示数字就是模型跑出来的结果。

图2:这是每一轮次跑结果的时候,输出的 COST,以及在入模型的数据 train set 上的准确率。每一轮
次都有一个数值输出,形成一个数列,画成图像。
写在最后
第五章我就写到这个程度,大家有兴趣可以买书看。要注意一个点,之后的章节都是围绕 MNIST 识别,
开展了各种模型的修正和提升。我们现在业务,包括时间,综合考虑,就把读书笔记写到第五章。未来
有多余的时间,会测试卷积神经网络等各种算法。
20250617 NOTES
第九章内容是介绍 TensorBoard,这是一种 TensorFlow 工作可视化工具。
操作方面:
第一步。阿里云人工智能PAI,点击创建角色(原来是自己创建并配置)+开通。
第二步,点击左边导航栏“AI资产管理” - “任务” - “TensorBoard” - “新建 TensorBoard”。
注意,使用阿里云建设的 TensorBoard 会自动设置跑在 OSS 上的放置工作需要自动存放的内容。

上述做法可以打开基础界面,读者可以试一试,但是是基于某个 TASK 或者某个 DATASET 建立的。如果我已经跑了一套 Tansor 的映射体系了,是不是应该直接由各 GRAPH 出来?那还是试试从自己的远程 Launch 一个 TensorBoard。
首先,我测试了这篇文章,博客园《
tensorboard 远程服务器本地浏览器无法显示》,2019 年的文章。似乎不起作用。
然后,我测试了这篇,华为云《
tensorboard 2.0可视化 —— 浏览器中输入http://ip:6006 - 无法访问此网站——有效解决》,2022 年。可见近几年不断有同行测试 TensorFlow 在工业界的应用。我自己学习的时候,还看到网络上 TensorFlow 另一大领域的应用,就是金融风险管理的应用,有机会要深入研究了!
以下是我用自己的远程打开的 TensorBoard,读者注意看浏览器地址栏。

能够打开界面之后,总是很好奇 TensorBoard 能够为我们做什么,因此参考了 CSDN 上的文章。初步使得 TensorBoard 有所显示。基本原理是,把所有想画的图像写进一个函数,然后在 yourip:6006 看到你所输入的数据的可视化结果。

首先,先导入包 SummaryWriter。
from torch.utils.tensorboard import SummaryWriter
然后实例化,存在固定的日志存储文件夹下(注意这个是 TensorBoard 设置 logdir 的文件夹路径)。
writer = SummaryWriter(log_dir='./log/')
再者,在这个实例 writer 内加入一些元素。writer.add_scalar()
writer.add_scalar('TrainLoss', np.random.random(), 1 )
writer.add_scalars('Metrics',
    {'ValLoss': np.random.random(), 'RMSE': np.random.random()},
    1 )

注意,上述图像,是用 python 代码“画”出来的。读者可以在这篇看到结果《
Tensorboard用法:标量曲线图、直方图、模型结构图》。接下来,最期待的!画个张量试一试 —— 可不是麻辣烫哈!!!
根据这篇《
torch.utils.tensorboard》,我们导入 Torch 中的 MNIST 以及 RESNET 成熟的模型包,输出 grid,输送到 writer.add_image();以及 images 输送到 writer.add_graph() 。慢点试试自己的模型能画到 graph 吗?

总算是画出 Tensor 啦!!!阶段任务完成!!

但是,上述是 Torch 集成的,我们输出了 grid 以及 images 两个变量,分别都是图片并且,grid.shape = [m,n,k]。既然知道输入 TensorBoard 的输入是 [m,n,k] 的图片,那么我们试一试将自己的模型画成逻辑图,便于自己对于自己的模型逻辑进行管理,当模型复杂度呈几何级数上升的时候,仍然能够管理好比较复杂的情况。
针对上述 85% 的 BPNN,模型逻辑图如下。
代码基本逻辑
首先将建模的最终函数,封装进 @tf.function()。
其次,launch 会话,在会话里运行
tf.summary.create_file_writer( your-log-path )
然后,开始建立追踪。这一步骤,暂时理解成 GRAPH 中的 THREAD,暂时这么理解。
tf.summary.trace_on(graph=True, profiler=True) # 开启Trace,可以记录图结构和profile信息
with writer.as_default():
    # 保存Trace信息到文件
    tf.summary.trace_export(name='model_trace', step=0, profiler_outdir='/home/py_2023/log' )
再者,TF2 中的 GRAPH 要自己定义。
graph_def = func_name.get_concrete_function( params ).graph.as_graph_def()
最后,launch tf.compat.v1.summary.FileWriter,将上述 graph_def 写入 TensorBoard。
writer1 = tf.compat.v1.summary.FileWriter( your-log-path, graph_def )
第九章书上原话
训练神经网络十分复杂,有时需要几周甚至几天的时间。为了更好地管理、调试和优化神经网络的训练过程,TensorFlow 提供了一个可视化工具 TensorBoard。TensorBoard 可以有效地展示 TensorFlow 在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的图像信息等。
TensorBoard 和 TensorFlow 程序跑在不同的进程中,TensorBoard 会自动读取最新的 TensorFlow 日志文件,并呈现当前 TensorFlow 程序运行最新状态。
TensorBoard 不需要额外的安装过程,在 TensorFlow 安装完成时,TensorBoard 会被自动安装。具体参考前文。
在画出的图中,表达了计算之间的依赖关系,比如在程序中,通过 tf.control_dependencies 函数指定了更新参数滑动平均值的操作和通过反向传播更新变量的操作需要同时进行,于是 moving_average 与 train_step 之间存在一条虚边。除了手动地通过 TensorFlow 中的命名空间来调整 TensorBoard 的可视化效果图,TensorBoard 也会智能地调整可视化效果图上的节点。
第十章 TensorFlow 加速运算 略
第八章 循环神经网络
书上原话
第六章讲解了卷积神经网络的网络结构,并且介绍了如何使用卷积神经网络解决图像识别问题。本章中将介绍另外一种常用的神经网络结构 —— 循环神经网络(Recurrent Neural Network,RNN),以及循环神经网络中的一个重要结构 —— 长短时记忆网络(Long Short-Term Memory,LSTM)。本章也将介绍循环神经网络在自然语言处理(natural language processing,NLP)问题以及时序分析问题中的应用,并给出具体的 TensorFlow 程序来解决一些经典的问题。
循环神经网络挖掘数据中的时序信息以及语义信息的深度表达能力被充分利用,并在语音识别、语言模型、机器翻译以及时序分析等方面实现了突破。
在介绍之前的全连接神经网络或卷积神经网络模型中,网络结构都是从输入层到隐含层再到输出层,层与层之间是全连接 或部分连接的,但每层之间的节点是无连接的。
从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面节点的输出。也就是说,循环神经网络的隐藏层之间的节点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。
而循环神经网络当前状态 A(t) 是根据上一时刻的状态 A(t-1) 和当前的输入 X(t) 共同决定的。从循环神经网络也是处理这类问题时最自然的神经网络结构。
循环神经网络要求每一个时刻都有一个输入,但是不一定每个时刻都需要有输出。在过去几年中,循环神经网络已经被广泛地应用在语音识别、语言模型、机器翻译以及时序分析等问题上,并取得了巨大的成功。
如之前所介绍,循环神经网络可以被看作是同一神经网络结构在时间序列上被复制多次的结果,这个被复制多次的结构被称之为循环体。如何设计循环体的网络结构是循环神经网络解决实际问题的关键。和卷积神经网络过滤器中参数是共享的类似,在循环神经网络中,循环体网络结构中的参数在不同的时刻也是共享的。
循环神经网络中的状态是通过一个向量来表示的。
长段时记忆网络结构 LSTM
第七章 图像数据处理
这个章节介绍了 TF 关于图像处理的特殊函数,介绍了用法。
第六章 图像识别和卷积神经网络
在处理过拟合问题上,卷积层,池化层的作用。未来用函数做实验演示,但是没时间处理这些内容就作罢了。笔者压力也很大!
参考文献
[1]
鲤鱼与驴(2022),详解Inception结构:从Inception v1到Xception,稀土掘金,2022
[2] 小绿
叶(2019),洞悉Inception网络结构,知乎,2019
[3] 吴攀(2017),无需数学背景,读懂 ResNet、Inception 和 Xception 三大变革性架
构,机器之心,2017
[4] 西檬饭(2020),InceptionTime: Finding AlexNet for Time Series
Classification,CSDN,2020
[5] 知乎-阿尔吉侬(2022),InceptionNet系列网络汇总,知乎,2022
[6] AI
与互联网(2020),技术分享 | 你真的懂tf.transpose()函数与Tensor转置操作吗?,知乎,2020
[7] w3cschool(2018), TensorFlow 函数,w3cshool,2018
[8] cup_leo(2019), tensorboard 远程服务器本地浏览器无法显示,博客园,2019
[9] 墨理学AI(2022),tensorboard 2.0可视化 —浏览器中输入http://ip:6006 - 无法访问此网站——有效解决,华为云,2022
[10] Jnchin(2021),Tensorboard用法:标量曲线图、直方图、模型结构图,CSDN,2021
[11] 官方(2025),torch.utils.tensorboard,PyTorch,2025
[12] 狼啸风云(2022),tf.summary.FileWriter,腾讯云,2022
[13] 官方(2025),tf.summary.graph ,TensorFlow,2025
[14] qiaokuankuan(2022),简单粗暴的tensorflow-TensorBoard可视化,博客园,2022
[15] DeepHub深度学习(2022),TensorBoard最全使用教程:看这篇就够了,知乎,2022
[16] 官方(2025),生成一个具体函数,TensorFlow,2025
[17] 官方(2024),TensorFlow的可视化工具:TensorBoard的使用,阿里云,2024