PyTorch - 迁移学习与实战

迁移学习

迁移学习:迁移学习一般是将大规模数据训练的模型向相关任务上迁移,且这个相关任务只有少量的训练数据。因为大规模数据训练的模型提取的底层特征的泛化能力更高,所以一般冻结底层权重;又因为是不同的任务,所以要放开高层权重

  • 迁移学习一般针对的是目标任务训练数据较少的情况
  • 目标训练集的训练样本少,就要注意避免过拟合的问题
  • 前几层一般都是来进行特征的提取和抽像

利用迁移学习进行表面缺陷检测

表面缺陷检测数据集

该数据集类的构建与多任务网络实战中无异。

导入包

import torch
import numpy as np
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
import os
import cv2 as cv

对于label编号的对应与解释

# 夹杂 - In - inclusion
# 划痕 - SC - scratch
# 裂纹 - CR- crackle
# 压入氧化皮 - PS - Press in oxide scale
# 麻点 - RS
# 斑点 - PA
defect_labels = ["In","Sc","Cr","PS","RS","Pa"]

_init_()

class SurfaceDefectDataset(Dataset):
    def __init__(self, root_dir):
        self.transform = transforms.Compose([transforms.ToTensor(),
                                             transforms.Normalize(mean=[0.485, 0.456, 0.406],
                                                          std=[0.229, 0.224, 0.225]),
                                             transforms.Resize((200, 200))
                                            ])
        
        img_files = os.listdir(root_dir)
        self.defect_types = []
        self.images = []

        for file_name in img_files:
            defect_attrs = file_name.split("_")
            d_index = defect_labels.index(defect_attrs[0])
            self.images.append(os.path.join(root_dir, file_name
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值