Closed hodhoda closed 3 years ago
Bonjour @hodhoda,
Si vous avez entrainé votre modèle à partir de TFCamembertForSequenceClassification
, vous feriez mieux d'exporter votre modèle avec la méthode save_pretrained
. Ce notebook montre comment tester individuellement des phrases sur le modèle tf-allocine
, et devrait fonctionner pour tout type de modèles basé sur TFCamembertForSequenceClassification
.
Vous ne l'avez pas précisé, mais je devine que vous avez obtenu votre fichier .h5
avec la méthode save_weights
de Keras (la méthode save
ne fonctionnant pas pour TFCamembertForSequenceClassification
). Dans ce cas, le code suivant devrait fonctionner:
from transformers import CamembertTokenizer, TFCamembertForSequenceClassification
import numpy as np
tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = TFCamembertForSequenceClassification.from_pretrained("jplu/tf-camembert-base")
model.load_weights("tf_model.h5")
EXAMPLES = ["J'aime bien le camembert...", "Je n'aime pas le parmesan !"]
X = tokenizer(EXAMPLES, truncation=True, padding="max_length", return_tensors="tf")
logits = model.predict(dict(X))["logits"]
preds = np.argmax(logits, axis=1)
print(preds[0], preds[1]) # outputs: 1, 0
Bonjour Théophile, Je vous remercie infiniment pour votre réponse, ça fonctionne parfaitement avec le modèle entrainé de camembert_weights.hdf5 pourtant le résultat d'analyse n'est pas trop performant pour cela j'ai testé encore avec le modèle tf_model.h5 et ça marche pas, il m'affiche l'erreur suivant: Layer #0 (named "roberta" in the current model) was found to correspond to layer roberta in the save file. However the new layer roberta expects 197 weights, but the saved weights have 199 elements.
Est-ce que cette erreur a une relation avec l'entrainement? avez vous une idée qui peut être utile pour remédier à ce problème?
Bonjour Théophile,
Désolé pour le dérangement encore une fois, je voulais juste vous demander est-ce que c'est possible de m'envoyer le modèle que vous avez entraîné (camembert_weights.hdf5) car le mienne n'était pas assez performant je pense que c'était à cause que j'utilise seulement mon ordinateur fixe core i7 qui n'a pas de GPU et je n'est pas de serveur chez moi, et ainsi j'ai seulement pu terminé les 7 premiers epochs de l'entraînement et ça été arrêté automatiquement, j'ai essayé de le relancer encore et encore pas mal de fois mais le résultat c'était le même malheureusement.
J'attends votre retour et je vous remercie encore une fois pour votre aide.
Cordialement.
Le mer. 26 mai 2021 à 22:22, Théophile Blard @.***> a écrit :
Bonjour @hodhoda https://github.com/hodhoda,
Si vous avez entrainé votre modèle à partir de TFCamembertForSequenceClassification, vous feriez mieux d'exporter votre modèle avec la méthode save_pretrained. Ce notebook https://colab.research.google.com/github/TheophileBlard/french-sentiment-analysis-with-bert/blob/master/colab/french_sentiment_analysis_with_bert.ipynb montre comment tester individuellement des phrases sur le modèle tf-allocine, et devrait fonctionner pour tout type de modèles basé sur TFCamembertForSequenceClassification.
Vous ne l'avez pas précisé, mais je devine que vous avez obtenu votre fichier .h5 avec la méthode save_weights de Keras (la méthode save ne fonctionnant pas pour TFCamembertForSequenceClassification). Dans ce cas, le code suivant devrait fonctionner:
from transformers import CamembertTokenizer, TFCamembertForSequenceClassification import numpy as np
tokenizer = CamembertTokenizer.from_pretrained("camembert-base") model = TFCamembertForSequenceClassification.from_pretrained("jplu/tf-camembert-base") model.load_weights("tf_model.h5")
EXAMPLES = ["J'aime bien le camembert...", "Je n'aime pas le parmesan !"] X = tokenizer(EXAMPLES, truncation=True, padding="max_length", return_tensors="tf") logits = model.predict(dict(X))["logits"] preds = np.argmax(logits, axis=1)
print(preds[0], preds[1]) # outputs: 1, 0
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/TheophileBlard/french-sentiment-analysis-with-bert/issues/8#issuecomment-849128258, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJMMUPEVNEFVHIKQCATJP6TTPVRCZANCNFSM45PQ6V2Q .
-- Abouzid Houda
Bonjour, quel code avez-vous utilisé pour générer le fichier tf_model.h5
?
Si vous manquez de puissance de calcul, vous pouvez entraîner votre modèle sur un subset du jeu de données total (on peut obtenir >95% d'accuracy sur le test set avec seulement 1000 examples).
Sinon, comme c'est documenté dans le README, vous pouvez charger mon modèle pré-entrainé tf-allociné
avec le code suivant:
from transformers import TFAutoModelForSequenceClassification
model = TFAutoModelForSequenceClassification.from_pretrained("tblard/tf-allocine")
Bonjour Théophile,
J'espère que vous allez bien,
J'ai une question svp, concernant le modèle Birt pour l'analyse de sentiment qui est sur la page github: https://github.com/TheophileBlard/french-sentiment-analysis-with-bert J'ai terminé l'entraînement du modèle et j'ai obtenu mon modéle tf_model.h5, que je veux tester son efficacité sur mon pc, par contre je savais pas comment faire, pouvez vous svp m'envoyer le code afin de tester des phrases et des expressions spécifiques à mon étude ? Je vous en remercie d'avance pour votre aide et votre soutien.
Cordialement.