Last active
March 9, 2019 13:52
Star
You must be signed in to star a gist
Caffe Prototxt example files to run supervised domain confusion experiment. Takes 3 data sources as input (1) source training labeled data (2) target training labeled data (3) target test unlabeled data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
average_loss: 25 | |
base_lr: 0.000100 | |
display: 25 | |
gamma: 0.1 | |
iter_size: 1 | |
lr_policy: "fixed" | |
max_iter: 100000 | |
momentum: 0.9 | |
net: "trainval_domain-confusion_super.prototxt" | |
snapshot: 1000 | |
snapshot_prefix: "snapshots/amazon_webcam_dom-conf-super_split-0" | |
stepsize: 1000 | |
test_initialization: false | |
test_interval: 50 | |
test_iter: 256 | |
weight_decay: 0.0005 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
layer { | |
name: "data_s" | |
type: "ImageData" | |
top: "data_s" | |
top: "label_s" | |
include { | |
phase: TRAIN | |
} | |
transform_param { | |
mirror: true | |
crop_size: 227 | |
mean_value: 104.0 | |
mean_value: 116.7 | |
mean_value: 122.7 | |
} | |
image_data_param { | |
source: "data/splits/office/amazon/source/train/split_00.txt" | |
batch_size: 15 | |
shuffle: false | |
new_width: 256 | |
new_height: 256 | |
} | |
} | |
layer { | |
name: "data_t" | |
type: "ImageData" | |
top: "data_t" | |
top: "label_t" | |
include { | |
phase: TRAIN | |
} | |
transform_param { | |
mirror: true | |
crop_size: 227 | |
mean_value: 104.0 | |
mean_value: 116.7 | |
mean_value: 122.7 | |
} | |
image_data_param { | |
source: "data/splits/office/webcam/target/train/same_category-split_00.txt" | |
batch_size: 15 | |
shuffle: false | |
new_width: 256 | |
new_height: 256 | |
} | |
} | |
layer { | |
name: "data" | |
type: "Concat" | |
bottom: "data_s" | |
bottom: "data_t" | |
top: "data" | |
include { | |
phase: TRAIN | |
} | |
concat_param { | |
concat_dim: 0 | |
} | |
} | |
layer { | |
name: "data" | |
type: "ImageData" | |
top: "data" | |
top: "label" | |
include { | |
phase: TEST | |
} | |
transform_param { | |
mirror: false | |
crop_size: 227 | |
mean_value: 104.0 | |
mean_value: 116.7 | |
mean_value: 122.7 | |
} | |
image_data_param { | |
source: "data/splits/office/webcam/target/test/same_category-split_00.txt" | |
batch_size: 1 | |
shuffle: false | |
new_width: 256 | |
new_height: 256 | |
} | |
} | |
layer { | |
name: "data" | |
type: "Concat" | |
bottom: "label_s" | |
bottom: "label_t" | |
top: "label" | |
include { | |
phase: TRAIN | |
} | |
concat_param { | |
concat_dim: 0 | |
} | |
} | |
layer { | |
name: "source_domain_label" | |
type: "DummyData" | |
top: "source_domain_label" | |
include { | |
phase: TRAIN | |
} | |
dummy_data_param { | |
data_filler { | |
type: "constant" | |
value: 0 | |
} | |
shape { | |
dim: 15 | |
dim: 1 | |
dim: 1 | |
} | |
} | |
} | |
layer { | |
name: "target_domain_label" | |
type: "DummyData" | |
top: "target_domain_label" | |
include { | |
phase: TRAIN | |
} | |
dummy_data_param { | |
data_filler { | |
type: "constant" | |
value: 1 | |
} | |
shape { | |
dim: 15 | |
dim: 1 | |
dim: 1 | |
} | |
} | |
} | |
layer { | |
name: "domain_label" | |
type: "Concat" | |
bottom: "source_domain_label" | |
bottom: "target_domain_label" | |
top: "domain_label" | |
include { | |
phase: TRAIN | |
} | |
concat_param { | |
concat_dim: 0 | |
} | |
} | |
layer { | |
name: "source_domain_label_inv" | |
type: "DummyData" | |
top: "source_domain_label_inv" | |
include { | |
phase: TRAIN | |
} | |
dummy_data_param { | |
data_filler { | |
type: "constant" | |
value: 1 | |
} | |
shape { | |
dim: 15 | |
dim: 1 | |
dim: 1 | |
} | |
} | |
} | |
layer { | |
name: "target_domain_label_inv" | |
type: "DummyData" | |
top: "target_domain_label_inv" | |
include { | |
phase: TRAIN | |
} | |
dummy_data_param { | |
data_filler { | |
type: "constant" | |
value: 0 | |
} | |
shape { | |
dim: 15 | |
dim: 1 | |
dim: 1 | |
} | |
} | |
} | |
layer { | |
name: "domain_label_inv" | |
type: "Concat" | |
bottom: "source_domain_label_inv" | |
bottom: "target_domain_label_inv" | |
top: "domain_label_inv" | |
include { | |
phase: TRAIN | |
} | |
concat_param { | |
concat_dim: 0 | |
} | |
} | |
layer { | |
name: "conv1" | |
type: "Convolution" | |
bottom: "data" | |
top: "conv1" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
convolution_param { | |
num_output: 96 | |
pad: 0 | |
kernel_size: 11 | |
group: 1 | |
stride: 4 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "relu1" | |
type: "ReLU" | |
bottom: "conv1" | |
top: "conv1" | |
} | |
layer { | |
name: "pool1" | |
type: "Pooling" | |
bottom: "conv1" | |
top: "pool1" | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
} | |
} | |
layer { | |
name: "norm1" | |
type: "LRN" | |
bottom: "pool1" | |
top: "norm1" | |
lrn_param { | |
local_size: 5 | |
alpha: 0.0001 | |
beta: 0.75 | |
} | |
} | |
layer { | |
name: "conv2" | |
type: "Convolution" | |
bottom: "norm1" | |
top: "conv2" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
convolution_param { | |
num_output: 256 | |
pad: 2 | |
kernel_size: 5 | |
group: 2 | |
stride: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "relu2" | |
type: "ReLU" | |
bottom: "conv2" | |
top: "conv2" | |
} | |
layer { | |
name: "pool2" | |
type: "Pooling" | |
bottom: "conv2" | |
top: "pool2" | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
} | |
} | |
layer { | |
name: "norm2" | |
type: "LRN" | |
bottom: "pool2" | |
top: "norm2" | |
lrn_param { | |
local_size: 5 | |
alpha: 0.0001 | |
beta: 0.75 | |
} | |
} | |
layer { | |
name: "conv3" | |
type: "Convolution" | |
bottom: "norm2" | |
top: "conv3" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
convolution_param { | |
num_output: 384 | |
pad: 1 | |
kernel_size: 3 | |
group: 1 | |
stride: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "relu3" | |
type: "ReLU" | |
bottom: "conv3" | |
top: "conv3" | |
} | |
layer { | |
name: "conv4" | |
type: "Convolution" | |
bottom: "conv3" | |
top: "conv4" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
convolution_param { | |
num_output: 384 | |
pad: 1 | |
kernel_size: 3 | |
group: 2 | |
stride: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "relu4" | |
type: "ReLU" | |
bottom: "conv4" | |
top: "conv4" | |
} | |
layer { | |
name: "conv5" | |
type: "Convolution" | |
bottom: "conv4" | |
top: "conv5" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
convolution_param { | |
num_output: 256 | |
pad: 1 | |
kernel_size: 3 | |
group: 2 | |
stride: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "relu5" | |
type: "ReLU" | |
bottom: "conv5" | |
top: "conv5" | |
} | |
layer { | |
name: "pool5" | |
type: "Pooling" | |
bottom: "conv5" | |
top: "pool5" | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
} | |
} | |
layer { | |
name: "fc6" | |
type: "InnerProduct" | |
bottom: "pool5" | |
top: "fc6" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
inner_product_param { | |
num_output: 4096 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "relu6" | |
type: "ReLU" | |
bottom: "fc6" | |
top: "fc6" | |
} | |
layer { | |
name: "drop6" | |
type: "Dropout" | |
bottom: "fc6" | |
top: "fc6" | |
dropout_param { | |
dropout_ratio: 0.5 | |
} | |
} | |
layer { | |
name: "fc7" | |
type: "InnerProduct" | |
bottom: "fc6" | |
top: "fc7" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
inner_product_param { | |
num_output: 4096 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "relu7" | |
type: "ReLU" | |
bottom: "fc7" | |
top: "fc7" | |
} | |
layer { | |
name: "drop7" | |
type: "Dropout" | |
bottom: "fc7" | |
top: "fc7" | |
dropout_param { | |
dropout_ratio: 0.5 | |
} | |
} | |
layer { | |
name: "fc8_new" | |
type: "InnerProduct" | |
bottom: "fc7" | |
top: "fc8_new" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
inner_product_param { | |
num_output: 31 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "domain" | |
type: "DomainConfusionInnerProduct" | |
bottom: "fc7" | |
top: "domain" | |
top: "domain_inv" | |
param { | |
lr_mult: 1.0 | |
decay_mult: 1.0 | |
} | |
param { | |
lr_mult: 2.0 | |
decay_mult: 0.0 | |
} | |
include { | |
phase: TRAIN | |
} | |
inner_product_param { | |
num_output: 2 | |
weight_filler { | |
type: "gaussian" | |
std: 0.005 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0.0 | |
} | |
} | |
} | |
layer { | |
name: "loss_domain" | |
type: "SoftmaxWithLoss" | |
bottom: "domain" | |
bottom: "domain_label" | |
top: "loss_domain" | |
loss_weight: 0.1 | |
include { | |
phase: TRAIN | |
} | |
} | |
layer { | |
name: "loss_domain_inv" | |
type: "SoftmaxWithLoss" | |
bottom: "domain_inv" | |
bottom: "domain_label_inv" | |
top: "loss_domain_inv" | |
loss_weight: 0.1 | |
include { | |
phase: TRAIN | |
} | |
} | |
layer { | |
name: "domain_accuracy" | |
type: "Accuracy" | |
bottom: "domain" | |
bottom: "domain_label" | |
top: "domain_accuracy" | |
include { | |
phase: TRAIN | |
} | |
} | |
layer { | |
name: "loss_tr" | |
type: "SoftmaxWithLoss" | |
bottom: "fc8_new" | |
bottom: "label" | |
top: "loss_tr" | |
loss_weight: 1.0 | |
include { | |
phase: TRAIN | |
} | |
} | |
layer { | |
name: "loss" | |
type: "SoftmaxWithLoss" | |
bottom: "fc8_new" | |
bottom: "label" | |
top: "loss" | |
loss_weight: 1.0 | |
include { | |
phase: TEST | |
} | |
} | |
layer { | |
name: "prob" | |
type: "Softmax" | |
bottom: "fc8_new" | |
top: "prob" | |
include { | |
phase: TEST | |
} | |
} | |
layer { | |
name: "accuracy" | |
type: "Accuracy" | |
bottom: "prob" | |
bottom: "label" | |
top: "accuracy" | |
include { | |
phase: TEST | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
me too i want to know how i can prepare the data for the multi source classification