【发布时间】:2021-12-11 11:26:02
【问题描述】:
在这个例子中我需要使用 BERT 而不是 LSTM。是否可以只用 BERT 替换 LSTM 这个词?
inputs1=Input(shape=(2048,))
fe1 = Dense(128, activation='relu')(inputs1)
inputs2 = Input(shape=(max_length,))
se1 = Embedding(vocab_size, 256, mask_zero=True)(inputs2)
se2 = LSTM(256)(se1)
se3 = Dropout(0.5)(se2)
decoder1 = Concatenate()([fe1, se3])
decoder2 = Dense(128, activation='relu')(decoder1)
outputs = Dense(vocab_size, activation='softmax')(decoder2)
model=Model(inputs=[inputs1,inputs2],outputs=outputs)
或者我该如何开始使用它?
我试过了:
inputs1=Input(shape=(2048,))
fe1 = Dense(128, activation='relu')(inputs1)
inputs2 = Input(shape=(max_length,), name="input_ids")
in_mask = Input(shape=(max_length,), name="input_masks")
in_segment = Input(shape=(max_length,), name="segment_ids")
bert_inputs = [inputs2, in_mask, in_segment]
bert_output = BertLayer(n_fine_tune_layers=12, pooling="mean")(bert_inputs)
decoder1 = Concatenate()([fe1 bert_output])
decoder2 = Dense(256, activation='relu')(decoder1)
outputs = Dense(vocab_size, activation='softmax')(decoder2)
model=Model(inputs=[inputs1,inputs2],outputs=outputs)
但是得到了:
bert_output = BertLayer(n_fine_tune_layers=12, pooling="mean")(bert_inputs)
TypeError: __init__() missing 2 required positional arguments: 'pretrained_model_path' and 'output_size'
【问题讨论】: