gpt4 book ai didi

c++ - 用于行人识别的 tiny-dnn 错误

转载 作者:太空狗 更新时间:2023-10-29 22:58:28 25 4
gpt4 key购买 nike

我正在开发一个安全系统,我需要对检测到的运动是由人类还是其他原因(例如微风)引起的进行分类......

为此,我最初使用带有关键点的 MLP,但后来我决定切换到卷积神经网络,所以我尝试使用 tiny-dnn C++ 库,但结果总是很糟糕。

这是网络:

net << conv<relu>(80,240,1,1,56)            // conv1 0
<< max_pooling_layer<relu>(80,240,56,2) // max1 1
<< conv<tan_h>(40,120,1,56,64) // conv2 2
<< max_pooling_layer<relu>(40,120,64,2) // max2 3
<< conv<tan_h>(20,60,1,64,72) // conv3 4
<< max_pooling_layer<relu>(20,60,72,2) // max3 5
<< conv<tan_h>(10,30,1,72,55) // conv4 6
<< max_pooling_layer<relu>(10,30,55,2) // max4 7
<< conv<tan_h>(5,15,1,55,27) // conv5 8
<< fc<identity>(2025,333) // fc1 9
<< fc<tan_h>(333,90) // fc2 10
<< dropout_layer(90,0.5) // dropout 11
<< fc<softmax>(90,out); // fc3 12

为了训练它,我使用了 1200 张人物图像和 1200 张随机背景部分的图像(我随机打乱了数据集),我尝试更改优化器学习率batch size,但是当我用 500 张正图像和 500 张负图像测试它时,结果我总是只得到一个类别,每张图像的置信度略有不同。可能是什么问题?

最佳答案

一般来说,您用来从头训练 DNN 的图片数量看起来非常小。为此,您应该考虑或许增加十倍。

另一种方法是使用与快速学习分类服务相同的方法,例如 vize.it ,即使用 a model zoo 中的现有模型预训练您的神经网络并根据您的任务对其进行微调;通过一个简单的应用程序,您可能不会获得与现有服务一样好的结果,但它应该可以帮助您入门。

但首先,您应该进行一些简单的完整性检查,以确保您没有犯更基本的错误:

  • 使用相同类型的图像进行训练和测试。从您的问题中不清楚您是随机拆分数据还是使用来自不同来源的图像 - 如果是后者,请执行图片看起来真的很相似?

  • 您的网络会过拟合吗?如果您向它询问您用于训练的图像怎么办?您应该对这些做出更清晰的预测 - 如果是这样,上述建议绝对适用。

  • 您的网络能否在简单任务上过拟合?尝试为其提供更小的图像,例如 2 或 10 张。您的网络能否识别回这些图像?如果仍然不走运,您可能遇到了数据处理问题或您的框架出现了一些错误。如果可行,是时候进一步调整优化参数了。

祝你好运!

关于c++ - 用于行人识别的 tiny-dnn 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40367232/

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