TensorFlow入门:定义神经网络层与损失优化
需积分: 10 112 浏览量
更新于2024-09-12
收藏 19KB DOCX 举报
本篇笔记主要介绍了TensorFlow库中的基本操作,包括神经网络模型构建、损失函数计算和优化。以下是对关键知识点的详细解读:
1. **定义添加层函数**:
- `add_layer` 函数是神经网络层的核心构建模块。它接受输入 `inputs`、输入维度 `in_size`、输出维度 `out_size` 和可选的激活函数 `activation_function`。函数创建了两个变量:权重 `Weights` 作为随机正态分布初始化的矩阵,以及偏置 `biases` 通常设置为一个非零的小值(这里加了0.1)。接着,通过矩阵乘法将输入与权重相乘,再加偏置,如果指定了激活函数,则应用该函数,否则直接返回线性变换后的结果。
2. **数据准备**:
- 使用 NumPy 生成 -1 到 1 的 300 个随机点作为输入数据 `x_data`,并将其平方减去0.5并添加噪声作为目标输出 `y_data`。这里的目标是拟合一个简单的平方函数,并在训练过程中引入随机性以模拟实际问题中的不确定性。
3. **定义神经网络结构**:
- 输入层只有一个神经元,隐藏层有10个神经元,使用 `ReLU` (Rectified Linear Unit) 激活函数 (`tf.nn.relu`)。这意味着隐藏层的输出将是非负的,有助于解决梯度消失问题。
- 输出层只有一个神经元,没有激活函数,表示回归预测,直接由前一层的输出决定。
4. **损失函数与优化**:
- 使用均方误差作为损失函数 (`tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1])))`,计算每个样本预测值与真实值的差距的平方和的平均值。
- 选择梯度下降优化器 `tf.train.GradientDescentOptimizer(0.1)`,设置学习率(这里是0.1),使用 `minimize(loss)` 方法更新模型参数以最小化损失,这是模型训练的核心步骤。
5. **初始化全局变量**:
- 在开始模型训练之前,使用 `tf.global_variables_initializer()` 初始化所有全局变量,确保它们都被正确地初始化为期望的初始值。
整体来看,这段代码展示了如何使用TensorFlow构建一个简单的前馈神经网络模型,用于拟合一个带有噪声的一次函数。通过迭代训练,优化器调整权重和偏置,以最小化预测值与真实值之间的差异。这在机器学习特别是深度学习领域是基础且重要的技能。
2022-03-30 上传
2023-02-10 上传
2023-04-02 上传
2018-01-13 上传
2021-09-29 上传
2021-03-21 上传
哈喽林先森
- 粉丝: 23
- 资源: 14
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案