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.