name: "MPIIGaze" layers { name: "MPII_train" type: HDF5_DATA top: "data" top: "label" hdf5_data_param { source: "../train_list.txt" batch_size: 1000 } include: { phase: TRAIN } } layers { name: "MPII_test" type: HDF5_DATA top: "data" top: "label" hdf5_data_param { source: "../test_list.txt" batch_size: 1000 } include: { phase: TEST } } layers { name: "cutLabel" type: SLICE bottom: "label" top: "gaze" top: "headpose" slice_param { slice_dim: 1 slice_point: 2 } } layers { name: "conv1" type: CONVOLUTION bottom: "data" top: "conv1" blobs_lr: 1 blobs_lr: 2 convolution_param { num_output: 20 kernel_size: 5 stride: 1 weight_filler { type: "gaussian" std: 0.1 } bias_filler { type: "constant" } } } layers { name: "pool1" type: POOLING bottom: "conv1" top: "pool1" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layers { name: "conv2" type: CONVOLUTION bottom: "pool1" top: "conv2" blobs_lr: 1 blobs_lr: 2 convolution_param { num_output: 50 kernel_size: 5 stride: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layers { name: "pool2" type: POOLING bottom: "conv2" top: "pool2" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layers { name: "ip1" type: INNER_PRODUCT bottom: "pool2" top: "ip1" blobs_lr: 1 blobs_lr: 2 inner_product_param { num_output: 500 weight_filler { type: "xavier" } bias_filler { type: "constant" } } } layers { name: "relu1" type: RELU bottom: "ip1" top: "ip1" } layers { name: "concat_headpose_eyeappearance" type: CONCAT bottom: "ip1" bottom: "headpose" top: "cat" } layers { name: "ip2" type: INNER_PRODUCT bottom: "cat" top: "ip2" blobs_lr: 1 blobs_lr: 2 inner_product_param { num_output: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" } } } layers { name: "accuracy" type: ACCURACY bottom: "ip2" bottom: "gaze" top: "accuracy" include: { phase: TEST } } layers { name: "loss" type: EUCLIDEAN_LOSS bottom: "ip2" bottom: "gaze" top: "loss" }