diff options
author | Jeff Donahue <jeff.donahue@gmail.com> | 2014-04-15 14:52:41 -0700 |
---|---|---|
committer | Jeff Donahue <jeff.donahue@gmail.com> | 2014-04-15 14:52:41 -0700 |
commit | a767caf273b3332cc33092da061fb498a3008443 (patch) | |
tree | f2068b65d4f7b8eb8f7ee6100473e741746f6def /examples | |
parent | 9f1dc9651070f52e9a4e26a6c17d95c6b4c585f8 (diff) | |
download | caffe-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.prototxt | 14 | ||||
-rw-r--r-- | examples/mnist/mnist_autoencoder_test.prototxt | 164 | ||||
-rw-r--r-- | examples/mnist/mnist_autoencoder_train.prototxt | 236 | ||||
-rwxr-xr-x | examples/mnist/train_mnist_autoencoder.sh | 4 |
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 |