最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

pytorch深度學習-01: CNN for dogs vs cats

2023-07-05 18:49 作者:Magician-Artist  | 我要投稿


  • Using CNN for dogs vs cats

    • 數(shù)據預處理

      • 數(shù)據集:catsvsdogs

      • 正則化 mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] 目的是對每個通道的像素點去除亮度的影響

      • 數(shù)據集加載 torch.utils.data.DataLoader(dsets['train'], batch_size=64, shuffle=True, num_workers=6)?shuffle表示打亂,使每個epoch遍歷的數(shù)據順序都不一樣; num_workers表示加載數(shù)據的通道數(shù)

    • VGG模型與微調

      • 加載預訓練模型 model_vgg = models.vgg16(pretrained=True)?

      • 數(shù)據讀取和訓練?

        • 1. 樣本、標簽、模型 .to(device)

        • 2. 模型訓練 outputs_try = model_vgg(inputs_try)

      • 修改最后一層,微調以適配二分類任務

        • 凍結前面層的權重 param.requires_grad = False?

        • 修改最后一層輸出size?從1000變?yōu)? model_vgg.classifier._modules['6'] = nn.Linear(4096, 2)?

        • 增加一層LogSoftmax計算輸出的概率值 torch.nn.LogSoftmax(dim = 1)

        • 重新應用模型 model = model.to(device)

      • 訓練修改后的整個模型

        • 定義損失函數(shù) criterion NLLLOSS() 負對數(shù)似然函數(shù)損失: -sum(y_ture * log(y_pred))

        • 定義優(yōu)化器?optimizer torch.optim.SGD() 核心思想是根據梯度來更新神經網絡的參數(shù)

        • 模型訓練

          • 0. 清零梯度optimizer.zero_grad()? 以便進行新一輪的梯度計算

          • 1.前向傳播 outputs = model(inputs)?

          • ?2.計算損失 loss = criterion(outputs,classes) (一個批次的)?

          • 3.反向傳播,計算梯度 loss.backward()??

          • 4.參數(shù)更新 optimizer.step()??

          • 預測概率&類別 _,preds = torch.max(outputs.data,1)

          • 輸出指標: epoch_loss = 總損失/batch_size; epoch_acc = 預測值正確/batch_size

        • 模型測試

          • 輸入樣本和類別依然需要?.to(device)

          • 預測值需要轉化成cpu形式 .to('cpu').numpy()

    • 預計算加快學習速度

      • 原理:訓練數(shù)據不再是原始圖像,而是經過模型特征提取器之后的特征結果,從而大大加快訓練速度。由于只修改了最后一層,所以前面層的中間結果都是相同的,可以保存下來以避免重復計算。(即把特征提取的結果保存下來)然后再用這些特征來進行訓練。

      • x = model_vgg.features(inputs) 保存特征

      • 重新加載訓練數(shù)據和標簽,重新配置DataLoder,重新訓練(每個epoch速度很快)


pytorch深度學習-01: CNN for dogs vs cats的評論 (共 條)

分享到微博請遵守國家法律
广汉市| 巴彦淖尔市| 庆安县| 万盛区| 延安市| 体育| 瓦房店市| 武川县| 弋阳县| 合作市| 阿克| 宁强县| 临漳县| 富民县| 西吉县| 盐池县| 青铜峡市| 阿克陶县| 萨迦县| 洛阳市| 临武县| 乐亭县| 辉南县| 山东| 崇礼县| 东辽县| 石河子市| 隆化县| 石门县| 罗甸县| 高台县| 青州市| 高要市| 美姑县| 通许县| 汝州市| 鄂托克旗| 宜丰县| 双柏县| 哈巴河县| 田阳县|