【问题标题】:Use skimage feature extractors in PyTorch Transforms在 PyTorch 变换中使用 skimage 特征提取器
【发布时间】:2020-04-10 01:55:01
【问题描述】:

我想在我的数据上应用skimage’s Local Binary Pattern feature extraction,并且想知道是否有可能在我的手电筒变换中执行此操作,现在如下:

data_transforms = {
    'train': transforms.Compose([
        transforms.CenterCrop(178),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
        transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
    ]),
    'val': transforms.Compose([
        transforms.CenterCrop(178),
        transforms.ToTensor(),
        transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
    ]),
}

如果没有,我将如何实施?导入数据时是否必须这样做?

【问题讨论】:

    标签: numpy pytorch scikit-image torchvision


    【解决方案1】:

    您可以使用 lamdba 函数实现转换。正如@dhananjay 正确指出的那样。 基于该评论,实现如下:

    def lbp(x):
        radius = 2
        n_points = 8 * radius
        METHOD = 'uniform'
    
        lbp = local_binary_pattern(x, n_points, radius, METHOD)
        return lbp
    
    data_transforms = {
        'train': transforms.Compose([
            transforms.CenterCrop(178),
            transforms.RandomHorizontalFlip(),
            transforms.Lambda(lbp),
            transforms.ToTensor(),
            transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
        ]),
        'val': transforms.Compose([
            transforms.CenterCrop(178),
            transforms.Lambda(lbp),
            transforms.ToTensor(),
            transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
        ]),
    }
    

    但是。这是一个坏主意,因为它违背了 pytorch 转换的目的。 变换是理想的操作,要么 1. 可以从原始数据中简单地计算(以低计算成本)。因此没有优势 将其应用于您的数据并存储副本。归一化就是这样一种变换。 2. 在原始数据中引入随机性或随机扰动的元素。例如 RandomHorizo​​ntalFlip 等。

    要记住的关键是,您的转换将在每个批次应用于数据集,同时 学习。

    考虑到上述情况,您绝对不想将 lbp 实现为转换。这个比较好 离线计算并存储它。否则,您将显着减慢批处理加载速度。

    【讨论】:

      【解决方案2】:

      您可以使用torchvision.transforms.Lambda
      它允许您将自定义 lambda 函数应用为转换。

      类似transforms.Lambda(lambda x: local_binary_pattern(x))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-22
        • 2021-06-01
        • 1970-01-01
        • 2011-07-25
        • 2014-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多