Как использовать BERT для выполнения регрессии?

#python #python-3.x #tensorflow2.0

Вопрос:

Вот код и набор данных

Эта функция используется для построения модели:

 def build_regression_model():
    text_input = tf.keras.layers.Input(shape=(), dtype=tf.string, name='text')
    preprocessing_layer = hub.KerasLayer(tfhub_handle_preprocess, name='preprocessing')
    encoder_inputs = preprocessing_layer(text_input)
    encoder = hub.KerasLayer(tfhub_handle_encoder, trainable=True, name='BERT_encoder')
    outputs = encoder(encoder_inputs)
    net = outputs['pooled_output']
    net = tf.keras.layers.Dense(units=1)(net)

    return tf.keras.Model(text_input, net)


regression_model = build_regression_model()
 

Потеря составляет:

 loss='mean_absolute_error'
 

Оптимизатором является:

 optimizer=tf.optimizers.Adam(learning_rate=0.1)
 

Может кто-нибудь, пожалуйста, дать советы по решению этой проблемы. Спасибо!

Комментарии:

1. В чем, по-видимому, проблема OP?

2. прогнозируемый ответ имеет все то же значение.

3. Теоретически, ваша установка кажется правильной. Вы пробовали тренироваться? С какими проблемами вы столкнулись?

4. когда я предсказываю pos и отрицательный отзыв. Результирующее значение-это все одно и то же значение. Я попробовал разделить метку на 10 между 0-1. и изменить последнюю активацию выходного слоя на сигмоидную или relu. Но это больше не поможет.