From 6648c05e1c2c8713f25bcaf55764cba446e89265 Mon Sep 17 00:00:00 2001 From: Nick Carlevaris-Bianco Date: Thu, 21 Aug 2014 09:32:10 -0400 Subject: [PATCH] Added contrastive loss layer, associated tests, and a siamese network example using shared weights and the contrastive loss. --- .../siamese/convert_mnist_siamese_data.cpp | 123 +++++++ examples/siamese/create_mnist_siamese.sh | 21 ++ examples/siamese/mnist_siamese.ipynb | 169 ++++++++++ examples/siamese/mnist_siamese.prototxt | 95 ++++++ .../siamese/mnist_siamese_solver.prototxt | 25 ++ .../siamese/mnist_siamese_train_test.prototxt | 313 ++++++++++++++++++ examples/siamese/readme.md | 179 ++++++++++ examples/siamese/train_mnist_siamese.sh | 5 + include/caffe/loss_layers.hpp | 87 +++++ src/caffe/layer_factory.cpp | 2 + src/caffe/layers/contrastive_loss_layer.cpp | 101 ++++++ src/caffe/layers/contrastive_loss_layer.cu | 91 +++++ src/caffe/proto/caffe.proto | 12 +- .../test/test_contrastive_loss_layer.cpp | 102 ++++++ 14 files changed, 1323 insertions(+), 2 deletions(-) create mode 100644 examples/siamese/convert_mnist_siamese_data.cpp create mode 100755 examples/siamese/create_mnist_siamese.sh create mode 100644 examples/siamese/mnist_siamese.ipynb create mode 100644 examples/siamese/mnist_siamese.prototxt create mode 100644 examples/siamese/mnist_siamese_solver.prototxt create mode 100644 examples/siamese/mnist_siamese_train_test.prototxt create mode 100644 examples/siamese/readme.md create mode 100755 examples/siamese/train_mnist_siamese.sh create mode 100644 src/caffe/layers/contrastive_loss_layer.cpp create mode 100644 src/caffe/layers/contrastive_loss_layer.cu create mode 100644 src/caffe/test/test_contrastive_loss_layer.cpp diff --git a/examples/siamese/convert_mnist_siamese_data.cpp b/examples/siamese/convert_mnist_siamese_data.cpp new file mode 100644 index 00000000000..400d15a2705 --- /dev/null +++ b/examples/siamese/convert_mnist_siamese_data.cpp @@ -0,0 +1,123 @@ +// +// This script converts the MNIST dataset to the leveldb format used +// by caffe to train siamese network. +// Usage: +// convert_mnist_data input_image_file input_label_file output_db_file +// The MNIST dataset could be downloaded at +// http://yann.lecun.com/exdb/mnist/ +#include // NOLINT(readability/streams) +#include + +#include "glog/logging.h" +#include "google/protobuf/text_format.h" +#include "leveldb/db.h" +#include "stdint.h" + +#include "caffe/proto/caffe.pb.h" +#include "caffe/util/math_functions.hpp" + +uint32_t swap_endian(uint32_t val) { + val = ((val << 8) & 0xFF00FF00) | ((val >> 8) & 0xFF00FF); + return (val << 16) | (val >> 16); +} + +void read_image(std::ifstream* image_file, std::ifstream* label_file, + uint32_t index, uint32_t rows, uint32_t cols, + char* pixels, char* label) { + image_file->seekg(index * rows * cols + 16); + image_file->read(pixels, rows * cols); + label_file->seekg(index + 8); + label_file->read(label, 1); +} + +void convert_dataset(const char* image_filename, const char* label_filename, + const char* db_filename) { + // Open files + std::ifstream image_file(image_filename, std::ios::in | std::ios::binary); + std::ifstream label_file(label_filename, std::ios::in | std::ios::binary); + CHECK(image_file) << "Unable to open file " << image_filename; + CHECK(label_file) << "Unable to open file " << label_file; + // Read the magic and the meta data + uint32_t magic; + uint32_t num_items; + uint32_t num_labels; + uint32_t rows; + uint32_t cols; + + image_file.read(reinterpret_cast(&magic), 4); + magic = swap_endian(magic); + CHECK_EQ(magic, 2051) << "Incorrect image file magic."; + label_file.read(reinterpret_cast(&magic), 4); + magic = swap_endian(magic); + CHECK_EQ(magic, 2049) << "Incorrect label file magic."; + image_file.read(reinterpret_cast(&num_items), 4); + num_items = swap_endian(num_items); + label_file.read(reinterpret_cast(&num_labels), 4); + num_labels = swap_endian(num_labels); + CHECK_EQ(num_items, num_labels); + image_file.read(reinterpret_cast(&rows), 4); + rows = swap_endian(rows); + image_file.read(reinterpret_cast(&cols), 4); + cols = swap_endian(cols); + + // Open leveldb + leveldb::DB* db; + leveldb::Options options; + options.create_if_missing = true; + options.error_if_exists = true; + leveldb::Status status = leveldb::DB::Open( + options, db_filename, &db); + CHECK(status.ok()) << "Failed to open leveldb " << db_filename + << ". Is it already existing?"; + + char label_i; + char label_j; + char* pixels = new char[2 * rows * cols]; + const int kMaxKeyLength = 10; + char key[kMaxKeyLength]; + std::string value; + + caffe::Datum datum; + datum.set_channels(2); // one channel for each image in the pair + datum.set_height(rows); + datum.set_width(cols); + LOG(INFO) << "A total of " << num_items << " items."; + LOG(INFO) << "Rows: " << rows << " Cols: " << cols; + for (int itemid = 0; itemid < num_items; ++itemid) { + int i = caffe::caffe_rng_rand() % num_items; // pick a random pair + int j = caffe::caffe_rng_rand() % num_items; + read_image(&image_file, &label_file, i, rows, cols, + pixels, &label_i); + read_image(&image_file, &label_file, j, rows, cols, + pixels + (rows * cols), &label_j); + datum.set_data(pixels, 2*rows*cols); + if (label_i == label_j) { + datum.set_label(1); + } else { + datum.set_label(0); + } + datum.SerializeToString(&value); + snprintf(key, kMaxKeyLength, "%08d", itemid); + db->Put(leveldb::WriteOptions(), std::string(key), value); + } + + delete db; + delete pixels; +} + +int main(int argc, char** argv) { + if (argc != 4) { + printf("This script converts the MNIST dataset to the leveldb format used\n" + "by caffe to train a siamese network.\n" + "Usage:\n" + " convert_mnist_data input_image_file input_label_file " + "output_db_file\n" + "The MNIST dataset could be downloaded at\n" + " http://yann.lecun.com/exdb/mnist/\n" + "You should gunzip them after downloading.\n"); + } else { + google::InitGoogleLogging(argv[0]); + convert_dataset(argv[1], argv[2], argv[3]); + } + return 0; +} diff --git a/examples/siamese/create_mnist_siamese.sh b/examples/siamese/create_mnist_siamese.sh new file mode 100755 index 00000000000..43ad6b184a7 --- /dev/null +++ b/examples/siamese/create_mnist_siamese.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env sh +# This script converts the mnist data into leveldb format. + +EXAMPLES=./build/examples/siamese +DATA=./data/mnist + +echo "Creating leveldb..." + +rm -rf ./examples/siamese/mnist_siamese_train_leveldb +rm -rf ./examples/siamese/mnist_siamese_test_leveldb + +$EXAMPLES/convert_mnist_siamese_data.bin \ + $DATA/train-images-idx3-ubyte \ + $DATA/train-labels-idx1-ubyte \ + ./examples/siamese/mnist_siamese_train_leveldb +$EXAMPLES/convert_mnist_siamese_data.bin \ + $DATA/t10k-images-idx3-ubyte \ + $DATA/t10k-labels-idx1-ubyte \ + ./examples/siamese/mnist_siamese_test_leveldb + +echo "Done." diff --git a/examples/siamese/mnist_siamese.ipynb b/examples/siamese/mnist_siamese.ipynb new file mode 100644 index 00000000000..66776fe14bd --- /dev/null +++ b/examples/siamese/mnist_siamese.ipynb @@ -0,0 +1,169 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:ea70e3c13ccbae495d73f30e18b8e01e68ec8c7dc8bbb3635e6139b801c921a9" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setup and import caffe" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "# Make sure that caffe is on the python path:\n", + "caffe_root = '../../' # this file is expected to be in {caffe_root}/examples/siamese\n", + "import sys\n", + "sys.path.insert(0, caffe_root + 'python')\n", + "\n", + "import caffe" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load the trained net." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "MODEL_FILE = 'mnist_siamese.prototxt'\n", + "# decrease if you want to preview during training\n", + "PRETRAINED_FILE = 'mnist_siamese_iter_50000.caffemodel' \n", + "net = caffe.Net(MODEL_FILE, PRETRAINED_FILE)\n", + "net.set_phase_test()\n", + "net.set_mode_cpu()\n", + "net.set_input_scale('data', 0.00390625)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load some MNIST test data" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "TEST_DATA_FILE = '../../data/mnist/t10k-images-idx3-ubyte'\n", + "TEST_LABEL_FILE = '../../data/mnist/t10k-labels-idx1-ubyte'\n", + "n = 10000\n", + "\n", + "with open(TEST_DATA_FILE, 'rb') as f:\n", + " f.read(16) # skip the header\n", + " raw_data = np.fromstring(f.read(n * 28*28), dtype=np.uint8)\n", + "\n", + "with open(TEST_LABEL_FILE, 'rb') as f:\n", + " f.read(8) # skip the header\n", + " labels = np.fromstring(f.read(n), dtype=np.uint8)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run the data through the net" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# reshape and preprocess\n", + "caffe_in = raw_data.reshape(n, 28, 28).transpose((1,2,0))\n", + "caffe_in = net.preprocess('data', caffe_in) \n", + "caffe_in = caffe_in.reshape((n,1,28,28))\n", + "# pass data through network\n", + "out = net.forward_all(data=caffe_in)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plot the results" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "feat = out['feat']\n", + "f = plt.figure(figsize=(16,9))\n", + "c = ['#ff0000', '#ffff00', '#00ff00', '#00ffff', '#0000ff', \n", + " '#ff00ff', '#990000', '#999900', '#009900', '#009999']\n", + "for i in range(10):\n", + " plt.plot(feat[labels==i,0].flatten(), feat[labels==i,1].flatten(), '.', c=c[i])\n", + "plt.legend(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])\n", + "plt.grid()\n", + "plt.show()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nUY4FBTlxUW+v7Fl89135f23bahlpeTm43XKM6Nq1chZgMwmx9OS8IyPJ86H2ytbXy0RVHGv08N9o\nTtNJX83IYos52Ve69Q/v26d4+xacX0r/f1rryPINEI3FiHR1sX3VKkOJrnFSmv0c6O2lxjvEO48/\nSajSXHmT7OyMZiX/TZGX9skZYn0un1J7c0HZAvrHZBnv8prlSrKjo58eZXRqNKm9Om8dlyfkxEae\nEg/1ZfUsqVhCmbuMrv4uw9qdVlHhrmBscowppvhc4HN0bezi37/+7/nV735lKlZVXQ/UDGpjbtxV\nNUwjJZHmSnclVyevUu4qZ2J6QmlTTx79wEsPKPLpjaGN7F2/13T/QqIb9AVZVr2MKm+Vsl4V7goe\nmP8Au9fttkVCWyhpuW2wW9+X7yQwdrYfAX6DXBPzHuS4zEIu0TpksrkCOc5U3bcYpzbxUi7ur0Sb\nHzTB/34I/j6gGW6YzJJT9TFBZMJs1jb1Xmsx0ZcDBybhJDBykBFWazEZeZfNeNuELFVPVivaNOO9\n1h6TqW9tsiW1N1XtWbz3Xti0KZXkqL2lLtdMXdIXXzSfEEst521slPsQHsHly2Ui+vrrHYBMiJcv\nn+lTT4YqxhyPy+eKNsQcpJPvZpLFChmyGFtDgxwDa3fiomyRbo+ovX1v/C+rkuZ3rtYZzRcCPh+7\n1q5NGytqnJRmDa1Ll3L2W3+SVyIq2xlgs3uzZbKg9q5VeCoUb2mVR5ZWNAWbeKNlxtMqvKcHeg8Q\nm0omlivqVrAiuEJ5HZfiSu3R9r5224goyF5GQTp7hnvYdHgT//jJP6YlosJ768JFtVdH828A1xRc\n8U1yMXYJCYn5vvmsu2UdG0Mbea/1PYK+INemrilEtCnYxLHOYwSeCVD/bL1Sb7XWV6t8viO8w9J4\nhSfbVeJSarl6XV7qffWMTI4oZWTsgNbjqk3WVHTI4OWzfI3Kt6fIzvZFOZZBZFJYaE+rSEqkJaKg\nm3ip47sd2fUjvJlx6NoIf3gI9gR0hmtGcqo+ptHE8Wqo95peX4VOBpRjf9f77/eNAIeMOgCsyTnN\nZCpWy1IXLEiWrGbbr5m+t26Fz3xG7nPPnmQSIyS/FRWybQcOyMmP1P2qZaTehFzH74c//EP5bzOx\njm1tMiHauHEmM68gVSIzcDzhzBgago8+kiXERqRcjLm9XfbSqrMLRyIzNVmHhuSMxOq5zCSLVcdk\n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\nAABJRU5ErkJggg==\n", + "text": [ + "" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/examples/siamese/mnist_siamese.prototxt b/examples/siamese/mnist_siamese.prototxt new file mode 100644 index 00000000000..8dd42e9c1b5 --- /dev/null +++ b/examples/siamese/mnist_siamese.prototxt @@ -0,0 +1,95 @@ +name: "mnist_siamese" +input: "data" +input_dim: 10000 +input_dim: 1 +input_dim: 28 +input_dim: 28 + +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 + } +} +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 + } +} +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 + } +} +layers { + name: "relu1" + type: RELU + bottom: "ip1" + top: "ip1" +} +layers { + name: "ip2" + type: INNER_PRODUCT + bottom: "ip1" + top: "ip2" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 10 + } +} + +layers { + name: "feat" + type: INNER_PRODUCT + bottom: "ip2" + top: "feat" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 2 + } +} diff --git a/examples/siamese/mnist_siamese_solver.prototxt b/examples/siamese/mnist_siamese_solver.prototxt new file mode 100644 index 00000000000..d4d994d1389 --- /dev/null +++ b/examples/siamese/mnist_siamese_solver.prototxt @@ -0,0 +1,25 @@ +# The train/test net protocol buffer definition +net: "examples/siamese/mnist_siamese_train_test.prototxt" +# test_iter specifies how many forward passes the test should carry out. +# In the case of MNIST, we have test batch size 100 and 100 test iterations, +# covering the full 10,000 testing images. +test_iter: 100 +# Carry out testing every 500 training iterations. +test_interval: 500 +# The base learning rate, momentum and the weight decay of the network. +base_lr: 0.01 +momentum: 0.9 +weight_decay: 0.0000 +# The learning rate policy +lr_policy: "inv" +gamma: 0.0001 +power: 0.75 +# Display every 100 iterations +display: 100 +# The maximum number of iterations +max_iter: 50000 +# snapshot intermediate results +snapshot: 5000 +snapshot_prefix: "examples/siamese/mnist_siamese" +# solver mode: CPU or GPU +solver_mode: GPU diff --git a/examples/siamese/mnist_siamese_train_test.prototxt b/examples/siamese/mnist_siamese_train_test.prototxt new file mode 100644 index 00000000000..92361c31dc7 --- /dev/null +++ b/examples/siamese/mnist_siamese_train_test.prototxt @@ -0,0 +1,313 @@ +name: "mnist_siamese_train_test" +layers { + name: "pair_data" + type: DATA + top: "pair_data" + top: "sim" + data_param { + source: "examples/siamese/mnist_siamese_train_leveldb" + scale: 0.00390625 + batch_size: 64 + } + include: { phase: TRAIN } +} +layers { + name: "pair_data" + type: DATA + top: "pair_data" + top: "sim" + data_param { + source: "examples/siamese/mnist_siamese_test_leveldb" + scale: 0.00390625 + batch_size: 100 + } + include: { phase: TEST } +} +layers { + name: "slice_pair" + type: SLICE + bottom: "pair_data" + top: "data" + top: "data_p" + slice_param { + slice_dim: 1 + slice_point: 1 + } +} + + + + +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: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "conv1_w" + param: "conv1_b" +} +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: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "conv2_w" + param: "conv2_b" +} +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" + } + } + param: "ip1_w" + param: "ip1_b" +} +layers { + name: "relu1" + type: RELU + bottom: "ip1" + top: "ip1" +} +layers { + name: "ip2" + type: INNER_PRODUCT + bottom: "ip1" + top: "ip2" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 10 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "ip2_w" + param: "ip2_b" +} + +layers { + name: "feat" + type: INNER_PRODUCT + bottom: "ip2" + top: "feat" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "feat_w" + param: "feat_b" +} + + + +layers { + name: "conv1_p" + type: CONVOLUTION + bottom: "data_p" + top: "conv1_p" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 20 + kernel_size: 5 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "conv1_w" + param: "conv1_b" +} +layers { + name: "pool1_p" + type: POOLING + bottom: "conv1_p" + top: "pool1_p" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layers { + name: "conv2_p" + type: CONVOLUTION + bottom: "pool1_p" + top: "conv2_p" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 50 + kernel_size: 5 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "conv2_w" + param: "conv2_b" +} +layers { + name: "pool2_p" + type: POOLING + bottom: "conv2_p" + top: "pool2_p" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layers { + name: "ip1_p" + type: INNER_PRODUCT + bottom: "pool2_p" + top: "ip1_p" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 500 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "ip1_w" + param: "ip1_b" +} +layers { + name: "relu1_p" + type: RELU + bottom: "ip1_p" + top: "ip1_p" +} +layers { + name: "ip2_p" + type: INNER_PRODUCT + bottom: "ip1_p" + top: "ip2_p" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 10 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "ip2_w" + param: "ip2_b" +} + +layers { + name: "feat_p" + type: INNER_PRODUCT + bottom: "ip2_p" + top: "feat_p" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + } + } + param: "feat_w" + param: "feat_b" +} + + + +layers { + name: "loss" + type: CONTRASTIVE_LOSS + contrastive_loss_param { + margin: 1.0 + } + bottom: "feat" + bottom: "feat_p" + bottom: "sim" + top: "loss" +} diff --git a/examples/siamese/readme.md b/examples/siamese/readme.md new file mode 100644 index 00000000000..ce98ec10819 --- /dev/null +++ b/examples/siamese/readme.md @@ -0,0 +1,179 @@ +--- +title: Siamese Network Tutorial +description: Train and test a siamese network on MNIST data. +category: example +include_in_docs: true +layout: default +priority: 100 +--- + +# Siamese Network Training with Caffe +This example shows how you can use weight sharing and a contrastive loss +function to learn a model using a siamese network in Caffe. + +We will assume that you have caffe successfully compiled. If not, please refer +to the [Installation page](../../installation.html). This example builds on the +[MNIST tutorial](mnist.html) so it would be a good idea to read that before +continuing. + +*The guide specifies all paths and assumes all commands are executed from the +root caffe directory* + +## Prepare Datasets + +You will first need to download and convert the data from the MNIST +website. To do this, simply run the following commands: + + ./data/mnist/get_mnist.sh + ./examples/siamese/create_mnist_siamese.sh + +After running the script there should be two datasets, +`./examples/siamese/mnist_siamese_train_leveldb`, and +`./examples/siamese/mnist_siamese_test_leveldb`. + +## The Model +First, we will define the model that we want to train using the siamese network. +We will use the convolutional net defined in +`./examples/siamese/mnist_siamese.prototxt`. This model is almost +exactly the same as the [LeNet model](mnist.html), the only difference is that +we have replaced the top layers that produced probabilities over the 10 digit +classes with a linear "feature" layer that produces a 2 dimensional vector. + + layers { + name: "feat" + type: INNER_PRODUCT + bottom: "ip2" + top: "feat" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 2 + } + } + +## Define the Siamese Network + +In this section we will define the siamese network used for training. The +resulting network is defined in +`./examples/siamese/mnist_siamese_train_test.prototxt`. + +### Reading in the Pair Data + +We start with a data layer that reads from the LevelDB database we created +earlier. Each entry in this database contains the image data for a pair of +images (`pair_data`) and a binary label saying if they belong to the same class +or different classes (`sim`). + + layers { + name: "pair_data" + type: DATA + top: "pair_data" + top: "sim" + data_param { + source: "examples/siamese/mnist-siamese-train-leveldb" + scale: 0.00390625 + batch_size: 64 + } + include: { phase: TRAIN } + } + +In order to pack a pair of images into the same blob in the database we pack one +image per channel. We want to be able to work with these two images separately, +so we add a slice layer after the data layer. This takes the `pair_data` and +slices it along the channel dimension so that we have a single image in `data` +and its paired image in `data_p.` + + layers { + name: "slice_pair" + type: SLICE + bottom: "pair_data" + top: "data" + top: "data_p" + slice_param { + slice_dim: 1 + slice_point: 1 + } + } + +### Building the First Side of the Siamese Net + +Now we can specify the first side of the siamese net. This side operates on +`data` and produces `feat`. Starting from the net in +`./examples/siamese/mnist_siamese.prototxt` we add default weight fillers. Then +we name the parameters of the convolutional and inner product layers. Naming the +parameters allows Caffe to share the parameters between layers on both sides of +the siamese net. In the definition this looks like: + + ... + param: "conv1_w" + param: "conv1_b" + ... + param: "conv2_w" + param: "conv2_b" + ... + param: "ip1_w" + param: "ip1_b" + ... + param: "ip2_w" + param: "ip2_b" + ... + +### Building the Second Side of the Siamese Net + +Now we need to create the second path that operates on `data_p` and produces +`feat_p`. This path is exactly the same as the first. So we can just copy and +paste it. Then we change the name of each layer, input, and output by appending +`_p` to differentiate the "paired" layers from the originals. + +### Adding the Contrastive Loss Function + +To train the network we will optimize a contrastive loss function proposed in: +Raia Hadsell, Sumit Chopra, and Yann LeCun "Dimensionality Reduction by Learning +an Invariant Mapping". This loss function encourages matching pairs to be close +together in feature space while pushing non-matching pairs apart. This cost +function is implemented with the `CONTRASTIVE_LOSS` layer: + + layers { + name: "loss" + type: CONTRASTIVE_LOSS + contrastive_loss_param { + margin: 1.0 + } + bottom: "feat" + bottom: "feat_p" + bottom: "sim" + top: "loss" + } + +## Define the Solver + +Nothing special needs to be done to the solver besides pointing it at the +correct model file. The solver is defined in +`./examples/siamese/mnist_siamese_solver.prototxt`. + +## Training and Testing the Model + +Training the model is simple after you have written the network definition +protobuf and solver protobuf files. Simply run +`./examples/siamese/train_mnist_siamese.sh`: + + ./examples/siamese/train_mnist_siamese.sh + +# Plotting the results + +First, we can draw the model and siamese networks by running the following +commands that draw the DAGs defined in the .prototxt files: + + ./python/draw_net.py \ + ./examples/siamese/mnist_siamese.prototxt \ + ./examples/siamese/mnist_siamese.png + + ./python/draw_net.py \ + ./examples/siamese/mnist_siamese_train_test.prototxt \ + ./examples/siamese/mnist_siamese_train_test.png + +Second, we can load the learned model and plot the features using the iPython +notebook: + + ipython notebook ./examples/siamese/mnist_siamese.ipynb + diff --git a/examples/siamese/train_mnist_siamese.sh b/examples/siamese/train_mnist_siamese.sh new file mode 100755 index 00000000000..84a30a8ac44 --- /dev/null +++ b/examples/siamese/train_mnist_siamese.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +TOOLS=./build/tools + +$TOOLS/caffe train --solver=examples/siamese/mnist_siamese_solver.prototxt diff --git a/include/caffe/loss_layers.hpp b/include/caffe/loss_layers.hpp index a29c445d51e..c911d1a7312 100644 --- a/include/caffe/loss_layers.hpp +++ b/include/caffe/loss_layers.hpp @@ -117,6 +117,93 @@ class LossLayer : public Layer { } }; +/** + * @brief Computes the contrastive loss @f$ + * E = \frac{1}{2N} \sum\limits_{n=1}^N \left(y\right) d + + * \left(1-y\right) \max \left(margin-d, 0\right) + * @f$ where @f$ + * d = \left| \left| a_n - b_n \right| \right|_2^2 @f$. This can be + * used to train siamese networks. + * + * @param bottom input Blob vector (length 3) + * -# @f$ (N \times C \times 1 \times 1) @f$ + * the features @f$ a \in [-\infty, +\infty]@f$ + * -# @f$ (N \times C \times 1 \times 1) @f$ + * the features @f$ b \in [-\infty, +\infty]@f$ + * -# @f$ (N \times 1 \times 1 \times 1) @f$ + * the binary similarity @f$ s \in [0, 1]@f$ + * @param top output Blob vector (length 1) + * -# @f$ (1 \times 1 \times 1 \times 1) @f$ + * the computed contrastive loss: @f$ E = + * \frac{1}{2N} \sum\limits_{n=1}^N \left(y\right) d + + * \left(1-y\right) \max \left(margin-d, 0\right) + * @f$ where @f$ + * d = \left| \left| a_n - b_n \right| \right|_2^2 @f$. + * This can be used to train siamese networks. + */ +template +class ContrastiveLossLayer : public LossLayer { + public: + explicit ContrastiveLossLayer(const LayerParameter& param) + : LossLayer(param), diff_() {} + virtual void LayerSetUp(const vector*>& bottom, + vector*>* top); + + virtual inline int ExactNumBottomBlobs() const { return 3; } + virtual inline LayerParameter_LayerType type() const { + return LayerParameter_LayerType_CONTRASTIVE_LOSS; + } + /** + * Unlike most loss layers, in the ContrastiveLossLayer we can backpropagate + * to the first two inputs. + */ + virtual inline bool AllowForceBackward(const int bottom_index) const { + return bottom_index != 2; + } + + protected: + /// @copydoc ContrastiveLossLayer + virtual void Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual void Forward_gpu(const vector*>& bottom, + vector*>* top); + + /** + * @brief Computes the Contrastive error gradient w.r.t. the inputs. + * + * Computes the gradients with respect to the two input vectors (bottom[0] and + * bottom[1]), but not the similarity label (bottom[2]). + * + * @param top output Blob vector (length 1), providing the error gradient with + * respect to the outputs + * -# @f$ (1 \times 1 \times 1 \times 1) @f$ + * This Blob's diff will simply contain the loss_weight* @f$ \lambda @f$, + * as @f$ \lambda @f$ is the coefficient of this layer's output + * @f$\ell_i@f$ in the overall Net loss + * @f$ E = \lambda_i \ell_i + \mbox{other loss terms}@f$; hence + * @f$ \frac{\partial E}{\partial \ell_i} = \lambda_i @f$. + * (*Assuming that this top Blob is not used as a bottom (input) by any + * other layer of the Net.) + * @param propagate_down see Layer::Backward. + * @param bottom input Blob vector (length 2) + * -# @f$ (N \times C \times 1 \times 1) @f$ + * the features @f$a@f$; Backward fills their diff with + * gradients if propagate_down[0] + * -# @f$ (N \times C \times 1 \times 1) @f$ + * the features @f$b@f$; Backward fills their diff with gradients if + * propagate_down[1] + */ + virtual void Backward_cpu(const vector*>& top, + const vector& propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const vector& propagate_down, vector*>* bottom); + + Blob diff_; // cached for backward pass + Blob dist_sq_; // cached for backward pass + Blob diff_sq_; // tmp storage for gpu forward pass + Blob summer_vec_; // tmp storage for gpu forward pass +}; + /** * @brief Computes the Euclidean (L2) loss @f$ * E = \frac{1}{2N} \sum\limits_{n=1}^N \left| \left| \hat{y}_n - y_n diff --git a/src/caffe/layer_factory.cpp b/src/caffe/layer_factory.cpp index 41c547b8ad4..b78167f21eb 100644 --- a/src/caffe/layer_factory.cpp +++ b/src/caffe/layer_factory.cpp @@ -189,6 +189,8 @@ Layer* GetLayer(const LayerParameter& param) { return new BNLLLayer(param); case LayerParameter_LayerType_CONCAT: return new ConcatLayer(param); + case LayerParameter_LayerType_CONTRASTIVE_LOSS: + return new ContrastiveLossLayer(param); case LayerParameter_LayerType_CONVOLUTION: return GetConvolutionLayer(name, param); case LayerParameter_LayerType_DATA: diff --git a/src/caffe/layers/contrastive_loss_layer.cpp b/src/caffe/layers/contrastive_loss_layer.cpp new file mode 100644 index 00000000000..072a5a535be --- /dev/null +++ b/src/caffe/layers/contrastive_loss_layer.cpp @@ -0,0 +1,101 @@ +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/loss_layers.hpp" +#include "caffe/util/io.hpp" +#include "caffe/util/math_functions.hpp" + +namespace caffe { + +template +void ContrastiveLossLayer::LayerSetUp( + const vector*>& bottom, vector*>* top) { + LossLayer::LayerSetUp(bottom, top); + CHECK_EQ(bottom[0]->channels(), bottom[1]->channels()); + CHECK_EQ(bottom[0]->height(), 1); + CHECK_EQ(bottom[0]->width(), 1); + CHECK_EQ(bottom[1]->height(), 1); + CHECK_EQ(bottom[1]->width(), 1); + CHECK_EQ(bottom[2]->channels(), 1); + CHECK_EQ(bottom[2]->height(), 1); + CHECK_EQ(bottom[2]->width(), 1); + diff_.Reshape(bottom[0]->num(), bottom[0]->channels(), 1, 1); + diff_sq_.Reshape(bottom[0]->num(), bottom[0]->channels(), 1, 1); + dist_sq_.Reshape(bottom[0]->num(), 1, 1, 1); + // vector of ones used to sum along channels + summer_vec_.Reshape(bottom[0]->channels(), 1, 1, 1); + for (int i = 0; i < bottom[0]->channels(); ++i) + summer_vec_.mutable_cpu_data()[i] = Dtype(1); +} + +template +void ContrastiveLossLayer::Forward_cpu( + const vector*>& bottom, + vector*>* top) { + int count = bottom[0]->count(); + caffe_sub( + count, + bottom[0]->cpu_data(), // a + bottom[1]->cpu_data(), // b + diff_.mutable_cpu_data()); // a_i-b_i + const int channels = bottom[0]->channels(); + Dtype margin = this->layer_param_.contrastive_loss_param().margin(); + Dtype loss(0.0); + for (int i = 0; i < bottom[0]->num(); ++i) { + dist_sq_.mutable_cpu_data()[i] = caffe_cpu_dot(channels, + diff_.cpu_data() + (i*channels), diff_.cpu_data() + (i*channels)); + if (static_cast(bottom[2]->cpu_data()[i])) { // similar pairs + loss += dist_sq_.cpu_data()[i]; + } else { // dissimilar pairs + loss += std::max(margin-dist_sq_.cpu_data()[i], Dtype(0.0)); + } + } + loss = loss / static_cast(bottom[0]->num()) / Dtype(2); + (*top)[0]->mutable_cpu_data()[0] = loss; +} + +template +void ContrastiveLossLayer::Backward_cpu(const vector*>& top, + const vector& propagate_down, vector*>* bottom) { + Dtype margin = this->layer_param_.contrastive_loss_param().margin(); + for (int i = 0; i < 2; ++i) { + if (propagate_down[i]) { + const Dtype sign = (i == 0) ? 1 : -1; + const Dtype alpha = sign * top[0]->cpu_diff()[0] / + static_cast((*bottom)[i]->num()); + int num = (*bottom)[i]->num(); + int channels = (*bottom)[i]->channels(); + for (int j = 0; j < num; ++j) { + Dtype* bout = (*bottom)[i]->mutable_cpu_diff(); + if (static_cast((*bottom)[2]->cpu_data()[j])) { // similar pairs + caffe_cpu_axpby( + channels, + alpha, + diff_.cpu_data() + (j*channels), + Dtype(0.0), + bout + (j*channels)); + } else { // dissimilar pairs + if ((margin-dist_sq_.cpu_data()[j]) > Dtype(0.0)) { + caffe_cpu_axpby( + channels, + -alpha, + diff_.cpu_data() + (j*channels), + Dtype(0.0), + bout + (j*channels)); + } else { + caffe_set(channels, Dtype(0), bout + (j*channels)); + } + } + } + } + } +} + +#ifdef CPU_ONLY +STUB_GPU(ContrastiveLossLayer); +#endif + +INSTANTIATE_CLASS(ContrastiveLossLayer); + +} // namespace caffe diff --git a/src/caffe/layers/contrastive_loss_layer.cu b/src/caffe/layers/contrastive_loss_layer.cu new file mode 100644 index 00000000000..672ad5bc2f8 --- /dev/null +++ b/src/caffe/layers/contrastive_loss_layer.cu @@ -0,0 +1,91 @@ +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/util/io.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/vision_layers.hpp" + +namespace caffe { + +template +void ContrastiveLossLayer::Forward_gpu( + const vector*>& bottom, vector*>* top) { + const int count = bottom[0]->count(); + caffe_gpu_sub( + count, + bottom[0]->gpu_data(), // a + bottom[1]->gpu_data(), // b + diff_.mutable_gpu_data()); // a_i-b_i + caffe_gpu_powx( + count, + diff_.mutable_gpu_data(), // a_i-b_i + Dtype(2), + diff_sq_.mutable_gpu_data()); // (a_i-b_i)^2 + caffe_gpu_gemv( + CblasNoTrans, + bottom[0]->num(), + bottom[0]->channels(), + Dtype(1.0), + diff_sq_.gpu_data(), // (a_i-b_i)^2 + summer_vec_.gpu_data(), + Dtype(0.0), + dist_sq_.mutable_gpu_data()); // \Sum (a_i-b_i)^2 + Dtype margin = this->layer_param_.contrastive_loss_param().margin(); + Dtype loss(0.0); + for (int i = 0; i < bottom[0]->num(); ++i) { + if (static_cast(bottom[2]->cpu_data()[i])) { // similar pairs + loss += dist_sq_.cpu_data()[i]; + } else { // dissimilar pairs + loss += std::max(margin-dist_sq_.cpu_data()[i], Dtype(0.0)); + } + } + loss = loss / static_cast(bottom[0]->num()) / Dtype(2); + (*top)[0]->mutable_cpu_data()[0] = loss; +} + +template +__global__ void CLLForward(const int count, const int channels, + const Dtype margin, const Dtype alpha, + const Dtype* y, const Dtype* diff, const Dtype* dist_sq, + Dtype *bottom_diff) { + CUDA_KERNEL_LOOP(i, count) { + int n = i / channels; // the num index, to access y and dist_sq + if (static_cast(y[n])) { // similar pairs + bottom_diff[i] = alpha * diff[i]; + } else { // dissimilar pairs + if ((margin-dist_sq[n]) > 0.0) { + bottom_diff[i] = -alpha * diff[i]; + } else { + bottom_diff[i] = 0; + } + } + } +} + +template +void ContrastiveLossLayer::Backward_gpu(const vector*>& top, + const vector& propagate_down, vector*>* bottom) { + for (int i = 0; i < 2; ++i) { + if (propagate_down[i]) { + const int count = (*bottom)[0]->count(); + const int channels = (*bottom)[0]->channels(); + Dtype margin = this->layer_param_.contrastive_loss_param().margin(); + const Dtype sign = (i == 0) ? 1 : -1; + const Dtype alpha = sign * top[0]->cpu_diff()[0] / + static_cast((*bottom)[0]->num()); + // NOLINT_NEXT_LINE(whitespace/operators) + CLLForward<<>>( + count, channels, margin, alpha, + (*bottom)[2]->gpu_data(), // pair similarity 0 or 1 + diff_.gpu_data(), // the cached eltwise difference between a and b + dist_sq_.gpu_data(), // the cached square distance between a and b + (*bottom)[i]->mutable_gpu_diff()); + CUDA_POST_KERNEL_CHECK; + } + } +} + +INSTANTIATE_CLASS(ContrastiveLossLayer); + +} // namespace caffe diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index 8cb82cebe22..37972e72b47 100644 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -198,7 +198,7 @@ message NetStateRule { // NOTE // Update the next available ID when you add a new LayerParameter field. // -// LayerParameter next available ID: 40 (last added: softmax_param) +// LayerParameter next available ID: 41 (last added: contrastive_loss_param) message LayerParameter { repeated string bottom = 2; // the name of the bottom blobs repeated string top = 3; // the name of the top blobs @@ -219,7 +219,7 @@ message LayerParameter { // line above the enum. Update the next available ID when you add a new // LayerType. // - // LayerType next available ID: 37 (last added: SILENCE) + // LayerType next available ID: 38 (last added: CONTRASTIVE_LOSS) enum LayerType { // "NONE" layer type is 0th enum element so that we don't cause confusion // by defaulting to an existent LayerType (instead, should usually error if @@ -230,6 +230,7 @@ message LayerParameter { ARGMAX = 30; BNLL = 2; CONCAT = 3; + CONTRASTIVE_LOSS = 37; CONVOLUTION = 4; DATA = 5; DROPOUT = 6; @@ -292,6 +293,7 @@ message LayerParameter { optional AccuracyParameter accuracy_param = 27; optional ArgMaxParameter argmax_param = 23; optional ConcatParameter concat_param = 9; + optional ContrastiveLossParameter contrastive_loss_param = 40; optional ConvolutionParameter convolution_param = 10; optional DataParameter data_param = 11; optional DropoutParameter dropout_param = 12; @@ -367,6 +369,12 @@ message ConcatParameter { optional uint32 concat_dim = 1 [default = 1]; } +// Message that stores parameters used by ContrastiveLossLayer +message ContrastiveLossParameter { + //margin for dissimilar pair + optional float margin = 1 [default = 1.0]; +} + // Message that stores parameters used by ConvolutionLayer message ConvolutionParameter { optional uint32 num_output = 1; // The number of outputs for the layer diff --git a/src/caffe/test/test_contrastive_loss_layer.cpp b/src/caffe/test/test_contrastive_loss_layer.cpp new file mode 100644 index 00000000000..a5bef4c9826 --- /dev/null +++ b/src/caffe/test/test_contrastive_loss_layer.cpp @@ -0,0 +1,102 @@ +#include +#include +#include +#include +#include + +#include "gtest/gtest.h" + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/filler.hpp" +#include "caffe/vision_layers.hpp" + +#include "caffe/test/test_caffe_main.hpp" +#include "caffe/test/test_gradient_check_util.hpp" + +namespace caffe { + +template +class ContrastiveLossLayerTest : public MultiDeviceTest { + typedef typename TypeParam::Dtype Dtype; + + protected: + ContrastiveLossLayerTest() + : blob_bottom_data_i_(new Blob(128, 10, 1, 1)), + blob_bottom_data_j_(new Blob(128, 10, 1, 1)), + blob_bottom_y_(new Blob(128, 1, 1, 1)), + blob_top_loss_(new Blob()) { + // fill the values + FillerParameter filler_param; + filler_param.set_mean(0.0); + filler_param.set_std(0.3); // distances~=1.0 to test both sides of margin + GaussianFiller filler(filler_param); + filler.Fill(this->blob_bottom_data_i_); + blob_bottom_vec_.push_back(blob_bottom_data_i_); + filler.Fill(this->blob_bottom_data_j_); + blob_bottom_vec_.push_back(blob_bottom_data_j_); + for (int i = 0; i < blob_bottom_y_->count(); ++i) { + blob_bottom_y_->mutable_cpu_data()[i] = caffe_rng_rand() % 2; // 0 or 1 + } + blob_bottom_vec_.push_back(blob_bottom_y_); + blob_top_vec_.push_back(blob_top_loss_); + } + virtual ~ContrastiveLossLayerTest() { + delete blob_bottom_data_i_; + delete blob_bottom_data_j_; + delete blob_bottom_y_; + delete blob_top_loss_; + } + + Blob* const blob_bottom_data_i_; + Blob* const blob_bottom_data_j_; + Blob* const blob_bottom_y_; + Blob* const blob_top_loss_; + vector*> blob_bottom_vec_; + vector*> blob_top_vec_; +}; + +TYPED_TEST_CASE(ContrastiveLossLayerTest, TestDtypesAndDevices); + +TYPED_TEST(ContrastiveLossLayerTest, TestForward) { + typedef typename TypeParam::Dtype Dtype; + LayerParameter layer_param; + ContrastiveLossLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + // manually compute to compare + const Dtype margin = layer_param.contrastive_loss_param().margin(); + const int num = this->blob_bottom_data_i_->num(); + const int channels = this->blob_bottom_data_i_->channels(); + Dtype loss(0); + for (int i = 0; i < num; ++i) { + Dtype dist_sq(0); + for (int j = 0; j < channels; ++j) { + Dtype diff = this->blob_bottom_data_i_->cpu_data()[i*channels+j] - + this->blob_bottom_data_j_->cpu_data()[i*channels+j]; + dist_sq += diff*diff; + } + if (this->blob_bottom_y_->cpu_data()[i]) { // similar pairs + loss += dist_sq; + } else { + loss += std::max(margin-dist_sq, Dtype(0)); + } + } + loss /= static_cast(num) * Dtype(2); + EXPECT_NEAR(this->blob_top_loss_->cpu_data()[0], loss, 1e-6); +} + +TYPED_TEST(ContrastiveLossLayerTest, TestGradient) { + typedef typename TypeParam::Dtype Dtype; + LayerParameter layer_param; + ContrastiveLossLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + GradientChecker checker(1e-2, 1e-2, 1701); + // check the gradient for the first two bottom layers + checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_), 0); + checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_), 1); +} + +} // namespace caffe