net: "models/simplenet.prototext"test_iter: 1test_interval: 100base_lr: 0.000001momentum: 0.7weight_decay: 0.0005lr_policy: "inv"gamma: 0.0001power: 0.75display: 50max_iter: 4000snapshot: 200snapshot_prefix: "models/snapshots/simplenet/"solver_mode: CPU
name: "simplenet"input: "data"input_dim: 10input_dim: 3input_dim: 224input_dim: 224
layer {Ā name: "conv1"Ā type: "Convolution"Ā param { lr_mult: 1 }Ā param { lr_mult: 2 }Ā convolution_param {Ā Ā num_output: 20Ā Ā Ā kernel_size: 5Ā Ā stride: 1Ā Ā weight_filler {Ā Ā Ā type: "xavier"Ā Ā }Ā Ā bias_filler {Ā Ā Ā type: "constant"Ā Ā }Ā }
Ā bottom: "data"Ā Ā top: "conv1"}
layer {Ā name: "pool1"Ā type: "Pooling"Ā pooling_param {Ā Ā Ā kernel_size: 2Ā Ā stride: 2Ā Ā pool: MAXĀ }Ā bottom: "conv1"Ā top: "pool1"}
layer {Ā name: "ip1"Ā type: "InnerProduct"Ā param { lr_mult: 1 }Ā param { lr_mult: 2 }Ā inner_product_param {Ā Ā num_output: 5Ā Ā weight_filler {Ā Ā Ā type: "xavier"Ā Ā }Ā Ā bias_filler {Ā Ā Ā type: "constant"Ā Ā }Ā }Ā bottom: "pool1"Ā top: "ip1"}
layer {Ā name: "prob"Ā type: "Softmax"Ā bottom: "ip1"Ā top: "prob"}
image1.jpg .1 .2 .3 .4 .5image2.jpg .90 .54 .12 .65 .34...(some more images)...image9.jpg .98 .12 .44 .33 22image10.jpg .10 .32 .13 .5 .93
name: "simplenet"
layer {Ā name: "input"Ā type: "HDF5Data"Ā top: "data"Ā top: "label"
Ā hdf5_data_param {Ā Ā source: "models/train_h5_list.txt"Ā Ā batch_size: 1
Ā name: "loss"Ā type: "EuclideanLoss"Ā bottom: "ip1"Ā Ā bottom: "label"Ā }
loss = -0.0010292. Afterwards, I ranĀ
caffe train -model=simplenet.prototxt -weights=snapshots/simplenet_iter_2000.caffemodel
which outputs after 50 iterations: loss =Ā 6.91784e-06Ā
In my prototext, I don't use any TRAIN/TEST layers, and the data layer always reads from the same hdf5 source, so the training and testing losses ought to be the same, right? I'm wondering if maybe I ran something wrong, but I'm wondering what causes this.