我正在尝试使用 BERT 预训练模型进行多类分类(3 类)。这是我使用该模型的函数,还添加了一些额外的功能:
def create_model(max_seq_len, bert_ckpt_file):
with tf.io.gfile.GFile(bert_config_file, "r") as reader:
bc = StockBertConfig.from_json_string(reader.read())
bert_params = map_stock_config_to_params(bc)
bert_params.adapter_size = None
bert = BertModelLayer.from_params(bert_params, name="bert")
input_ids = keras.layers.Input(shape=(max_seq_len, ), dtype='int32', name="input_ids")
bert_output = bert(input_ids)
print("bert shape", bert_output.shape)
cls_out = keras.layers.Lambda(lambda seq: seq[:, 0, :])(bert_output)
cls_out = keras.layers.Dropout(0.5)(cls_out)
logits = keras.layers.Dense(units=768, activation="tanh")(cls_out)
logits = keras.layers.Dropout(0.5)(logits)
logits = keras.layers.Dense(units=len(classes), activation="softmax")(logits)
model = keras.Model(inputs=input_ids, outputs=logits)
model.build(input_shape=(None, max_seq_len))
load_stock_weights(bert, bert_ckpt_file)
return model
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试调用该函数时,出现错误。参数值有 max_seq_len = 128,bert_ckpt_file = bert 检查点文件。
model = create_model(data.max_seq_len, bert_ckpt_file)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误: …