21
21
get_small_sequential_mlp ,
22
22
)
23
23
except ImportError :
24
- from keras .testing_utils import get_small_functional_mlp , get_small_sequential_mlp
24
+ try :
25
+ from keras .testing_utils import (
26
+ get_small_functional_mlp ,
27
+ get_small_sequential_mlp ,
28
+ )
29
+ except ImportError :
30
+ from keras .src .testing_infra .test_utils import (
31
+ get_small_functional_mlp ,
32
+ get_small_sequential_mlp ,
33
+ )
25
34
26
35
# Suppress all Tensorflow messages
27
36
os .environ ["TF_CPP_MIN_LOG_LEVEL" ] = "3"
@@ -166,8 +175,20 @@ def test_save_model_to_tiledb_array_weights(
166
175
data = np .random .rand (100 , 3 )
167
176
168
177
if optimizer :
169
- model_opt_weights = batch_get_value (model .optimizer .weights )
170
- loaded_opt_weights = batch_get_value (loaded_model .optimizer .weights )
178
+ if hasattr (model .optimizer , "weights" ):
179
+ model_opt_weights = tf .keras .backend .batch_get_value (
180
+ model .optimizer .weights
181
+ )
182
+ else :
183
+ model_opt_weights = [var .numpy () for var in model .optimizer .variables ()]
184
+ if hasattr (loaded_model .optimizer , "weights" ):
185
+ loaded_opt_weights = tf .keras .backend .batch_get_value (
186
+ loaded_model .optimizer .weights
187
+ )
188
+ else :
189
+ loaded_opt_weights = [
190
+ var .numpy () for var in loaded_model .optimizer .variables ()
191
+ ]
171
192
172
193
# Assert optimizer weights are equal
173
194
for weight_model , weight_loaded_model in zip (
@@ -209,8 +230,20 @@ def test_save_load_with_dense_features(self, tmpdir, loss, optimizer, metrics):
209
230
tiledb_model_obj .save (include_optimizer = True )
210
231
loaded_model = tiledb_model_obj .load (compile_model = True )
211
232
212
- model_opt_weights = batch_get_value (model .optimizer .weights )
213
- loaded_opt_weights = batch_get_value (loaded_model .optimizer .weights )
233
+ if hasattr (model .optimizer , "weights" ):
234
+ model_opt_weights = tf .keras .backend .batch_get_value (
235
+ model .optimizer .weights
236
+ )
237
+ else :
238
+ model_opt_weights = [var .numpy () for var in model .optimizer .variables ()]
239
+ if hasattr (loaded_model .optimizer , "weights" ):
240
+ loaded_opt_weights = tf .keras .backend .batch_get_value (
241
+ loaded_model .optimizer .weights
242
+ )
243
+ else :
244
+ loaded_opt_weights = [
245
+ var .numpy () for var in loaded_model .optimizer .variables ()
246
+ ]
214
247
215
248
# Assert optimizer weights are equal
216
249
for weight_model , weight_loaded_model in zip (
@@ -260,8 +293,20 @@ def test_save_load_with_sequence_features(self, tmpdir, loss, optimizer, metrics
260
293
tiledb_model_obj .save (include_optimizer = True )
261
294
loaded_model = tiledb_model_obj .load (compile_model = True )
262
295
263
- model_opt_weights = batch_get_value (model .optimizer .weights )
264
- loaded_opt_weights = batch_get_value (loaded_model .optimizer .weights )
296
+ if hasattr (model .optimizer , "weights" ):
297
+ model_opt_weights = tf .keras .backend .batch_get_value (
298
+ model .optimizer .weights
299
+ )
300
+ else :
301
+ model_opt_weights = [var .numpy () for var in model .optimizer .variables ()]
302
+ if hasattr (loaded_model .optimizer , "weights" ):
303
+ loaded_opt_weights = tf .keras .backend .batch_get_value (
304
+ loaded_model .optimizer .weights
305
+ )
306
+ else :
307
+ loaded_opt_weights = [
308
+ var .numpy () for var in loaded_model .optimizer .variables ()
309
+ ]
265
310
266
311
# Assert optimizer weights are equal
267
312
for weight_model , weight_loaded_model in zip (
@@ -277,7 +322,7 @@ def test_save_load_with_sequence_features(self, tmpdir, loss, optimizer, metrics
277
322
indices_a [:, 0 ] = np .arange (10 )
278
323
inputs_a = tf .SparseTensor (indices_a , values_a , (batch_size , timesteps , 1 ))
279
324
280
- values_b = np .zeros (10 , dtype = np . str )
325
+ values_b = np .zeros (10 , dtype = str )
281
326
indices_b = np .zeros ((10 , 3 ), dtype = np .int64 )
282
327
indices_b [:, 0 ] = np .arange (10 )
283
328
inputs_b = tf .SparseTensor (indices_b , values_b , (batch_size , timesteps , 1 ))
@@ -310,7 +355,7 @@ def test_functional_model_save_load_with_custom_loss_and_metric(self, tmpdir):
310
355
tiledb_uri = os .path .join (tmpdir , "model_array" )
311
356
tiledb_model_obj = TensorflowKerasTileDBModel (uri = tiledb_uri , model = model )
312
357
tiledb_model_obj .save (include_optimizer = True )
313
- loaded_model = tiledb_model_obj .load (compile_model = True )
358
+ loaded_model = tiledb_model_obj .load (compile_model = True , safe_mode = False )
314
359
315
360
# Assert all evaluation results are the same.
316
361
assert all (
0 commit comments