Python bert.modeling.get_shape_list() Examples
The following are 16
code examples of bert.modeling.get_shape_list().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
bert.modeling
, or try the search function
.
Example #1
Source File: embedding_util.py From language with Apache License 2.0 | 6 votes |
def run_one_hot_embeddings(one_hot_input_ids, config): """Extract only the word embeddings of the original BERT model.""" with tf.variable_scope("bert", reuse=tf.compat.v1.AUTO_REUSE): with tf.variable_scope("embeddings"): # branched from modeling.embedding_lookup embedding_table = tf.get_variable( name="word_embeddings", shape=[config.vocab_size, config.hidden_size], initializer=modeling.create_initializer(config.initializer_range)) flat_input_ids = tf.reshape(one_hot_input_ids, [-1, config.vocab_size]) output = tf.matmul(flat_input_ids, embedding_table) input_shape = modeling.get_shape_list(one_hot_input_ids) output = tf.reshape(output, input_shape[0:-1] + [config.hidden_size]) return (output, embedding_table)
Example #2
Source File: run_bert_open_qa_eval.py From XQA with MIT License | 5 votes |
def create_predict_model(bert_config, input_ids, input_mask, segment_ids, use_one_hot_embeddings): """Creates a classification model.""" all_logits = [] input_ids_shape = modeling.get_shape_list(input_ids, expected_rank=2) batch_size = input_ids_shape[0] seq_length = input_ids_shape[1] model = modeling.BertModel( config=bert_config, is_training=False, input_ids=input_ids, input_mask=input_mask, token_type_ids=segment_ids, use_one_hot_embeddings=use_one_hot_embeddings, scope="bert") final_hidden = model.get_sequence_output() final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3) hidden_size = final_hidden_shape[2] output_weights = tf.get_variable( "cls/open_qa/output_weights", [2, hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) output_bias = tf.get_variable( "cls/open_qa/output_bias", [2], initializer=tf.zeros_initializer()) final_hidden_matrix = tf.reshape(final_hidden, [batch_size * seq_length, hidden_size]) logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True) logits = tf.nn.bias_add(logits, output_bias) logits = tf.reshape(logits, [batch_size, seq_length, 2]) logits = tf.transpose(logits, [2, 0, 1]) unstacked_logits = tf.unstack(logits, axis=0) (start_logits, end_logits) = (unstacked_logits[0], unstacked_logits[1]) return (start_logits, end_logits)
Example #3
Source File: bert_unsupervised.py From causal-text-embeddings with MIT License | 5 votes |
def gather_indexes(sequence_tensor, positions): """Gathers the vectors at the specific positions over a minibatch.""" sequence_shape = modeling.get_shape_list(sequence_tensor, expected_rank=3) batch_size = sequence_shape[0] seq_length = sequence_shape[1] width = sequence_shape[2] flat_offsets = tf.reshape( tf.range(0, batch_size, dtype=tf.int32) * seq_length, [-1, 1]) flat_positions = tf.reshape(positions + flat_offsets, [-1]) flat_sequence_tensor = tf.reshape(sequence_tensor, [batch_size * seq_length, width]) output_tensor = tf.gather(flat_sequence_tensor, flat_positions) return output_tensor
Example #4
Source File: run_pretraining.py From QGforQA with MIT License | 5 votes |
def gather_indexes(sequence_tensor, positions): """Gathers the vectors at the specific positions over a minibatch.""" sequence_shape = modeling.get_shape_list(sequence_tensor, expected_rank=3) batch_size = sequence_shape[0] seq_length = sequence_shape[1] width = sequence_shape[2] flat_offsets = tf.reshape( tf.range(0, batch_size, dtype=tf.int32) * seq_length, [-1, 1]) flat_positions = tf.reshape(positions + flat_offsets, [-1]) flat_sequence_tensor = tf.reshape(sequence_tensor, [batch_size * seq_length, width]) output_tensor = tf.gather(flat_sequence_tensor, flat_positions) return output_tensor
Example #5
Source File: run_squad.py From language with Apache License 2.0 | 5 votes |
def create_model(bert_config, is_training, input_ids, input_mask, segment_ids, use_one_hot_embeddings): """Creates a classification model.""" model = modeling.BertModel( config=bert_config, is_training=is_training, input_ids=input_ids, input_mask=input_mask, token_type_ids=segment_ids, use_one_hot_embeddings=use_one_hot_embeddings) final_hidden = model.get_sequence_output() final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3) batch_size = final_hidden_shape[0] seq_length = final_hidden_shape[1] hidden_size = final_hidden_shape[2] output_weights = tf.get_variable( "cls/squad/output_weights", [2, hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) output_bias = tf.get_variable( "cls/squad/output_bias", [2], initializer=tf.zeros_initializer()) final_hidden_matrix = tf.reshape(final_hidden, [batch_size * seq_length, hidden_size]) logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True) logits = tf.nn.bias_add(logits, output_bias) logits = tf.reshape(logits, [batch_size, seq_length, 2]) logits = tf.transpose(logits, [2, 0, 1]) unstacked_logits = tf.unstack(logits, axis=0) (start_logits, end_logits) = (unstacked_logits[0], unstacked_logits[1]) return (start_logits, end_logits)
Example #6
Source File: bilin_model_builder.py From language with Apache License 2.0 | 5 votes |
def gather_indexes(sequence_tensor, positions): """Gathers the vectors at the specific positions over a minibatch.""" sequence_shape = modeling.get_shape_list(sequence_tensor, expected_rank=3) batch_size = sequence_shape[0] seq_length = sequence_shape[1] width = sequence_shape[2] flat_offsets = tf.reshape( tf.range(0, batch_size, dtype=tf.int32) * seq_length, [-1, 1]) flat_positions = tf.reshape(positions + flat_offsets, [-1]) flat_sequence_tensor = tf.reshape(sequence_tensor, [batch_size * seq_length, width]) output_tensor = tf.gather(flat_sequence_tensor, flat_positions) return output_tensor
Example #7
Source File: model_builder.py From language with Apache License 2.0 | 5 votes |
def gather_indexes(sequence_tensor, positions): """Gathers the vectors at the specific positions over a minibatch.""" sequence_shape = modeling.get_shape_list(sequence_tensor, expected_rank=3) batch_size = sequence_shape[0] seq_length = sequence_shape[1] width = sequence_shape[2] flat_offsets = tf.reshape( tf.range(0, batch_size, dtype=tf.int32) * seq_length, [-1, 1]) flat_positions = tf.reshape(positions + flat_offsets, [-1]) flat_sequence_tensor = tf.reshape(sequence_tensor, [batch_size * seq_length, width]) output_tensor = tf.gather(flat_sequence_tensor, flat_positions) return output_tensor
Example #8
Source File: run_squad.py From language with Apache License 2.0 | 5 votes |
def create_model(bert_config, is_training, input_ids, input_mask, segment_ids, use_one_hot_embeddings): """Creates a classification model.""" model = modeling.BertModel( config=bert_config, is_training=is_training, input_ids=input_ids, input_mask=input_mask, token_type_ids=segment_ids, use_one_hot_embeddings=use_one_hot_embeddings) final_hidden = model.get_sequence_output() final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3) batch_size = final_hidden_shape[0] seq_length = final_hidden_shape[1] hidden_size = final_hidden_shape[2] output_weights = tf.get_variable( "cls/squad/output_weights", [2, hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) output_bias = tf.get_variable( "cls/squad/output_bias", [2], initializer=tf.zeros_initializer()) final_hidden_matrix = tf.reshape(final_hidden, [batch_size * seq_length, hidden_size]) logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True) logits = tf.nn.bias_add(logits, output_bias) logits = tf.reshape(logits, [batch_size, seq_length, 2]) logits = tf.transpose(logits, [2, 0, 1]) unstacked_logits = tf.unstack(logits, axis=0) (start_logits, end_logits) = (unstacked_logits[0], unstacked_logits[1]) return (start_logits, end_logits)
Example #9
Source File: run_mrqa.py From language with Apache License 2.0 | 5 votes |
def create_model(bert_config, is_training, input_ids, input_mask, use_one_hot_embeddings): """Creates a classification model.""" model = modeling.BertModel( config=bert_config, is_training=is_training, input_ids=input_ids, input_mask=input_mask, use_one_hot_embeddings=use_one_hot_embeddings) # Get the logits for the start and end predictions. final_hidden = model.get_sequence_output() final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3) batch_size = final_hidden_shape[0] seq_length = final_hidden_shape[1] hidden_size = final_hidden_shape[2] output_weights = tf.get_variable( "cls/nq/output_weights", [2, hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) output_bias = tf.get_variable( "cls/nq/output_bias", [2], initializer=tf.zeros_initializer()) final_hidden_matrix = tf.reshape(final_hidden, [batch_size * seq_length, hidden_size]) logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True) logits = tf.nn.bias_add(logits, output_bias) logits = tf.reshape(logits, [batch_size, seq_length, 2]) logits = tf.transpose(logits, [2, 0, 1]) unstacked_logits = tf.unstack(logits, axis=0) (start_logits, end_logits) = (unstacked_logits[0], unstacked_logits[1]) return (start_logits, end_logits)
Example #10
Source File: run_pretraining.py From language with Apache License 2.0 | 5 votes |
def gather_indexes(sequence_tensor, positions): """Gathers the vectors at the specific positions over a minibatch.""" sequence_shape = modeling.get_shape_list(sequence_tensor, expected_rank=3) batch_size = sequence_shape[0] seq_length = sequence_shape[1] width = sequence_shape[2] flat_offsets = tf.reshape( tf.range(0, batch_size, dtype=tf.int32) * seq_length, [-1, 1]) flat_positions = tf.reshape(positions + flat_offsets, [-1]) flat_sequence_tensor = tf.reshape(sequence_tensor, [batch_size * seq_length, width]) output_tensor = tf.gather(flat_sequence_tensor, flat_positions) return output_tensor
Example #11
Source File: model_fns.py From language with Apache License 2.0 | 5 votes |
def _get_bert_embeddings(model, layers_to_use, aggregation_fn, name="bert"): """Extract embeddings from BERT model.""" all_hidden = model.get_all_encoder_layers() layers_hidden = [all_hidden[i] for i in layers_to_use] hidden_shapes = [ modeling.get_shape_list(hid, expected_rank=3) for hid in all_hidden ] if len(layers_hidden) == 1: hidden_emb = layers_hidden[0] hidden_size = hidden_shapes[0][2] elif aggregation_fn == "concat": hidden_emb = tf.concat(layers_hidden, 2) hidden_size = sum([hidden_shapes[i][2] for i in layers_to_use]) elif aggregation_fn == "average": hidden_size = hidden_shapes[0][2] assert all([shape[2] == hidden_size for shape in hidden_shapes ]), hidden_shapes hidden_emb = tf.add_n(layers_hidden) / len(layers_hidden) elif aggregation_fn == "attention": hidden_size = hidden_shapes[0][2] mixing_weights = tf.get_variable( name + "/mixing/weights", [len(layers_hidden)], initializer=tf.zeros_initializer()) mixing_scores = tf.nn.softmax(mixing_weights) hidden_emb = tf.tensordot( tf.stack(layers_hidden, axis=-1), mixing_scores, [[-1], [0]]) else: raise ValueError("Unrecognized aggregation function %s." % aggregation_fn) return hidden_emb, hidden_size
Example #12
Source File: run_dualencoder_qa.py From language with Apache License 2.0 | 5 votes |
def _get_bert_embeddings(model, layers_to_use, aggregation_fn, name="bert"): """Extract embeddings from BERT model.""" all_hidden = model.get_all_encoder_layers() layers_hidden = [all_hidden[i] for i in layers_to_use] hidden_shapes = [ modeling.get_shape_list(hid, expected_rank=3) for hid in all_hidden ] if len(layers_hidden) == 1: hidden_emb = layers_hidden[0] hidden_size = hidden_shapes[0][2] elif aggregation_fn == "concat": hidden_emb = tf.concat(layers_hidden, 2) hidden_size = sum([hidden_shapes[i][2] for i in layers_to_use]) elif aggregation_fn == "average": hidden_size = hidden_shapes[0][2] assert all([shape[2] == hidden_size for shape in hidden_shapes ]), hidden_shapes hidden_emb = tf.add_n(layers_hidden) / len(layers_hidden) elif aggregation_fn == "attention": hidden_size = hidden_shapes[0][2] mixing_weights = tf.get_variable( name + "/mixing/weights", [len(layers_hidden)], initializer=tf.zeros_initializer()) mixing_scores = tf.nn.softmax(mixing_weights) hidden_emb = tf.tensordot( tf.stack(layers_hidden, axis=-1), mixing_scores, [[-1], [0]]) else: raise ValueError("Unrecognized aggregation function %s." % aggregation_fn) return hidden_emb, hidden_size
Example #13
Source File: run_squad.py From MAX-Question-Answering with Apache License 2.0 | 5 votes |
def create_model(bert_config, is_training, input_ids, input_mask, segment_ids, use_one_hot_embeddings): """Creates a classification model.""" model = modeling.BertModel( config=bert_config, is_training=is_training, input_ids=input_ids, input_mask=input_mask, token_type_ids=segment_ids, use_one_hot_embeddings=use_one_hot_embeddings) final_hidden = model.get_sequence_output() final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3) batch_size = final_hidden_shape[0] seq_length = final_hidden_shape[1] hidden_size = final_hidden_shape[2] output_weights = tf.get_variable( "cls/squad/output_weights", [2, hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) output_bias = tf.get_variable( "cls/squad/output_bias", [2], initializer=tf.zeros_initializer()) final_hidden_matrix = tf.reshape(final_hidden, [batch_size * seq_length, hidden_size]) logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True) logits = tf.nn.bias_add(logits, output_bias) logits = tf.reshape(logits, [batch_size, seq_length, 2]) logits = tf.transpose(logits, [2, 0, 1]) unstacked_logits = tf.unstack(logits, axis=0) (start_logits, end_logits) = (unstacked_logits[0], unstacked_logits[1]) return (start_logits, end_logits)
Example #14
Source File: run_bert_open_qa_train.py From XQA with MIT License | 4 votes |
def create_model(bert_config, is_training, input_ids_list, input_mask_list, segment_ids_list, use_one_hot_embeddings): """Creates a classification model.""" all_logits = [] input_ids_shape = modeling.get_shape_list(input_ids_list, expected_rank=2) batch_size = input_ids_shape[0] seq_length = input_ids_shape[1] seq_length = seq_length // NUM_DOCS def reshape_and_unstack_inputs(inputs, batch_size): inputs = tf.reshape(inputs, [batch_size, NUM_DOCS, seq_length]) return tf.unstack(inputs, axis=1) input_ids_list = reshape_and_unstack_inputs(input_ids_list, batch_size) input_mask_list = reshape_and_unstack_inputs(input_mask_list, batch_size) segment_ids_list = reshape_and_unstack_inputs(segment_ids_list, batch_size) start_logits, end_logits = [], [] with tf.variable_scope(tf.get_variable_scope(), reuse=tf.AUTO_REUSE) as scope: for i in range(len(input_ids_list)): model = modeling.BertModel( config=bert_config, is_training=is_training, input_ids=input_ids_list[i], input_mask=input_mask_list[i], token_type_ids=segment_ids_list[i], use_one_hot_embeddings=use_one_hot_embeddings, scope="bert") final_hidden = model.get_sequence_output() final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3) hidden_size = final_hidden_shape[2] output_weights = tf.get_variable( "cls/open_qa/output_weights", [2, hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) output_bias = tf.get_variable( "cls/open_qa/output_bias", [2], initializer=tf.zeros_initializer()) final_hidden_matrix = tf.reshape(final_hidden, [batch_size * seq_length, hidden_size]) logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True) logits = tf.nn.bias_add(logits, output_bias) logits = tf.reshape(logits, [batch_size, seq_length, 2]) logits = tf.transpose(logits, [2, 0, 1]) unstacked_logits = tf.unstack(logits, axis=0) (s_logits, e_logits) = (unstacked_logits[0], unstacked_logits[1]) start_logits.append(s_logits) end_logits.append(e_logits) start_logits = tf.concat(start_logits, axis=-1) end_logits = tf.concat(end_logits, axis=-1) return (start_logits, end_logits)
Example #15
Source File: run_squad_membership.py From language with Apache License 2.0 | 4 votes |
def create_model(bert_config, input_ids, input_mask, segment_ids, use_one_hot_embeddings, membership_features_str): """Creates a classification model.""" # To avoid dropout computations, passing is_training=False model = modeling.BertModel( config=bert_config, is_training=False, input_ids=input_ids, input_mask=input_mask, token_type_ids=segment_ids, use_one_hot_embeddings=use_one_hot_embeddings) final_hidden = model.get_sequence_output() final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3) batch_size = final_hidden_shape[0] seq_length = final_hidden_shape[1] hidden_size = final_hidden_shape[2] output_weights = tf.get_variable( "cls/squad/output_weights", [2, hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) output_bias = tf.get_variable( "cls/squad/output_bias", [2], initializer=tf.zeros_initializer()) final_hidden_matrix = tf.reshape(final_hidden, [batch_size * seq_length, hidden_size]) logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True) logits = tf.nn.bias_add(logits, output_bias) hidden_stacked = tf.reshape(final_hidden, [batch_size, seq_length * hidden_size]) ans_pos_stacked = tf.reshape(logits, [batch_size, seq_length * 2]) # choose the set of representations to run the membership classifier on if membership_features_str == "last_plus_logits": membership_features = tf.concat([hidden_stacked, ans_pos_stacked], axis=1) elif membership_features_str == "last": membership_features = hidden_stacked elif membership_features_str == "logits": membership_features = ans_pos_stacked num_membership_features = modeling.get_shape_list( membership_features, expected_rank=2)[1] membership_weights = tf.get_variable( "cls/squad/membership/weights", [2, num_membership_features], initializer=tf.truncated_normal_initializer(stddev=0.02)) membership_bias = tf.get_variable( "cls/squad/membership/bias", [2], initializer=tf.zeros_initializer()) membership_logits = tf.matmul( membership_features, membership_weights, transpose_b=True) membership_logits = tf.nn.bias_add(membership_logits, membership_bias) return membership_logits, [membership_weights, membership_bias]
Example #16
Source File: run_nq.py From language with Apache License 2.0 | 4 votes |
def create_model(bert_config, is_training, input_ids, input_mask, segment_ids, use_one_hot_embeddings): """Creates a classification model.""" model = modeling.BertModel( config=bert_config, is_training=is_training, input_ids=input_ids, input_mask=input_mask, token_type_ids=segment_ids, use_one_hot_embeddings=use_one_hot_embeddings) # Get the logits for the start and end predictions. final_hidden = model.get_sequence_output() final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3) batch_size = final_hidden_shape[0] seq_length = final_hidden_shape[1] hidden_size = final_hidden_shape[2] output_weights = tf.get_variable( "cls/nq/output_weights", [2, hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) output_bias = tf.get_variable( "cls/nq/output_bias", [2], initializer=tf.zeros_initializer()) final_hidden_matrix = tf.reshape(final_hidden, [batch_size * seq_length, hidden_size]) logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True) logits = tf.nn.bias_add(logits, output_bias) logits = tf.reshape(logits, [batch_size, seq_length, 2]) logits = tf.transpose(logits, [2, 0, 1]) unstacked_logits = tf.unstack(logits, axis=0) (start_logits, end_logits) = (unstacked_logits[0], unstacked_logits[1]) # Get the logits for the answer type prediction. answer_type_output_layer = model.get_pooled_output() answer_type_hidden_size = answer_type_output_layer.shape[-1].value num_answer_types = 5 # YES, NO, UNKNOWN, SHORT, LONG answer_type_output_weights = tf.get_variable( "answer_type_output_weights", [num_answer_types, answer_type_hidden_size], initializer=tf.truncated_normal_initializer(stddev=0.02)) answer_type_output_bias = tf.get_variable( "answer_type_output_bias", [num_answer_types], initializer=tf.zeros_initializer()) answer_type_logits = tf.matmul( answer_type_output_layer, answer_type_output_weights, transpose_b=True) answer_type_logits = tf.nn.bias_add(answer_type_logits, answer_type_output_bias) return (start_logits, end_logits, answer_type_logits)