iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
AI & Data

從Keras框架與數學概念了解機器學習系列 第 22

[從Keras框架與數學概念了解機器學習] - 22. Model Container框架介面

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230922/20144614ItYtCgoj5X.jpg

當處理的目標是多模型組成,我們可以訓練各種模型至不同的Server 以增加執行與管理的效能:
https://ithelp.ithome.com.tw/upload/images/20230922/20144614RtWblU8ab9.jpg

如果這些訓練好的模型,未來要串接起來,做生成式資料產出,可能會做複雜 hierarchical 的串接:
https://ithelp.ithome.com.tw/upload/images/20230922/20144614EcyQK7MVf6.jpg

實行串接時,要如何保持程式的重複使用與簡潔程式? python 和 javascript很像,優缺點的地方其實都很接近,而在做 javascript 時如果要保持程式的簡潔與好維護,pattern、套件式的建構是很重要的。而好的 javascript 架構師幾乎都會建議,做成 API 是不錯的方向。python 有更好的地方是,它有提供直接宣告類別物件可以使用。如:

GetModel('identity').LoadWeight(config).Predict()

最終以API的方式來操作是最好溝通與維護管理的方式,甚至批次執行動作。

所以我們可以先做規劃出一種模型的容器來接收、讀取權重、增刪改、串接之類的框架。甚至可以重新批次更新模型,對未來是相當有高便利性與彈性發展的影響。

容器 Container 的作用不外乎可以是註冊、cache、批次或其他規則限制執行 ,這邊提供一個概略的介面繼承實作參考,未來可以擴充應用:

class ModelContainer()
def __init__(self):
    self.ModelList = {} #registed model cache
    self.ModelPrdictData = {} #model predict data collection
    self.ConcateResult = None #concate model cache
    sef.GetModelInstance = None
    return self
    
def ValidateModel(self):
    """ model validate ,like model.compiler、model.build…etc """
    #raise NotImplementedError("not implement");
    return self
    
def InsertModel(self, ModelId):
    """ model add to container """
    #raise NotImplementedError("not implement");
    return self
    
def DeleteModel(self, ModelId):
    """ model delete from container """
    #raise NotImplementedError("not implement");
    return self
    
def GetModel(self, ModelId):
    """ fetch model """
    #raise NotImplementedError("not implement");
    return self
    
def SetModel(self, ModelId, modelObject):
    """ chagne model content and reset status """
    #raise NotImplementedError("not implement");
    return self
    
def ConcateModelPredict(self, ModelIdList = []):
    """ concate selected model predict result """
    #raise NotImplementedError("not implement");
    return self
    
def SingleModelBuild(self, ModelId):
    """Single Model Build """
    #raise NotImplementedError("not implement");
    return self
    
def MultiModelBuild(self, ModelIdList = []):
    """batch selected Model Build """
    #raise NotImplementedError("not implement");
    return self
    
def AllModelBuild(self):
    """batch all Model Build"""
    #raise NotImplementedError("not implement");
    return self
    
def SingleModelCompiler(self, ModelId, config = None):
    """Single selected Model Compiler"""
    #raise NotImplementedError("not implement");
    return self
    
def MultiModelCompiler(self, Config={} ):
    """batch selected Model Compiler """
    #raise NotImplementedError("not implement");
    return self
    
def AllModelCompiler(self , Config={}):
    """batch all Model Compiler """
    #raise NotImplementedError("not implement");
    return self
    
def SingleModelFit(self, ModelId, config = None):
    """single selected Model fit train """
    #raise NotImplementedError("not implement");
    return self
    
def MultiModelFit(self, Config={} ):
    """batch selected Model fit train """
    #raise NotImplementedError("not implement");
    return self
    
def AllModelFit(self , Config={}):
    """all Model fit train """
    #raise NotImplementedError("not implement");
    return self
    
def SingleModelPredict(self, ModelId, config = None):
    """single selected Model Predict """
    #raise NotImplementedError("not implement");
    return self
    
def MultiModelPredict(self, Config={} ):
    """batch selected Model Predict """
    #raise NotImplementedError("not implement");
    return self
    
def AllModelPredict(self , Config={}):
    """batch all Model Predict """
    #raise NotImplementedError("not implement");
    return self
    

上一篇
[從Keras框架與數學概念了解機器學習] - 21. 實例應用-集團銷售資料分析
下一篇
[從Keras框架與數學概念了解機器學習] - 23.呼應keras框架的深度學習
系列文
從Keras框架與數學概念了解機器學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言