Eski Keras modelini Tensorflow 2.0'da özel lambda katmanlarıyla nasıl yükleyebilirim?

0

Soru

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?

keras tensorflow
2021-11-23 09:56:35
2
0

Kayıtlı modelinizdeki iç değişkenlere erişememekle sorununuz yoksa, alt düzey API'yi kullanabilirsiniztf.saved_model.load() modelinizi yüklemek için. Bu yalnızca grafiği ve ağırlıkları yükler, böylece model kodunu yine de çalıştırabilirsiniz, ancak kullanımı uygun olmayacaktır.

2021-11-28 19:06:35

Bunu denedim ve sorunumu çözmedi, ama bana yardım etmeye çalıştığınız için teşekkürler.
Andrey

En iyi cevabı

0

Efficient-pose kütüphanesinin yazarıyla iletişime geçtikten sonra sorun, Tensorflow2. 7'nin şu anda desteklenmemesiydi. Tensorflow 2.5 ile çalışır

2021-12-14 08:29:42

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................