问题描述
我正在尝试微调以表格数据作为输入的 BERT/transformer 模型。
每一行都有许多文本输入和一些数字特征。
我想在一侧有一个神经网络。然后是另一侧的变压器。转换器将接受文本输入。神经网络将接受数字输入。输出将被连接起来,最后一个密集的 1 sigmoid 层将产生一个预测。
def bert_model():
num_columns = 10
inputs = []
numeric_inputs = layers.Input(shape = (window_size,num_columns))
categorical_inputs = layers.Input(shape = (window_size,num_columns))
inputs.append(numeric_inputs)
inputs.append(categorical_inputs)
input_ids = layers.Input(shape=(512,),name='input_token',dtype='int32')
input_masks_ids = layers.Input(shape=(512,name='masked_token',dtype='int32')
unpooledoutputs = tfbert_model(input_ids,input_masks_ids)
bert_layer = layers.Dropout(0.1)(unpooledoutputs.pooler_output)
inputs.append(input_ids)
inputs.append(input_masks_ids)
# textual data
for i in range(1,window_size):
input_ids = layers.Input(shape=(512,name=f'input_token_{i}',dtype='int32')
input_masks_ids = layers.Input(shape=(512,name=f'masked_token_{i}',dtype='int32')
inputs.append(input_ids)
inputs.append(input_masks_ids)
unpooledoutputs = tfbert_model(input_ids,input_masks_ids)
unpooledoutputs = layers.Dropout(0.1)(unpooledoutputs.pooler_output)
bert_layer = layers.Concatenate()([bert_layer,\
unpooledoutputs])
... rest of the concatenation with other model
这是正确的方法吗?我想使用单个 bert 模型对所有输入进行微调。我确实希望必须使用 50 个 BERT 模型,每个文本输入一个,但只需要一个。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)