| name: 'LinearRegressionExample' | |
| # define a simple network for linear regression on dummy data | |
| # that computes the loss by a PythonLayer. | |
| layer { | |
| type: 'DummyData' | |
| name: 'x' | |
| top: 'x' | |
| dummy_data_param { | |
| shape: { dim: 10 dim: 3 dim: 2 } | |
| data_filler: { type: 'gaussian' } | |
| } | |
| } | |
| layer { | |
| type: 'DummyData' | |
| name: 'y' | |
| top: 'y' | |
| dummy_data_param { | |
| shape: { dim: 10 dim: 3 dim: 2 } | |
| data_filler: { type: 'gaussian' } | |
| } | |
| } | |
| # include InnerProduct layers for parameters | |
| # so the net will need backward | |
| layer { | |
| type: 'InnerProduct' | |
| name: 'ipx' | |
| top: 'ipx' | |
| bottom: 'x' | |
| inner_product_param { | |
| num_output: 10 | |
| weight_filler { type: 'xavier' } | |
| } | |
| } | |
| layer { | |
| type: 'InnerProduct' | |
| name: 'ipy' | |
| top: 'ipy' | |
| bottom: 'y' | |
| inner_product_param { | |
| num_output: 10 | |
| weight_filler { type: 'xavier' } | |
| } | |
| } | |
| layer { | |
| type: 'Python' | |
| name: 'loss' | |
| top: 'loss' | |
| bottom: 'ipx' | |
| bottom: 'ipy' | |
| python_param { | |
| # the module name -- usually the filename -- that needs to be in $PYTHONPATH | |
| module: 'pyloss' | |
| # the layer name -- the class name in the module | |
| layer: 'EuclideanLossLayer' | |
| } | |
| # set loss weight so Caffe knows this is a loss layer. | |
| # since PythonLayer inherits directly from Layer, this isn't automatically | |
| # known to Caffe | |
| loss_weight: 1 | |
| } | |