其他
揭秘“移动云杯”行业赛道——工业行业应用子赛道
import...
class Model(): # 主类
def __init__(self,p_path):
self.__model = None
# 使用按照压缩包路径下的相对路径,
# 如,解压后的文件夹名称为model,模型存放于model下的pysrc/model.pkl路径,则路径为'model/pysrc/model.pkl'
try:
# -------------------------如下位置可修改(加载模型)------------------------
self.load_model(p_path+'/model/pysrc/model.pkl')
# ------------------------- END ------------------------
except Exception as e:
...
return None
def predict(self,path_to_img:str): # 入参:单个图片的路径,如’aaa.jpg’
# Read in image
try:
# -------------------------如下位置可修改(读取图片)------------------------
x = Image.open(path_to_img)
# ------------------------- END ------------------------
except Exception as e:
...
# predict & score
try:
# -------------------------如下位置可修改(推理过程)------------------------
prediction = self.__model(x)
# ------------------------- END ------------------------
except Exception as e:
...
return prediction # 返回结果:整数,与label对应关系为:(jssx金属碎屑(1)、OK合格(2)、lj边缘碎屑(3)、ong其他NG(4)、tfhd碳粉黑点(5))
def load_model(self,path_to_model:str):
# Load model
# -------------------------如下位置可修改(加载模型)------------------------
with open(path_to_model,'rb') as fp:
paras = pickle.load(fp)
self.__model = lambda x : random.randint(paras[0],paras[1])
# ------------------------- END ------------------------
return 0
调用Predictor类的伪码如下:
if __name__ == '__main__':
M = Model('./') # 初始化模型
print(M.predict('2023_zyy_35.jpg')) # 调用推理过程
# 输出:1-5之间的整数