臨
This commit is contained in:
		@@ -40,7 +40,7 @@ func (model *Model) Train() (err error) {
 | 
			
		||||
 | 
			
		||||
	// 獲取一臺空閒的訓練機
 | 
			
		||||
	var server Server
 | 
			
		||||
	if err = configs.ORMDB().Where("status = ?", "閒置").First(&server).Error; err != nil {
 | 
			
		||||
	if err = configs.ORMDB().Where("status = ?", "正常").First(&server).Error; err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
		// TOOD: 沒有空閒的訓練機, 訓練排隊, 等待訓練機空閒
 | 
			
		||||
		// TODO: 如果訓練機數量低於10臺, 則創建新的訓練機
 | 
			
		||||
@@ -73,6 +73,14 @@ func (model *Model) Train() (err error) {
 | 
			
		||||
	for index, url := range dataset.Images {
 | 
			
		||||
		fmt.Println("下載數據到本地:", index, url)
 | 
			
		||||
 | 
			
		||||
		// 檢查文件是否已經存在
 | 
			
		||||
		filename := fmt.Sprintf("%x", md5.Sum([]byte(url)))
 | 
			
		||||
		filePath := filepath.Join(dirPath, filename)
 | 
			
		||||
		if _, err := os.Stat(filePath); err == nil {
 | 
			
		||||
			fmt.Println("文件已經存在:", filePath)
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// 下載到臨時目錄
 | 
			
		||||
		resp, err := http.Get(url)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
@@ -87,14 +95,7 @@ func (model *Model) Train() (err error) {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// 保存文件到本地目錄下(自動創建目錄,文件名為url的md5值)
 | 
			
		||||
		filename := fmt.Sprintf("%x", md5.Sum([]byte(url)))
 | 
			
		||||
		filePath := filepath.Join(dirPath, filename)
 | 
			
		||||
		if err := os.MkdirAll(dirPath, 0755); err != nil {
 | 
			
		||||
			fmt.Println(err)
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// 保存文件到本地目錄下
 | 
			
		||||
		if err := ioutil.WriteFile(filePath, data, 0644); err != nil {
 | 
			
		||||
			fmt.Println(err)
 | 
			
		||||
			continue
 | 
			
		||||
@@ -106,16 +107,13 @@ func (model *Model) Train() (err error) {
 | 
			
		||||
 | 
			
		||||
	// 檢查目錄下是否有文件, 如果沒有文件則返回錯誤
 | 
			
		||||
	files, err := ioutil.ReadDir(dirPath)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(files) == 0 {
 | 
			
		||||
	if err != nil || len(files) == 0 {
 | 
			
		||||
		fmt.Println("目錄下沒有文件")
 | 
			
		||||
		return fmt.Errorf("目錄下沒有文件")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 將數據上傳到訓練機
 | 
			
		||||
 | 
			
		||||
	// 按類型執行訓練任務
 | 
			
		||||
	if model.Type == "dreambooth" {
 | 
			
		||||
		// 創建數據庫模型
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user