当我尝试像这样获取模型时,我正在编写一个临时训练机器学习模型的应用程序:
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,如果文件不存在则抛出错误。
答案 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()
我更喜欢第一个。