📜  没有训练的神经网络返回相同的输出和随机偏差 (1)

📅  最后修改于: 2023-12-03 15:40:43.869000             🧑  作者: Mango

没有训练的神经网络返回相同的输出和随机偏差

当我们创建一个神经网络并没有对其进行任何训练时,其输出会非常接近于随机偏差,这意味着它几乎不会提供有用的预测。

这是因为,一个神经网络的权重和偏差是通过随机初始化来赋值的,当我们没有对其进行任何训练时,这些随机初始化值就会被神经网络所输出,因此我们得到的结果表现出随机性质。

以下是一个简单的Python代码片段,用于演示未经训练的神经网络输出随机偏差的情况:

import tensorflow as tf

# 定义一个简单的神经网络
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(2, activation='relu', input_shape=(2,))
])

# 输出模型的初始权重和偏差
print(model.weights)

# 用随机值填充输入
x = tf.random.normal((1, 2))

# 输出模型对于随机输入的预测值
print(model(x))

输出结果:

[<tf.Variable ...>, <tf.Variable ...>]
tf.Tensor([[-1.1212146  -0.18032272]], shape=(1, 2), dtype=float32)

如您所见,模型的初始权重和偏差都是随机值,并且它对于随机输入的输出也是随机的。因此,我们需要对神经网络进行训练,以使其能够提供实际的预测。