cannot load weights of bert model when i use multiple targets (target sequence)

Offen
#392 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
python

Rechercherichtung

Reproduce the failure with BERT_Model.load_weights in dlpy/transformers/bert_model.py using the multiple-target call shown. Trace the handoff through dlpy/network.py, especially load_weights_from_keras and load_weights_from_file, and inspect how the target sequence is rejected. Done means multi-target BERT weights load successfully, or the unsupported configuration is explicitly documented.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

i have project where i have to predict multiple keywords based on description of a movie.

I am able to train the bert model with 1 (binary target) , but I have train the model with multiple (431) binary targets.
I got an error when I try to load the weight to cas.
parameter:

  • Final classification layer number of class predictions n_classes = 2. (but i tried as well with 1 (regression)

  • Number of target variables (num_tgt_var = 435)

bert.load_weights('/opt/sas/viya/config/data/cas/default/public/bert-base-uncased.kerasmodel.h5' ,
num_target_var=num_tgt_var,
# Do not freeze base model weights.
# Allow layer updates with model tuning.
freeze_base_model=False
)

error:
ERROR: Target sequence for text input is not supported.
ERROR: The action stopped due to errors.


DLPyError Traceback (most recent call last)
Input In [17], in <cell line: 1>()
----> 1 bert.load_weights('/opt/sas/viya/config/data/cas/default/public/bert-base-uncased.kerasmodel.h5' ,
2 num_target_var=num_tgt_var,
3 # Do not freeze base model weights.
4 # Allow layer updates with model tuning.
5 freeze_base_model=False
6 )

File ~/python-dlpy/dlpy/transformers/bert_model.py:967, in BERT_Model.load_weights(self, path, num_target_var, freeze_base_model, use_gpu, last_frozen_layer)
964 data_spec = self.get_data_spec(num_target_var)
966 # attach layer weights
--> 967 super(BERT_Model, self).load_weights(path,
968 data_spec=data_spec,
969 use_gpu=use_gpu,
970 embedding_dim=self._config['hidden_size'])
972 # determine which layers to freeze
973 self._freeze_layers = self._rnn_layer

File ~/python-dlpy/dlpy/network.py:1003, in Network.load_weights(self, path, labels, data_spec, label_file_name, label_length, use_gpu, embedding_dim)
1000 self.load_weights_from_caffe(path, labels=labels, data_spec=data_spec, label_file_name=label_file_name,
1001 label_length=label_length)
1002 elif file_name.lower().endswith('kerasmodel.h5'):
-> 1003 self.load_weights_from_keras(path, labels=labels, data_spec=data_spec, label_file_name=label_file_name,
1004 label_length=label_length, use_gpu=use_gpu, embedding_dim=embedding_dim)
1005 elif file_name.lower().endswith('onnxmodel.h5'):
1006 self.load_weights_from_keras(path, labels=labels, data_spec=data_spec, label_file_name=label_file_name,
1007 label_length=label_length, use_gpu=use_gpu, embedding_dim=embedding_dim)

File ~/python-dlpy/dlpy/network.py:1077, in Network.load_weights_from_keras(self, path, labels, data_spec, label_file_name, label_length, use_gpu, embedding_dim)
1073 self.load_weights_from_file_with_labels(path=path, format_type='KERAS', data_spec=data_spec,
1074 label_file_name=label_file_name, label_length=label_length,
1075 use_gpu=use_gpu, embedding_dim=embedding_dim)
1076 else:
-> 1077 self.load_weights_from_file(path=path, format_type='KERAS', data_spec=data_spec, use_gpu=use_gpu,
1078 embedding_dim=embedding_dim)

File ~/python-dlpy/dlpy/network.py:1187, in Network.load_weights_from_file(self, path, format_type, data_spec, use_gpu, embedding_dim)
1185 for msg in rt.messages:
1186 print(msg)
-> 1187 raise DLPyError('Cannot import model weights, there seems to be a problem.')
1189 # create attributes if necessary
1190 if not has_data_spec:

DLPyError: Cannot import model weights, there seems to be a problem.

Vorherrschende Sprache
Python
Sterne
224
Forks
129
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus sassoftware/python-dlpy

Alle Issues in sassoftware/python-dlpy

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.