python - PyCaffe 输出层用于测试二元分类模型

标签 python deep-learning caffe convolution pycaffe

我对 vgg-16 进行了微调以进行二元分类。我使用 sigmoidLoss 层作为损失函数。

为了测试模型,我编写了一个 python 文件,在其中使用图像加载模型并使用以下命令获取输出:

out = net.forward()

我的疑问是我应该从 Sigmoid 层还是 SigmoidLoss 层获取输出。 2层之间有什么区别。

我的输出实际上是输入图像属于 1 类的概率。**

最佳答案

为了对测试集进行预测,您可以通过修改原始prototxt来创建单独的部署prototxt。

以下是相同的步骤

  • 删除用于训练的数据层,就分类而言,我们不再为数据提供标签。
  • 删除任何依赖于数据标签的层。
  • 设置网络以接受数据。
  • 让网络输出结果。

您可以在这里阅读更多相关信息:deploy prototxt

否则,您可以添加
包括 { 阶段:训练 }

到您的 SigmoidWithLoss 层,以便在测试网络时不使用它。要进行预测,只需检查 Sigmoid 层的输出即可。

关于python - PyCaffe 输出层用于测试二元分类模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42883603/

相关文章:

.net - 是否可以在一张大图片上找到并计算所有“猫”?

tensorflow - 在 Keras 和 Linux 的 Tensorflow 后端中使用 GPU 代替 CPU

python - 在 Python 中使用 caffe.NetSpec() 时,train.prototxt 中的两个顶部 blob

c++ - 在 layer_factory.hpp 创建层错误

python - 根据另一列更改列的值

python - Django "TemplateDoesNotExist "错误但 "Using loader django.template.loaders.app_directories.Loader"文件存在

python - 如何使用 Pycharm 调试 python 脚本?

python - 使用 Conda Build 的 Cython Python 程序

python - 在 Keras 中 reshape 自定义损失函数中的张量

neural-network - 用于 Caffe 的 LSTM 模块