summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorJeff Donahue <jeff.donahue@gmail.com>2014-04-15 14:52:41 -0700
committerJeff Donahue <jeff.donahue@gmail.com>2014-04-15 14:52:41 -0700
commita767caf273b3332cc33092da061fb498a3008443 (patch)
treef2068b65d4f7b8eb8f7ee6100473e741746f6def /examples
parent9f1dc9651070f52e9a4e26a6c17d95c6b4c585f8 (diff)
downloadcaffe-a767caf273b3332cc33092da061fb498a3008443.tar.gz
caffe-a767caf273b3332cc33092da061fb498a3008443.tar.bz2
caffe-a767caf273b3332cc33092da061fb498a3008443.zip
add mnist autoencoder example necessities (sigmoid cross entropy loss
layer, sparse gaussian filler)
Diffstat (limited to 'examples')
-rw-r--r--examples/mnist/mnist_autoencoder_solver.prototxt14
-rw-r--r--examples/mnist/mnist_autoencoder_test.prototxt164
-rw-r--r--examples/mnist/mnist_autoencoder_train.prototxt236
-rwxr-xr-xexamples/mnist/train_mnist_autoencoder.sh4
4 files changed, 418 insertions, 0 deletions
diff --git a/examples/mnist/mnist_autoencoder_solver.prototxt b/examples/mnist/mnist_autoencoder_solver.prototxt
new file mode 100644
index 00000000..b11b2c46
--- /dev/null
+++ b/examples/mnist/mnist_autoencoder_solver.prototxt
@@ -0,0 +1,14 @@
+train_net: "mnist_autoencoder_train.prototxt"
+test_net: "mnist_autoencoder_test.prototxt"
+test_iter: 50
+test_interval: 100
+base_lr: 0.0001
+lr_policy: "fixed"
+display: 20
+max_iter: 4500000
+weight_decay: 0.0005
+snapshot: 10000
+snapshot_prefix: "alexnet_train"
+momentum: 0.9
+solver_mode: 1
+device_id: 1
diff --git a/examples/mnist/mnist_autoencoder_test.prototxt b/examples/mnist/mnist_autoencoder_test.prototxt
new file mode 100644
index 00000000..bec7a3c2
--- /dev/null
+++ b/examples/mnist/mnist_autoencoder_test.prototxt
@@ -0,0 +1,164 @@
+name: "MNISTAutoencoder"
+layers {
+ top: "data"
+ top: "label"
+ name: "data"
+ type: DATA
+ data_param {
+ source: "mnist-test-leveldb"
+ scale: 0.0039215684
+ batch_size: 100
+ }
+}
+layers {
+ bottom: "data"
+ top: "flatdata"
+ name: "flatdata"
+ type: FLATTEN
+}
+layers {
+ bottom: "data"
+ top: "encode1"
+ name: "encode1"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 1000
+ }
+}
+layers {
+ bottom: "encode1"
+ top: "encode1neuron"
+ name: "encode1neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "encode1neuron"
+ top: "encode2"
+ name: "encode2"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 500
+ }
+}
+layers {
+ bottom: "encode2"
+ top: "encode2neuron"
+ name: "encode2neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "encode2neuron"
+ top: "encode3"
+ name: "encode3"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 250
+ }
+}
+layers {
+ bottom: "encode3"
+ top: "encode3neuron"
+ name: "encode3neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "encode3neuron"
+ top: "encode4"
+ name: "encode4"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 30
+ }
+}
+layers {
+ bottom: "encode4"
+ top: "decode4"
+ name: "decode4"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 250
+ }
+}
+layers {
+ bottom: "decode4"
+ top: "decode4neuron"
+ name: "decode4neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "decode4neuron"
+ top: "decode3"
+ name: "decode3"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 500
+ }
+}
+layers {
+ bottom: "decode3"
+ top: "decode3neuron"
+ name: "decode3neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "decode3neuron"
+ top: "decode2"
+ name: "decode2"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 1000
+ }
+}
+layers {
+ bottom: "decode2"
+ top: "decode2neuron"
+ name: "decode2neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "decode2neuron"
+ top: "decode1"
+ name: "decode1"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 784
+ }
+}
+layers {
+ bottom: "decode1"
+ bottom: "flatdata"
+ name: "loss"
+ type: EUCLIDEAN_LOSS
+}
diff --git a/examples/mnist/mnist_autoencoder_train.prototxt b/examples/mnist/mnist_autoencoder_train.prototxt
new file mode 100644
index 00000000..d5201eb9
--- /dev/null
+++ b/examples/mnist/mnist_autoencoder_train.prototxt
@@ -0,0 +1,236 @@
+name: "MNISTAutoencoder"
+layers {
+ top: "data"
+ top: "label"
+ name: "data"
+ type: DATA
+ data_param {
+ source: "mnist-train-leveldb"
+ scale: 0.0039215684
+ batch_size: 100
+ }
+}
+layers {
+ bottom: "data"
+ top: "flatdata"
+ name: "flatdata"
+ type: FLATTEN
+}
+layers {
+ bottom: "data"
+ top: "encode1"
+ name: "encode1"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 1000
+ weight_filler {
+ type: "gaussian"
+ std: 1
+ sparse: 15
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ bottom: "encode1"
+ top: "encode1neuron"
+ name: "encode1neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "encode1neuron"
+ top: "encode2"
+ name: "encode2"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 500
+ weight_filler {
+ type: "gaussian"
+ std: 1
+ sparse: 15
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ bottom: "encode2"
+ top: "encode2neuron"
+ name: "encode2neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "encode2neuron"
+ top: "encode3"
+ name: "encode3"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 250
+ weight_filler {
+ type: "gaussian"
+ std: 1
+ sparse: 15
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ bottom: "encode3"
+ top: "encode3neuron"
+ name: "encode3neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "encode3neuron"
+ top: "encode4"
+ name: "encode4"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 30
+ weight_filler {
+ type: "gaussian"
+ std: 1
+ sparse: 15
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ bottom: "encode4"
+ top: "decode4"
+ name: "decode4"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 250
+ weight_filler {
+ type: "gaussian"
+ std: 1
+ sparse: 15
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ bottom: "decode4"
+ top: "decode4neuron"
+ name: "decode4neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "decode4neuron"
+ top: "decode3"
+ name: "decode3"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 500
+ weight_filler {
+ type: "gaussian"
+ std: 1
+ sparse: 15
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ bottom: "decode3"
+ top: "decode3neuron"
+ name: "decode3neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "decode3neuron"
+ top: "decode2"
+ name: "decode2"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 1000
+ weight_filler {
+ type: "gaussian"
+ std: 1
+ sparse: 15
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ bottom: "decode2"
+ top: "decode2neuron"
+ name: "decode2neuron"
+ type: SIGMOID
+}
+layers {
+ bottom: "decode2neuron"
+ top: "decode1"
+ name: "decode1"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 1
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 784
+ weight_filler {
+ type: "gaussian"
+ std: 1
+ sparse: 15
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ bottom: "decode1"
+ bottom: "flatdata"
+ name: "loss"
+ type: SIGMOID_CROSS_ENTROPY_LOSS
+}
diff --git a/examples/mnist/train_mnist_autoencoder.sh b/examples/mnist/train_mnist_autoencoder.sh
new file mode 100755
index 00000000..af2245e0
--- /dev/null
+++ b/examples/mnist/train_mnist_autoencoder.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+TOOLS=../../build/tools
+
+GLOG_logtostderr=1 $TOOLS/train_net.bin mnist_autoencoder_solver.prototxt