Tensorflow keras-如果不存在模型,如何避免在加载h5模型时出错

时间:2019-07-03 17:47:26

标签: python-3.x tensorflow keras

当我尝试像这样获取模型时,我正在编写一个临时训练机器学习模型的应用程序:

model = tf.keras.models.load_model('./models/model.h5')

我得到一个错误:

Unable to open file (unable to open file: name = 'models/model.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)

但是,在某些特殊情况下,该模型可能不存在于磁盘上,此时应创建,训练和保存该模型以供以后使用。检查模型是否存在的正确方法是什么?我可以在python中使用内置功能来检查文件是否存在,但对我来说似乎很明显,load_model上应该有一个参数,该参数返回None,如果文件不存在则抛出错误。

1 个答案:

答案 0 :(得分:1)

检查文件是否存在的Python方法是正确的方法。

这可能是个人原因,但返回def predict(image, model, topk=5): ''' Predict the class (or classes) of an image using a trained deep learning model. Here, image is the path to an image file, but input to process_image should be Image.open(image) ''' img = process_image(Image.open(image)) img = img.unsqueeze(0) output = model.forward(img) probs, labels = torch.topk(output, topk) probs = probs.exp() # Reverse the dict idx_to_class = {val: key for key, val in model.class_to_idx.items()} # Get the correct indices top_classes = [idx_to_class[each] for each in classes] return labels, probs 并不明显。当您打开文件时,该文件必须存在。

您可以:

None

或者您可以

import os.path

if os.path.isfile(fname):
    model=load_model(fname)
else:
    model = createAndTrainModel()

我更喜欢第一个。