gpt4 book ai didi

python - 具有随机权重的神经网络无法学习

转载 作者:行者123 更新时间:2023-11-30 09:17:58 25 4
gpt4 key购买 nike

我想将使用在 imagenet 上预训练的 VGG16 模型的分类器与不使用 imagenet 权重的分类器进行比较,因此我使用以下方式加载模型

model = applications.VGG16(weights=None, include_top=False, input_shape=(img_width, img_height, 3))

根据Keras documentation使用“weights=None”会导致随机初始化权重。

我现在的问题是,神经网络总是给出相同的输出,即使在经过多个时期的训练并尝试不同的学习率之后,它总是将所有图像预测为同一类。

我不认为输入数据(2 个不同类的图像)或我的代码有问题,因为在使用 imagenet 权重进行初始化并进行训练时,我的分类器学得很好,并且在测试集上达到了 90% 的准确率。

问题可能是什么?也许权重初始化?但我不知道在加载模型时如何使用不同的初始化程序

最佳答案

您可能面临梯度消失问题。

如果您使用relu激活函数,请查看“kaiming初始化”以了解您的体重。目标是在前向传递过程中的每层之后保持输出的平均值为 0,标准差为 1。

对于 relu 激活函数,您必须使用随机正态分布乘以 2/(给定层的输入数量)的平方根进行初始化。

weight_initialisation = random_normal * sqrt(2/(number of input for the layer))

对于 CNN,我认为输入数量将是过滤器数量 * 内核中的单元数量(或者 [5, 5] 内核为 5 * 5)

关于python - 具有随机权重的神经网络无法学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50210953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com