Comments (2)
@ralphbrooks - thank you for noting that. I think the example in the README was somewhat short. The model variables in Keras seems to be created only after the model has been build, i.e. keras needs to know some of the dimensions of the input to properly calculate the dimensions of the weights. So, a more complete example might look like this (note the call to Model.build
):
print(model_dir)
bert_config_file = os.path.join(model_dir, "bert_config.json")
bert_ckpt_file = os.path.join(model_dir, "bert_model.ckpt")
with tf.io.gfile.GFile(bert_config_file, "r") as reader:
stock_params = StockBertConfig.from_json_string(reader.read())
bert_params = stock_params.to_bert_model_layer_params()
l_bert = BertModelLayer.from_params(bert_params, name="bert")
max_seq_len=128
l_input_ids = keras.layers.Input(shape=(max_seq_len,), dtype='int32', name="input_ids")
l_token_type_ids = keras.layers.Input(shape=(max_seq_len,), dtype='int32', name="token_type_ids")
output = l_bert([l_input_ids, l_token_type_ids])
model = keras.Model(inputs=[l_input_ids, l_token_type_ids], outputs=output)
model.build(input_shape=[(None, max_seq_len),
(None, max_seq_len)])
load_stock_weights(l_bert, bert_ckpt_file)
N.B you might also find some of the unitests under tests
useful.
from bert-for-tf2.
an example on sentiment classifier fine-tuning could now be found under examples/
.
from bert-for-tf2.
Related Issues (20)
- Custom tokenizer layer HOT 5
- ResourceExhaustedError: OOM when allocating tensor with shape[501153,768] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc [Op:Mul]
- mixed precision HOT 3
- example (gpu_movie_reviews) has some mistake
- Failed to get weights from pretrained google model HOT 2
- Can not load pretrained bert weights when loading chinese_L-12_H-768_A-12/bert_model.ckpt HOT 3
- Paddings must be non-negative
- albert classification error(Failed copying input tensor from GPU in order to run Identity: GPU sync failed [Op:Identity])
- ValueError: Found unexpected keys that do not correspond to any Model output
- More comments for the code
- Can't train BERT with loaded weights on QA Task HOT 3
- Setting unexpected parameter 'name' in Params instance 'Params' HOT 2
- how to using this in functional model
- may be there is some problem work with tf hub
- AttributeError: module 'bert' has no attribute 'Layer'
- type error HOT 5
- Activation after bert-layer differs
- Count of weight not found[196]
- OSS License compatibility question
- tensorflow.python.keras.layer.input_spec should be replaced with tensorflow.keras.layers.InputSpec HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bert-for-tf2.