Как заморозить параметры модели Роберты при извлечении настроений?

#python #deep-learning #nlp

Вопрос:

Вот основная часть моей функции модели сборки: def build_model():

 ids = tf.keras.layers.Input((MAX_LEN,), dtype=tf.int32)
att = tf.keras.layers.Input((MAX_LEN,), dtype=tf.int32)
tok = tf.keras.layers.Input((MAX_LEN,), dtype=tf.int32)

config = RobertaConfig.from_pretrained(PATH 'config.json')
bert_model = TFRobertaModel.from_pretrained(PATH 'tf_model.h5',config=config)
for param in bert_model.roberta.parameters():
    param.requires_grad = False
x = bert_model(ids,attention_mask=att,token_type_ids=tok)
x1 = tf.keras.layers.Dropout(0.1)(x[0]) 
x1 = tf.keras.layers.Conv1D(128, 2,padding='same')(x1)
x1 = tf.keras.layers.LeakyReLU()(x1)
x1 = tf.keras.layers.Conv1D(64, 2,padding='same')(x1)
x1 = tf.keras.layers.Dense(1)(x1)
x1 = tf.keras.layers.Flatten()(x1)
x1 = tf.keras.layers.Activation('softmax')(x1)

x2 = tf.keras.layers.Dropout(0.1)(x[0]) 
x2 = tf.keras.layers.Conv1D(128, 2, padding='same')(x2)
x2 = tf.keras.layers.LeakyReLU()(x2)
x2 = tf.keras.layers.Conv1D(64, 2, padding='same')(x2)
x2 = tf.keras.layers.Dense(1)(x2)
x2 = tf.keras.layers.Flatten()(x2)
x2 = tf.keras.layers.Activation('softmax')(x2)

model = tf.keras.models.Model(inputs=[ids,att,tok], outputs=[x1,x2])
optimizer = tf.keras.optimizers.Adam(learning_rate=3e-5)
model.compile(loss='binary_crossentropy', optimizer=optimizer)


return model
 

Ошибка возникает в этой строке:
для параметра в bert_model.roberta.parameters():
параметр.requires_grad = False

Объект ‘TFRobertaMainLayer’ не имеет атрибута ‘параметры’

Кто-нибудь может сказать мне, как заморозить параметры? Спасибо