Add tf_keras imports to prepare for Keras 3 (#28588)
* Port core files + ESM (because ESM code is odd) * Search-replace in modelling code * Fix up transfo_xl as well * Fix other core files + tests (still need to add correct import to tests) * Fix cookiecutter * make fixup, fix imports in some more core files * Auto-add imports to tests * Cleanup, add imports to sagemaker tests * Use correct exception for importing tf_keras * Fixes in modeling_tf_utils * make fixup * Correct version parsing code * Ensure the pipeline tests correctly revert to float32 after each test * Ensure the pipeline tests correctly revert to float32 after each test * More tf.keras -> keras * Add dtype cast * Better imports of tf_keras * Add a cast for tf.assign, just in case * Fix callback imports
This commit is contained in:
@@ -30,6 +30,7 @@ from typing import Optional
|
||||
import evaluate
|
||||
import tensorflow as tf
|
||||
from datasets import load_dataset
|
||||
from packaging.version import parse
|
||||
from utils_qa import postprocess_qa_predictions
|
||||
|
||||
import transformers
|
||||
@@ -48,6 +49,19 @@ from transformers import (
|
||||
from transformers.utils import CONFIG_NAME, TF2_WEIGHTS_NAME, check_min_version, send_example_telemetry
|
||||
|
||||
|
||||
try:
|
||||
import tf_keras as keras
|
||||
except (ModuleNotFoundError, ImportError):
|
||||
import keras
|
||||
|
||||
if parse(keras.__version__).major > 2:
|
||||
raise ValueError(
|
||||
"Your currently installed version of Keras is Keras 3, but this is not yet supported in "
|
||||
"Transformers. Please install the backwards-compatible tf-keras package with "
|
||||
"`pip install tf-keras`."
|
||||
)
|
||||
|
||||
|
||||
# Will error if the minimal version of Transformers is not installed. Remove at your own risks.
|
||||
check_min_version("4.38.0.dev0")
|
||||
|
||||
@@ -233,7 +247,7 @@ class DataTrainingArguments:
|
||||
|
||||
|
||||
# region Helper classes
|
||||
class SavePretrainedCallback(tf.keras.callbacks.Callback):
|
||||
class SavePretrainedCallback(keras.callbacks.Callback):
|
||||
# Hugging Face models have a save_pretrained() method that saves both the weights and the necessary
|
||||
# metadata to allow them to be loaded as a pretrained model in future. This is a simple Keras callback
|
||||
# that saves the model with this method after each epoch.
|
||||
|
||||
Reference in New Issue
Block a user