Keras model.load_weights()无法识别大写字母

时间:2018-07-23 18:09:21

标签: model keras

从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') 愚蠢的错误。感谢您的所有帮助。

1 个答案:

答案 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

尝试指定文件的完整路径