TensorFlow学习笔记(一)

本文详细介绍神经网络的搭建和训练流程,包括数据准备、前向传播、反向传播及模型预测。通过实例演示如何使用TensorFlow进行神经网络的参数优化,降低损失函数,提升模型精度。
部署运行你感兴趣的模型镜像

基本概念

在这里插入图片描述
数据类型:

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-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值