I am trying to run this code LINK code on may laptop [LINK CODE][1] , I changed these package:
- from keras.engine.topology import Layer
- from tensorflow.keras.models import load_model
to these package to work on my machine:
- from tensorflow.python.keras.layers import Layer
- from tensorflow.python.keras.models import load_model
and whenever I run a program, this part could not be executed:
#model already saved in file
from tensorflow.python.keras.models import load_model
newmodel1= load_model("Zoghbio.h5",
custom_objects={'RBFLayer': RBFLayer})
print("OK")
And I get on this error: How to fix it please?
Traceback (most recent call last):
File "c:\Users\pc\Desktop\Ali\RBFNetworks\RBF_neural_network_python-master\RBF_neuralNetwork .py", line 214, in <module>
newmodel1= load_model("Zoghbio.h5",
File "C:\Users\pc\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\saving\save.py", line 206, in load_model
return saved_model_load.load(filepath, compile, options)
File "C:\Users\pc\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\saving\saved_model\load.py", line 122, in load
meta_graph_def = loader_impl.parse_saved_model(path).meta_graphs[0]
File "C:\Users\pc\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\saved_model\loader_impl.py", line 115, in parse_saved_model
raise IOError(
OSError: SavedModel file does not exist at: Zoghbio.h5\{saved_model.pbtxt|saved_model.pb}
UPDATED error:
Save model to file C:/Users/pc/Desktop/RBFNetworks/RBF_neural_network_python-master/my_file.h5 ... Traceback (most recent call last):
File "c:\Users\pc\Desktop\RBFNetworks\RBF_neural_network_python-master\RBF_neuralNetwork .py", line 214, in <module>
model.save(z_model)
File "C:\Users\pc\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\utils\traceback_utils.py", line 67, in error_handler
raise e.with_traceback(filtered_tb) from None
File "C:\Users\pc\AppData\Local\Programs\Python\Python38\lib\site-packages\keras\engine\base_layer.py", line 745, in get_config
raise NotImplementedError(textwrap.dedent(f"""
NotImplementedError:
Layer ModuleWrapper has arguments ['self', 'module', 'method_name']
in `__init__` and therefore must override `get_config()`.
Example:
class CustomLayer(keras.layers.Layer):
def __init__(self, arg1, arg2):
super().__init__()
self.arg1 = arg1
self.arg2 = arg2
def get_config(self):
config = super().get_config()
config.update({
"arg1": self.arg1,
"arg2": self.arg2,
})
return config
CodePudding user response:
In the code you linked in another question you have:
# # saving to and loading from file
# z_model = f"Z_model.h5"
# print(f"Save model to file {z_model} ... ", end="")
# model.save(z_model)
# print("OK")
#model already saved in file
from tensorflow.keras.models import load_model
newmodel1= load_model("Zoghbio.h5", custom_objects={'RBFLayer': RBFLayer})
print("OK")
It is giving you an error because you are trying to load a model that is never saved before. Simply uncomment the portion above:
# saving to and loading from file
z_model = "my_file.h5"
print("Save model to file {} ... ".format(z_model), end="")
model.save(z_model)
print("OK")
# model already saved in file
from tensorflow.keras.models import load_model
newmodel1= load_model("my_file.h5", custom_objects={'RBFLayer': RBFLayer})
print("OK")
Of course it doesn't makes much sense to train, save and re-load the model right away. I think the author wanted to show how the model could be trained and saved, and then re-loaded avoiding training everything anew. You can load and use the saved model without training each time this way.