Aşağıdaki kodu kullanarak özel işlevler ve lambda katmanları içeren bu modeli yüklemeye çalışıyorum:
def load_efficient_pose_model():
custom_objects = {'BilinearWeights': keras_BilinearWeights, 'Swish': Swish(eswish), 'eswish': eswish, 'swish1': swish1}
model = keras.models.load_model('my_location/EfficientPoseII.h5',custom_objects=custom_objects)
Tensorflow 1.13.1 ve Keras kullanırken her şey düzgün çalışıyor. Ancak, Tensorflow 2.7'yi (yerleşik Kera'larla) kullandığımda, aşağıdaki hata gerçekleşir:
Traceback (most recent call last):
....
File "/home/ubuntu/anaconda3/envs/tf2_runtime/lib/python3.7/site-packages/keras/utils/traceback_utils.py", line 67, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/Users/daniegr/Programming/EfficientPose/utils/units.py", line 90, in <lambda>
NameError: name 'K' is not defined
Ayrıca modeli Tensorflow 1.13.1'e yüklemeyi ve modeli ve ağırlıkları ayrı ayrı kaydetmeyi denedim, ancak sorun devam ediyor.
Modeli json'a serileştirirken, bu ilginç satırları alıyorum:
{ "name": "lambda_1_res1", "class_name": "Lambda", "config": { "name": "lambda_1_res1", "trainable": false, "function": [ "4wEAAAAAAAAAAQAAAAEAAABTAAAAcwQAAAB8AFMAKQFOqQApAdoBeHIBAAAAcgEAAAB6Ri9Vc2Vy\ncy9kYW5pZWdyL1Byb2dyYW1taW5nL0VmZmljaWVudFBvc2UvbW9kZWxzL2VmZmljaWVudG5ldHMv\nbW9kZWwucHnaCDxsYW1iZGE+HQEAAPMAAAAA\n", null, null ], "function_type": "lambda", "output_shape": null, "output_shape_type": "raw", "arguments": {} },
Benim tahminim, bir şekilde eski modelin eriştiği kod parçalarını kaydetmesidir K
Tensorflow 2'de bulunmayan arka uç olarak.
So1 ve so2 ile ilgili bu soruları inceledim, ancak bir cevap bulamadım.
Herhangi bir fikir?