TensorFlow入门:定义神经网络层与损失优化

需积分: 10 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构建一个简单的前馈神经网络模型,用于拟合一个带有噪声的一次函数。通过迭代训练,优化器调整权重和偏置,以最小化预测值与真实值之间的差异。这在机器学习特别是深度学习领域是基础且重要的技能。