Skip to content

Commit b9f727c

Browse files
authored
Create keras_patch.sh
1 parent 00c3e4d commit b9f727c

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

patches/keras_patch.sh

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/bin/bash
2+
3+
# The following "sed" are to patch the current version of tf-df with
4+
# a fix for keras 3. In essence, replaces the use of package name "tf.keras" with
5+
# "tf_keras"
6+
7+
sed -i "/import tensorflow_decision_forests as tfdf/a import tf_keras" /opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/__init__.py && \
8+
sed -i -e "/import tensorflow as tf/a import tf_keras" \
9+
-e "/from yggdrasil_decision_forests.utils.distribute.implementations.grpc/a from tensorflow_decision_forests.keras import keras_internal" \
10+
-e '/try:/{:a;N;/backend = tf.keras.backend/!ba;d}'\
11+
/opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/keras/core.py && \
12+
sed -i -e "s/from typing import Optional, List, Dict, Any, Union, NamedTuple/from typing import Any, Dict, List, NamedTuple, Optional, Union/g" \
13+
-e "/import tensorflow as tf/a from tensorflow_decision_forests.keras import keras_internal" \
14+
-e "/import tensorflow as tf/a import tf_keras" \
15+
-e '/layers = tf.keras.layers/{:a;N;/backend = tf.keras.backend/!ba;d}' \
16+
/opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/keras/core_inference.py && \
17+
find /opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests -type f -exec sed -i \
18+
-e "s/get_data_handler/keras_internal.get_data_handler/g" \
19+
-e 's/"models.Functional"/keras_internal.Functional/g' \
20+
-e "s/tf.keras.utils.unpack_x_y_sample_weight/keras_internal.unpack_x_y_sample_weight/g" \
21+
-e "s/tf.keras.utils.experimental/keras_internal/g" \
22+
{} \; && \
23+
sed -i -e "/import tensorflow as tf/a import tf_keras" \
24+
-e "/from tensorflow_decision_forests.keras import core/a from tensorflow_decision_forests.keras import keras_internal" \
25+
-e '/layers = tf.keras.layers/{:a;N;/callbacks = tf.keras.callbacks/!ba;d}' \
26+
/opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/keras/keras_test.py && \
27+
find /opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/keras -type f -exec sed -i \
28+
-e "s/ layers.Input/ tf_keras.layers.Input/g" \
29+
-e "s/layers.minimum/tf_keras.layers.minimum/g" \
30+
-e "s/layers.Concatenate/tf_keras.layers.Concatenate/g" \
31+
-e "s/layers.Dense/tf_keras.layers.Dense/g" \
32+
-e "s/layers.experimental.preprocessing./tf_keras.layers./g" \
33+
-e "s/layers.DenseFeatures/keras_internal.layers.DenseFeatures/g" \
34+
-e "s/models.Model/tf_keras.models.Model/g" {} \; && \
35+
sed -i "s/ models.load_model/ tf_keras.models.load_model/g" /opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/keras/keras_test.py && \
36+
sed -i "/import tensorflow as tf/a import tf_keras" /opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/keras/test_runner.py && \
37+
sed -i "/import tensorflow as tf/a import tf_keras" /opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/keras/wrappers.py && \
38+
sed -i -e "/import tensorflow as tf/a import tf_keras" \
39+
-e "s/optimizer=optimizers.Adam()/optimizer=tf_keras.optimizers.Adam()/g" \
40+
/opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests/keras/wrappers_pre_generated.py && \
41+
find /opt/conda/lib/python3.10/site-packages/tensorflow_decision_forests -type f -exec sed -i "s/tf.keras./tf_keras./g" {} \;

0 commit comments

Comments
 (0)