基本概念

数据类型:
TensorFlow的数据类型有tf.float32、tf.int32等。
TensorFlow的加法:

TensorFlow的乘法:

计算图(Graph):
搭建神经网络的计算过程,是承载一个或多个计算节点的一张图,只搭建神经网络,不执行运算。
会话(Session):执行计算图中的节点运算
执行Session会话来计算矩阵相乘的结果:

神经网络的参数


神经网络的搭建
神经网络的实现过程:
1、准备数据集,提取特征,作为输入喂给神经网络(Neural Network,NN)
2、搭建NN结构,从输入到输出(先搭建计算图,再用会话执行)
(NN前向传播算法–>计算输出)
3、大量特征数据喂给NN,迭代优化NN参数
(NN反向传播算法–>优化参数训练模型)
4、使用训练好的模型预测和分类
搭建神经网络的四部曲:
1、导入模块,生成模拟数据集
2、前向传播:定义输入、参数和输出
3、反向传播:定义损失函数、反向传播的方法
4、生成会话,训练STEPS轮
前向传播

前向传播的TensorFlow描述:
- 变量初始化、计算图节点运算都要用会话(with结构)实现
- 变量初始化:在sess.run()函数中,用tf.global_variables_initializer()汇总所有待优化变量
- 计算图节点运算:在sess.run()函数中,写入待运算的节点
- 用tf.placeholder占位,在sess.run()函数中用feed_dict喂数据

反向传播
反向传播:训练模型参数,在所有参数上用梯度下降,使NN模型在训练数据上的损失函数最小。
损失函数(loss):计算得到的预测值y与已知答案y_的差距。
反向传播训练方法:以减少loss值为优化目标,有梯度下降、momentum优化器、adam优化器等优化方法。

例题
随机产生32组生产出的零件的体积和重量,训练3000轮,每500轮输出一次损失函数。

产生的数据如下所示:
X:
[[0.83494319 0.11482951]
[0.66899751 0.46594987]
[0.60181666 0.58838408]
[0.31836656 0.20502072]
[0.87043944 0.02679395]
[0.41539811 0.43938369]
[0.68635684 0.24833404]
[0.97315228 0.68541849]
[0.03081617 0.89479913]
[0.24665715 0.28584862]
[0.31375667 0.47718349]
[0.56689254 0.77079148]
[0.7321604 0.35828963]
[0.15724842 0.94294584]
[0.34933722 0.84634483]
[0.50304053 0.81299619]
[0.23869886 0.9895604 ]
[0.4636501 0.32531094]
[0.36510487 0.97365522]
[0.73350238 0.83833013]
[0.61810158 0.12580353]
[0.59274817 0.18779828]
[0.87150299 0.34679501]
[0.25883219 0.50002932]
[0.75690948 0.83429824]
[0.29316649 0.05646578]
[0.10409134 0.88235166]
[0.06727785 0.57784761]
[0.38492705 0.48384792]
[0.69234428 0.19687348]
[0.42783492 0.73416985]
[0.09696069 0.04883936]]
Y:
[[1], [0], [0], [1], [1], [1], [1], [0], [1], [1], [1], [0], [0], [0], [0], [0], [0], [1], [0], [0], [1], [1], [0], [1], [0], [1], [1], [1], [1], [1], [0], [1]]


最终结果如下所示:
w1:
[[-0.8113182 1.4845988 0.06532937]
[-2.4427042 0.0992484 0.5912243 ]]
w2:
[[-0.8113182 ]
[ 1.4845988 ]
[ 0.06532937]]
After 0 training steps(s),loss on all data is 5.13118
After 500 training steps(s),loss on all data is 0.413201
After 1000 training steps(s),loss on all data is 0.394286
After 1500 training steps(s),loss on all data is 0.390501
After 2000 training steps(s),loss on all data is 0.389507
After 2500 training steps(s),loss on all data is 0.390754
w1:
[[-0.64974844 0.77330494 0.08983925]
[-2.3583086 -0.06456576 0.58527434]]
w2:
[[-0.1413556 ]
[ 0.7692938 ]
[-0.03471273]]
本文详细介绍神经网络的搭建和训练流程,包括数据准备、前向传播、反向传播及模型预测。通过实例演示如何使用TensorFlow进行神经网络的参数优化,降低损失函数,提升模型精度。
1160

被折叠的 条评论
为什么被折叠?



