通過下面的代碼,我想得到訓練的狀態,只要它開始了,什么時候結束了。
app = FastAPI()
@app.post("/train")
async def train_on_background():
background_tasks.add_task(train, input_data, output_data)
def train(input_data, output_data):
dataset = prepare_dataset(input_data, output_data)
model = Trainer(dataset)
model.auto_train()
filename = "Model"
filename = filename ".pkl"
dump(model, open(filename, 'wb'))
該train()函式應該通過幾個步驟來訓練模型。train_on_background()應該在后臺運行火車功能。
我想添加一個單獨的命令來檢查培訓狀態。該命令應在訓練開始時回應啟動(train()呼叫函式),并在train()函式結束時完成。
uj5u.com熱心網友回復:
您的問題的解決方案是制作一個包含以下狀態的臨時檔案train():
@app.get(“/check”)
def check():
filename = “Model”
filename = filename “.pkl”
file_exists = os.path.exists(filename)
if file_exists:
return {“message”: “Model Already Exists”}
elif (os.path.exists(f”temp_monitor.txt”)):
return {“message”: “Training in progress...“}
def monitor_file(text):
if text is None:
os.remove(f”temp_monitor.txt”)
else:
with open(f’temp_monitor.txt’, ‘w’) as f:
f.write(text)
這兩個函式用于創建一個包含當前訓練狀態的臨時檔案。該check命令查找模型(如果存在)以完成回應。
如果模型不存在,它會查找臨時檔案,并回應training in progress以指示訓練已開始。
def train(input_data, output_data):4
dataset = prepare_dataset(input_data, output_data)
monitor_file(“started”)
model = Trainer(dataset)
model.auto_train()
修改您的train函式以保存當前狀態。
請注意,您可以使用此方法保存所需的任何狀態并使用檢查命令進行檢查。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/508269.html
上一篇:向支持向量分類器訓練添加更多資料
下一篇:如何n次訓練K最近鄰(Knn)?
