in lib/modeling/VGG16_rel_softmaxed_triplet.py [0:0]
def add_language_embedding_for_vocab(model):
if cfg.TEXT_EMBEDDING.HIDDEN_LAYERS > 0:
model.add_FC_layer_with_weight_name(
'lang_sbj_and_obj',
'all_obj_word_vecs',
'all_obj_lan_embds_raw_1',
cfg.INPUT_LANG_EMBEDDING_DIM, cfg.OUTPUT_EMBEDDING_DIM,
weight_init=('GaussianFill', {'std': 0.01}),
bias_init=('ConstantFill', {'value': 0.}))
model.add_FC_layer_with_weight_name(
'lang_rel',
'all_prd_word_vecs',
'all_prd_lan_embds_raw_1',
cfg.INPUT_LANG_EMBEDDING_DIM, cfg.OUTPUT_EMBEDDING_DIM,
weight_init=('GaussianFill', {'std': 0.01}),
bias_init=('ConstantFill', {'value': 0.}))
if cfg.TEXT_EMBEDDING.HIDDEN_LAYERS > 1:
model.Relu('all_obj_lan_embds_raw_1', 'all_obj_lan_embds_raw_1')
model.add_FC_layer_with_weight_name(
'lang_sbj_and_obj_2',
'all_obj_lan_embds_raw_1',
'all_obj_lan_embds_raw_2',
cfg.OUTPUT_EMBEDDING_DIM, cfg.OUTPUT_EMBEDDING_DIM,
weight_init=('GaussianFill', {'std': 0.01}),
bias_init=('ConstantFill', {'value': 0.}))
model.Relu('all_prd_lan_embds_raw_1', 'all_prd_lan_embds_raw_1')
model.add_FC_layer_with_weight_name(
'lang_rel_2',
'all_prd_lan_embds_raw_1',
'all_prd_lan_embds_raw_2',
cfg.OUTPUT_EMBEDDING_DIM, cfg.OUTPUT_EMBEDDING_DIM,
weight_init=('GaussianFill', {'std': 0.01}),
bias_init=('ConstantFill', {'value': 0.}))
if cfg.TEXT_EMBEDDING.HIDDEN_LAYERS > 2:
model.Relu('all_obj_lan_embds_raw_2', 'all_obj_lan_embds_raw_2')
model.add_FC_layer_with_weight_name(
'lang_sbj_and_obj_3',
'all_obj_lan_embds_raw_2',
'all_obj_lan_embds_raw_3',
cfg.OUTPUT_EMBEDDING_DIM, cfg.OUTPUT_EMBEDDING_DIM,
weight_init=('GaussianFill', {'std': 0.01}),
bias_init=('ConstantFill', {'value': 0.}))
model.Relu('all_prd_lan_embds_raw_2', 'all_prd_lan_embds_raw_2')
model.add_FC_layer_with_weight_name(
'lang_rel_3',
'all_prd_lan_embds_raw_2',
'all_prd_lan_embds_raw_3',
cfg.OUTPUT_EMBEDDING_DIM, cfg.OUTPUT_EMBEDDING_DIM,
weight_init=('GaussianFill', {'std': 0.01}),
bias_init=('ConstantFill', {'value': 0.}))
# language embeddings must be normalized
model.net.Normalize('all_obj_lan_embds_raw_3', 'all_obj_lan_embds')
model.net.Normalize('all_prd_lan_embds_raw_3', 'all_prd_lan_embds')
else:
# language embeddings must be normalized
model.net.Normalize('all_obj_lan_embds_raw_2', 'all_obj_lan_embds')
model.net.Normalize('all_prd_lan_embds_raw_2', 'all_prd_lan_embds')
else:
model.net.Normalize('all_obj_lan_embds_raw_1', 'all_obj_lan_embds')
model.net.Normalize('all_prd_lan_embds_raw_1', 'all_prd_lan_embds')
else:
model.net.Alias('all_obj_word_vecs', 'all_obj_lan_embds')
model.net.Alias('all_prd_word_vecs', 'all_prd_lan_embds')
model.Scale(
'all_obj_lan_embds', 'scaled_all_obj_lan_embds', scale=cfg.TRAIN.NORM_SCALAR)
model.Scale(
'all_prd_lan_embds', 'scaled_all_prd_lan_embds', scale=cfg.TRAIN.NORM_SCALAR)