从json加载模型,从h5加载权重,
使用
from keras.models import model_from_json
...
model.load_weights(modelweights+'.h5')
会导致错误,因为找不到文件。loading_weights()显然将所有大写字母更改为小写字母。有没有把戏或仅仅是个bug?我不希望更改很多文件名。
感谢您的帮助。
编辑: 像这样寻找模型
def ModelLaden(destination,modelname,modelweights):
json_file = open(destination+modelname+'.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
loaded_model.load_weights(modelweights+'.h5')
return loaded_model
Bimodel=ModelLaden(destination,modelname,modelweights)
因此文件名是:
modelweights='18_AS_QS_MMCcECG_ResWGRUmodel_weigths'
目的地是数据的Windows路径,例如
destination=('C:/Users/3101253/Documents/PhD/Article_(MMC)/Results/')
错误消息是:
OSError:无法打开文件(无法打开文件:name = '18_as_qs_mmccecg_reswgrumodel_weigths.h5',errno = 2,错误消息= '没有这样的文件或目录',标志= 0,o_flags = 0)
如果比较文件名,您会发现问题
18_as_qs_mmccecg_reswgrumodel_weigths#已更改 18_AS_QS_MMCcECG_ResWGRUmodel_weigths#原始
-------------------------------------------- ---------------------
已解决
我忘了像给json文件那样提供h5存储文件的完整路径。代替loaded_model.load_weights(modelweights+'.h5')
正确的将是loaded_model.load_weights(destination+modelweights+'.h5')
愚蠢的错误。感谢您的所有帮助。
答案 0 :(得分:1)
您正在使用Windows,因此大小写无关紧要。
演示:
In [39]: fn = 'd:/temp/AAAbbbCCCddd.txt'
In [40]: with open(fn, 'w') as f:
...: f.write('Test')
...:
...:
In [41]: with open(fn.lower()) as f:
...: # ^^^^^^^^ <---- NOTE!
...: print(f.read())
...:
...:
Test
尝试指定文件的完整路径