在C++或Python中与Caffe交互时遇到的问题

我从教程中了解到,你首先创建数据,然后使用protobuf编写模型,接着编写求解器文件。最后,你训练模型并得到生成的文件。所有这些操作都是通过命令行完成的。现在有两个问题需要解答

1) 假设我已经生成了模型,现在我想加载一个不在测试文件夹中的新图像并进行前向传递。这应该通过命令行还是通过某种编程语言(如C++、Python)来完成?

2) 上述方法可能是一种方式。训练分类器的最佳方法是什么(是通过命令行训练还是通过编程)?以及如何在代码中使用训练后的生成模型文件?

我想将Caffe与我的代码进行接口,但找不到一个简短的教程,可以逐步指导我使用任何数据库(比如mnist),并且模型不需要像LeNet那样复杂,一个简单的全连接层也可以。但有谁能告诉我如何仅使用C++或Python编写一个简单的代码,从头开始训练任何数据集呢?

提供一个使用Caffe训练分类器并使用它预测新数据的C++/Python样本代码也将非常受欢迎。


回答:

训练最好通过命令行完成。请参见此教程

一旦你训练了一个模型,并且你有了一个myModel.caffemodel文件(一个存储不同层权重的二进制文件)和一个deploy.prototxt文件(一个描述你的网络的文本文件),你就可以使用Python接口来对图像进行分类。

你可以运行Python脚本classify.py从命令行对图像进行分类。这个脚本包装了classifier.py – 一个Python对象,它保存了一个训练好的网络,并允许你在Python中进行前向传递。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注