Hello everyone, I am trying to do the caffe regression. All the training data I used are labeled 0~1, and the loss value is about 0.02. However, the prediction of my training model is always larger than 1 (maybe 10~50 or larger), even the training data which I used to train has the same situation. I have tried to use the label without normalized to 0~1, but the prediction value becomes much larger (more than 500). Does anyone have the same problem when using the caffe regression or have any advice to handle this problem?
Here is my training net.
name: "Net"
layer {
name: "net"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
scale: 0.00390625
}
data_param {
source: "D:/YuCaffe/caffe-master0/data/type11/train_leveldb"
batch_size: 64
backend: LEVELDB
}
}
layer {
name: "net"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
scale: 0.00390625
}
data_param {
source: "D:/YuCaffe/caffe-master0/data/type11/test_leveldb"
batch_size: 256
backend: LEVELDB
}
}
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
param {
lr_mult: 0.1
decay_mult: 1
}
param {
lr_mult: 0.2
decay_mult: 0
}
convolution_param {
num_output: 96
kernel_size: 11
stride: 4
weight_filler {
type: "xavier"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "relu1"
type: "ReLU"
bottom: "conv1"
top: "conv1"
}
layer {
name: "norm1"
type: "LRN"
bottom: "conv1"
top: "norm1"
lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layer {
name: "pool1"
type: "Pooling"
bottom: "norm1"
top: "pool1"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "conv2"
type: "Convolution"
bottom: "pool1"
top: "conv2"
param {
lr_mult: 0.1
decay_mult: 1
}
param {
lr_mult: 0.2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 2
kernel_size: 5
weight_filler {
type: "xavier"
std: 0.01
}
bias_filler {
type: "constant"
value: 0.1
}
}
}
layer {
name: "relu2"
type: "ReLU"
bottom: "conv2"
top: "conv2"
}
layer {
name: "norm2"
type: "LRN"
bottom: "conv2"
top: "norm2"
lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layer {
name: "pool2"
type: "Pooling"
bottom: "norm2"
top: "pool2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "conv3"
type: "Convolution"
bottom: "pool2"
top: "conv3"
param {
lr_mult: 0.1
decay_mult: 1
}
param {
lr_mult: 0.2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
group: 2
weight_filler {
type: "xavier"
std: 0.01
}
bias_filler {
type: "constant"
value: 0.1
}
}
}
layer {
name: "relu3"
type: "ReLU"
bottom: "conv3"
top: "conv3"
}
layer {
name: "pool3"
type: "Pooling"
bottom: "conv3"
top: "pool3"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "fc4_flickr"
type: "InnerProduct"
bottom: "pool3"
top: "fc4_flickr"
param {
lr_mult: 0.1
decay_mult: 1
}
param {
lr_mult: 0.2
decay_mult: 0
}
inner_product_param {
num_output: 4096
weight_filler {
type: "xavier"
std: 0.005
}
bias_filler {
type: "constant"
value: 0.1
}
}
}
layer {
name: "relu4"
type: "ReLU"
bottom: "fc4_flickr"
top: "fc4_flickr"
}
layer {
name: "drop4"
type: "Dropout"
bottom: "fc4_flickr"
top: "fc4_flickr"
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "fc5_flickr"
type: "InnerProduct"
bottom: "fc4_flickr"
top: "fc5_flickr"
param {
lr_mult: 0.1
decay_mult: 1
}
param {
lr_mult: 0.2
decay_mult: 0
}
inner_product_param {
num_output: 1
weight_filler {
type: "xavier"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "relu5_value"
type: "ReLU"
bottom: "fc5_flickr"
top: "fc5_flickr"
}
layer {
name: "value"
type: "EuclideanLoss"
bottom: "fc5_flickr"
bottom: "label"
top: "value"
}
Thank you for any help you can provide.