Caffe中输入人工特征的单标签回归(微调)
Single Label Regression(Finetuning) With Input Artificial Features In Caffe
我有,比方说,n
图像,对于每张图像,我都有额外的 2 个人工(合成)特征,图像标签是一维整数。
我想在我的数据集上微调 Image-net,但我不知道如何处理这两个附加功能作为输入,我应该如何将数据提供给 caffe?请帮忙!
编辑:这 2 个特征可以是任意 2 个数字(一维),比如两个数字代表 class 图像属于什么,以及有多少图像属于 class。
说,我有 'cat.jpg',那么特征是 5 和 2000,其中 5 是代表 class 的特征 1,2000 是 class 中的总图像].
总之,这2个特征可以是任意两个整数。
我认为对您来说最直接的方法是使用 "HDF5Data"
输入层,您可以在其中存储输入图像、另外两个 "features" 和预期输出值(用于回归).
你可以看一个例子 for creating HDF5 data in python. A Matlab example can be found 。
你的 HDF5 应该有 4 个 "datasets":一个是输入图像(或 dim 4096 的图像描述符)。 n
images/descriptors 维数组。
另一个数据集是 "feat_1"
一个 n
by 1 数组,以及 "feat_2"
和 n
by 1 个数组。
最后,您应该有另一个输入 "target"
一个 n
x 1 您希望学习的预期输出数组。
准备好包含这些数据集的 HDF5 文件后,您应该
layer {
type: "HDF5Data"
top: "data" # name of dataset with images/imagenet features
top: "feat_1"
top: "feat_2"
top: "target"
hdf5_data_param {
source: "/path/to/list/file.txt"
}
}
如您所见,单个 "HDF5Data"
层可以产生多个"top"。
我有,比方说,n
图像,对于每张图像,我都有额外的 2 个人工(合成)特征,图像标签是一维整数。
我想在我的数据集上微调 Image-net,但我不知道如何处理这两个附加功能作为输入,我应该如何将数据提供给 caffe?请帮忙!
编辑:这 2 个特征可以是任意 2 个数字(一维),比如两个数字代表 class 图像属于什么,以及有多少图像属于 class。
说,我有 'cat.jpg',那么特征是 5 和 2000,其中 5 是代表 class 的特征 1,2000 是 class 中的总图像]. 总之,这2个特征可以是任意两个整数。
我认为对您来说最直接的方法是使用 "HDF5Data"
输入层,您可以在其中存储输入图像、另外两个 "features" 和预期输出值(用于回归).
你可以看一个例子
你的 HDF5 应该有 4 个 "datasets":一个是输入图像(或 dim 4096 的图像描述符)。 n
images/descriptors 维数组。
另一个数据集是 "feat_1"
一个 n
by 1 数组,以及 "feat_2"
和 n
by 1 个数组。
最后,您应该有另一个输入 "target"
一个 n
x 1 您希望学习的预期输出数组。
准备好包含这些数据集的 HDF5 文件后,您应该
layer {
type: "HDF5Data"
top: "data" # name of dataset with images/imagenet features
top: "feat_1"
top: "feat_2"
top: "target"
hdf5_data_param {
source: "/path/to/list/file.txt"
}
}
如您所见,单个 "HDF5Data"
层可以产生多个"top"。