I have trained a model just fine and saved it into a .hdf5
file.
But when trying to load it:
dir_raiz = 'C:/Ronaldo/Scripts/Vazões/Vazões/TOCANTINS/TUCURUI/MLP/'
posto = 'TUCURUI'
modelo = 'Mod01'
model = load_model(dir_raiz + modelo + '_MLP_dM1_' + posto + '.hdf5')
I get the error:
Traceback (most recent call last):
File C:\ProgramData\anaconda3\lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
exec(code, globals, locals)
File c:\ronaldo\scripts\vazões\vazões\tocantins\tucurui\mlp\dm1\carrega_elia_mod01_dm1.py:61
model = load_model(dir_raiz + modelo + 'MLP_dM1' + posto + '.hdf5')
File ~\AppData\Roaming\Python\Python310\site-packages\keras\saving\saving_api.py:212 in load_model
return legacy_sm_saving_lib.load_model(
File ~\AppData\Roaming\Python\Python310\site-packages\keras\utils\traceback_utils.py:70 in error_handler
raise e.with_traceback(filtered_tb) from None
File ~\AppData\Roaming\Python\Python310\site-packages\tensorflow\python\lib\io\file_io.py:703 in is_directory_v2
return _pywrap_file_io.IsDirectory(compat.path_to_bytes(path))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf5 in position 26: invalid start byte
Any ideas in how to fix it?
I used the same script in 7 different computers, and only in 2 of them this is happening (all of them creates and model, and 2 of them fail to load it).
@MURILO_ARAUJO_SOUZA,
Welcome to the Tensorflow Forum!
The file path contains non-ascii characters that cannot be decoded using the utf-8
code.
Can you try to fix this issue is to use the os
module to join the directory and file name instead of concatenating them with the +
operator?
import os
from tensorflow.keras.models import load_model
dir_raiz = 'C:/Ronaldo/Scripts/Vazões/Vazões/TOCANTINS/TUCURUI/MLP/'
posto = 'TUCURUI'
modelo = 'Mod01'
filename = modelo + '_MLP_dM1_' + posto + '.hdf5'
filepath = os.path.join(dir_raiz, filename)
model = load_model(filepath)
Thank you!
Hello @chunduriv
That didn’t work out. The same error happened. To save the model, i have been using ModelCheckpoint
and it worked fine, even with the non-ascii characters in the file path.
cp = ModelCheckpoint(filepath = dir_raiz + modelo + '_MLP_dM1_' + posto + '.hdf5',
monitor = 'val_loss',
verbose=1,
save_best_only=True,
mode=min)
And like i said, i can load the model in some computers and in others i can’t. All of them have non-ascii characters in the file path.
@MURILO_ARAUJO_SOUZA,
When reading the file using load_model
, can you specify the encoding explicitly by adding the encoding
parameter as shown below
model = load_model(dir_raiz + modelo + 'MLP_dM1' + posto + '.hdf5', encoding='latin1')
i can load the model in some computers and in others i can’t.
if you are able to load the model successfully on some computers but not on others, it’s possible that there may be differences in the environment or dependencies that are causing the issue.
Thank you!
Hello again @chunduriv
I am getting the error:
TypeError: load_model() got an unexpected keyword argument 'encoding'.
What could be the reason that i can train and save the model in a computer, but can’t load at the same computer? It is the same environment and dependecies.
did you get it? I am fcing the same problem
Sorry, at this point i don’t remember exactly. But i guess i ended giving up and retrained my model.
I have solved it. I changed the path of the folder. Maybe your path has special characters.
For example:
C:\Users\HP\Documents\AI\Weekly Report Slide\Group 2\CNN-Demo-main\CNN\CNN
=> C:\Users\HP\Documents\AI\Weekly_Report_Slide\Group 2\CNN-Demo-main\CNN\CNN