臨
This commit is contained in:
		@@ -40,7 +40,7 @@ func (model *Model) Train() (err error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// 獲取一臺空閒的訓練機
 | 
						// 獲取一臺空閒的訓練機
 | 
				
			||||||
	var server Server
 | 
						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)
 | 
							fmt.Println(err)
 | 
				
			||||||
		// TOOD: 沒有空閒的訓練機, 訓練排隊, 等待訓練機空閒
 | 
							// TOOD: 沒有空閒的訓練機, 訓練排隊, 等待訓練機空閒
 | 
				
			||||||
		// TODO: 如果訓練機數量低於10臺, 則創建新的訓練機
 | 
							// TODO: 如果訓練機數量低於10臺, 則創建新的訓練機
 | 
				
			||||||
@@ -73,6 +73,14 @@ func (model *Model) Train() (err error) {
 | 
				
			|||||||
	for index, url := range dataset.Images {
 | 
						for index, url := range dataset.Images {
 | 
				
			||||||
		fmt.Println("下載數據到本地:", index, url)
 | 
							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)
 | 
							resp, err := http.Get(url)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
@@ -87,14 +95,7 @@ func (model *Model) Train() (err error) {
 | 
				
			|||||||
			continue
 | 
								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 {
 | 
							if err := ioutil.WriteFile(filePath, data, 0644); err != nil {
 | 
				
			||||||
			fmt.Println(err)
 | 
								fmt.Println(err)
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
@@ -106,16 +107,13 @@ func (model *Model) Train() (err error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// 檢查目錄下是否有文件, 如果沒有文件則返回錯誤
 | 
						// 檢查目錄下是否有文件, 如果沒有文件則返回錯誤
 | 
				
			||||||
	files, err := ioutil.ReadDir(dirPath)
 | 
						files, err := ioutil.ReadDir(dirPath)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil || len(files) == 0 {
 | 
				
			||||||
		fmt.Println(err)
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if len(files) == 0 {
 | 
					 | 
				
			||||||
		fmt.Println("目錄下沒有文件")
 | 
							fmt.Println("目錄下沒有文件")
 | 
				
			||||||
		return fmt.Errorf("目錄下沒有文件")
 | 
							return fmt.Errorf("目錄下沒有文件")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// 將數據上傳到訓練機
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 按類型執行訓練任務
 | 
						// 按類型執行訓練任務
 | 
				
			||||||
	if model.Type == "dreambooth" {
 | 
						if model.Type == "dreambooth" {
 | 
				
			||||||
		// 創建數據庫模型
 | 
							// 創建數據庫模型
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user