imbalance CIFAR10 数据不平衡代码制作与理解 以及 两种常见的数据不平衡类型

CV 长尾数据集-CIFAR-10/100,EEG等生理信号数据集整理 一、CV数据集 1.1 CIFAR-10 (10类RGB图像,32 × 32) 官方地址:The CIFAR-10 dataset 一个用于识别普适物体的小型数据集。一共包含10 个类别的RGB 彩色图片:飞机( airplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。 详情参考:Dataset之CIFAR-10:CIFAR-1... 阅读详情

CIFAR10数据集的介绍

CIFAR-10数据集是一个平衡的数据集,这意味着每个类别的样本数量是相同的。CIFAR-10包含10个类别,每个类别有6000张图像,整个数据集共有60000张图像。其中50000张用于训练,10000张用于测试。训练集和测试集也是平衡的,即每个类别在训练集中有5000张图像,在测试集中有1000张图像。

其他介绍:

CIFAR数据集-优快云博客

两种方法制作数据不平衡

在处理分类问题时,尤其是在现实世界的数据集中,数据不平衡是一个常见的问题。不同类别的样本数量可能差异很大,这对模型的训练和性能评估都是一个挑战。为了模拟这种现象并测试模型在不同不平衡条件下的表现,可以创建人工的不平衡数据集。在提供的代码中,使用了两种方法来制造数据不平衡:指数(exp)和步进(step)。下面详细解释这两种不平衡类型:

指数型不平衡(Exponential Imbalance - "exp")

  • 原理:在指数型不平衡中,类别的样本数按照指数函数递减。这意味着一些类别的样本数会非常多,而其他类别的样本数则逐渐减少,最少的类别可能只有很少的样本。
  • 效果:导致类别间的样本数量差异非常大,对模型的泛化能力和对少数类的识别能力提出了挑战。
exp指数分布不平衡

       长尾不平衡(long-tailed imbalance)指的是数据集中存在极端不平衡的情况,即某些类别的样本数量远远少于其他类别。这种情况通常表现为数据集中有少数类别的样本量较少,而大多数样本集中在另外一些类别上。

意思是几个主导类占据大多数例子,而大多数其他的类只有着相对较少的例子

定义:在指数分布不平衡中,数据集的样本数量按照指数规律逐渐减少。这意味着从最多样本的类别到最少样本的类别,样本数量以指数形式递减。

特点:

  • 长尾效应:少数类别有大量样本,而多数类别只有极少数样本。这种分布往往导致模型更偏向于学习样本数量较多的类别,而忽略样本较少的类别。
  • 实例:假设一个数据集有10个类别,样本数量分别为1000, 500, 250, 125, 60, 30, 15, 8, 4, 2。这就是一个典型的指数分布不平衡。

步进型不平衡(Step Imbalance - "step")

  • 原理:在步进型不平衡中,将类别分为两组,一组具有较多的样本,另一组具有较少的样本。这通常是通过直接设置一半类别具有最大样本数,而另一半类别的样本数显著减少来实现。
  • 计算方法:前半部分的类别(cls_num // 2)设置为最大样本数img_max,后半部分的类别设置为img_max乘以不平衡因子imb_factor(一个小于1的值)。
  • 效果:这种设置创建了一个明显的分界线,一半的类别是"多数类",另一半是"少数类"。这种不平衡类型对于测试模型在处理极端类别不平衡情况下的性能尤其有用。
step阶梯分布不平衡
  •        阶梯不平衡(step imbalance)可能是指数据集中存在类别间数量差距较大,但并不是像长尾不平衡那样极端不平衡的情况。相比于长尾不平衡,阶梯不平衡可能是更均衡但仍存在类别不平衡的情况,其中某些类别的样本数量明显多于其他类别,但不像长尾不平衡那样数量悬殊。

  • 分段明显:类别样本数量在不同的分段之间有明显的跳跃。例如,从一个分段到下一个分段,样本数量会骤减。
  • 实例:假设一个数据集有10个类别,样本数量分别为1000, 1000, 1000, 100, 100, 100, 10, 10, 10, 10。这就是一个典型的阶梯分布不平衡。

应用意义

这两种不平衡类型的设置使研究人员可以详细探索和评估分类模型在面对不同程度和类型的类别不平衡时的表现。这对于优化模型结构和学习策略,以及在特定应用中选择合适的处理方法都非常重要。例如,在医疗图像分析、欺诈检测、文本分类等领域,类别不平衡是一个常见且棘手的问题,有效的处理策略对于提高模型的实用性至关重要。

Imbalance代码理解

import torch
import torchvision
import torchvision.transforms as transforms
import numpy as np
import torchvision.datasets as datasets

class IMBALANCECIFAR10(torchvision.datasets.CIFAR10):
    cls_num = 10

    def __init__(self, root, imb_type='exp', imb_factor=0.01, rand_number=0, train=True,
                 transform=None, target_transform=None,
                 download=False):
        super(IMBALANCECIFAR10, self).__init__(root, train, transform, target_transform, download)
        np.random.seed(rand_number)
        img_num_list = self.get_img_num_per_cls(self.cls_num, imb_type, imb_factor) # 生成每个类别的样本数量列表。
        print("Generated Image Number List:", img_num_list)
        self.gen_imbalanced_data(img_num_list) # 调用 gen_imbalanced_data 方法,生成不平衡数据集。
        print("Imbalanced Data Generated.")

    def get_img_num_per_cls(self, cls_num, imb_type, imb_factor):
        img_max = len(self.data) / cls_num
        img_num_per_cls = []
        if imb_type == 'exp':
            for cls_idx in range(cls_num):
                num = img_max * (imb_factor**(cls_idx / (cls_num - 1.0)))
                img_num_per_cls.append(int(num))
        elif imb_type == 'step':
            for cls_idx in range(cls_num // 2):
                img_num_per_cls.append(int(img_max))
            for cls_idx in range(cls_num // 2):
                img_num_per_cls.append(int(img_max * imb_factor))
        else:
            img_num_per_cls.extend([int(img_max)] * cls_num)
        return img_num_per_cls

    def gen_imbalanced_data(self, img_num_per_cls):
        new_data = []
        new_targets = []
        targets_np = np.array(self.targets, dtype=np.int64)
        classes = np.unique(targets_np)

        self.num_per_cls_dict = dict()
        for the_class, the_img_num in zip(classes, img_num_per_cls):
            self.num_per_cls_dict[the_class] = the_img_num
            idx = np.where(targets_np == the_class)[0] # 找到所有属于当前类别的样本的索引,并存储在 idx 中。
            np.random.shuffle(idx) # 随机打乱当前类别的样本索引顺序,以确保样本的随机性。
            selec_idx = idx[:the_img_num]  # 从当前类别的样本索引中选择前 the_img_num 个索引,即根据不平衡设定的数量,选择少数类别的样本。
            new_data.append(self.data[selec_idx, ...]) # 
            new_targets.extend([the_class, ] * the_img_num) #将当前类别的标签复制 the_img_num 次,并将复制的标签添加到新标签列表 new_targets 中,确保标签与样本数据对应。
        new_data = np.vstack(new_data)
        self.data = new_data
        self.targets = new_targets
        
    def get_cls_num_list(self):
        cls_num_list = []
        for i in range(self.cls_num):
            cls_num_list.append(self.num_per_cls_dict[i])
        return cls_num_list

transform_val = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
])
# Example usage:
imbalance_cifar10 = IMBALANCECIFAR10(root='../data', imb_type='exp', imb_factor=0.01, rand_number=0, train=True, download=True)

print("Class-wise Sample Numbers:", imbalance_cifar10.get_cls_num_list())

val_dataset = datasets.CIFAR10(root='../data', train=False, download=True,transform=transform_val)
original_targets = np.array(val_dataset.targets)
original_class_counts = np.bincount(original_targets)
print("Original CIFAR-10 Class-wise Sample Numbers:", original_class_counts)

Cifar10Imbanlance代码理解

import torchvision
import random
from torch.utils.data import Dataset, DataLoader
import numpy as np
from PIL import Image

class Cifar10Imbanlance(Dataset):
    def __init__(self, imbanlance_rate, num_cls=10, file_path="data/",
                 train=True, transform=None, label_align=True, ):
        self.transform = transform
        self.label_align = label_align
        assert 0.0 < imbanlance_rate < 1, "imbanlance_rate must 0.0 < imbanlance_rate < 1"
        self.imbanlance_rate = imbanlance_rate

        self.num_cls = num_cls
        self.data = self.produce_imbanlance_data(file_path=file_path, train=train,imbanlance_rate=self.imbanlance_rate)
        self.x = self.data['x']
        self.targets = self.data['y'].tolist()
        self.y = self.data['y'].tolist()

    def __len__(self):
        return len(self.x)

    def __getitem__(self, item):
        x, y = self.x[item], self.y[item]
        x = Image.fromarray(x)
        if self.transform is not None:
            x = self.transform(x)
        return x, y

    def get_per_class_num(self):
        return self.class_list

    def produce_imbanlance_data(self, imbanlance_rate, file_path="/data", train=True):

        train_data = torchvision.datasets.CIFAR10(
            root=file_path,
            train=train,
            download=True,
        )
        x_train = train_data.data
        y_train = train_data.targets
        y_train = np.array(y_train)

        rehearsal_data = None
        rehearsal_label = None

        data_percent = []
        data_num = int(x_train.shape[0] / self.num_cls)

        for cls_idx in range(self.num_cls):
            if train:
                num = data_num * (imbanlance_rate ** (cls_idx / (self.num_cls - 1)))
                data_percent.append(int(num))
            else:
                num = data_num
                data_percent.append(int(num))
        if train:
            print("imbanlance_ration is {}".format(data_percent[0] / data_percent[-1]))
            print("per class num: {}".format(data_percent))

        self.class_list = data_percent



        for i in range(1, self.num_cls + 1):
            a1 = y_train >= i - 1
            a2 = y_train < i
            index = a1 & a2
            task_train_x = x_train[index]
            label = y_train[index]
            data_num = task_train_x.shape[0]
            index = np.random.choice(data_num, data_percent[i - 1],replace=False)
            tem_data = task_train_x[index]
            tem_label = label[index]
            if rehearsal_data is None:
                rehearsal_data = tem_data
                rehearsal_label = tem_label
            else:
                rehearsal_data = np.concatenate([rehearsal_data, tem_data], axis=0)
                rehearsal_label = np.concatenate([rehearsal_label, tem_label], axis=0)

        task_split = {
            "x": rehearsal_data,
            "y": rehearsal_label,
        }
        return task_split

ICLR25 重新思考长尾识别中的分类器再训练:标签过平滑可以实现平衡 哔哩哔哩Index团队联合上海交通大学系统重新构建了主流的分类器再训练方法。 阅读详情

相关推荐

工业级损失函数选型:从业务目标、数据缺陷到工程约束的四维决策

损失函数是深度学习模型优化的核心枢纽,其本质并非单纯数学工具,而是连接业务目标、数据特性、优化行为与部署约束的关键杠杆。在真实场景中,CrossEntropy等标准损失常因标签噪声、类别极度不平衡、评估指标不可微或推理延迟敏感而失效。理解损失函数的梯度动力学特性(如Focal Loss对难样本的聚焦能力、Dice Loss对分割边界的隐式偏好)和代理目标能力(如ApproxNDCG对排序序关系的建模),是提升线上AUC、F1、IOU等关键指标的前提。本文基于搜索推荐、医疗分割、金融风控等27个落地项目经验,

Coding 358

Learning Imbalanced Datasets withLabel-Distribution-Aware Margin Loss

标签边界损失函数LDAM

PLANTTHESON的博客 1125

MLCoPilot:面向真实场景的机器学习经验向量化知识库

机器学习工程实践的核心挑战,从来不是算法原理本身,而是如何在特定数据、硬件与时间约束下做出有效决策。这背后依赖大量隐性经验——如超参调优的边际收益判断、框架选型的资源敏感性分析、失败案例中的负向知识等。传统RAG难以承载这类跨模态、带噪声、强条件耦合的经验信息。MLCoPilot通过多向量融合编码(任务/代码/条件三元向量)、结构化经验蒸馏与混合检索机制,将HPO-B、PD1等真实基准中的量化结果与上下文决策逻辑转化为可检索、可复用的知识单元。它不替代工程师,而是把散落在notebook、飞书文档和GitH

weixin_33743880的博客 418

Python深度学习实例--CIFAR-10图像数据分类

CIFAR-10由60000张32*32的RGB图像组成,共有10类,分别是,飞机(0)、汽车(1)、鸟(2)、猫(3)、鹿(4)、狗(5)、青蛙(6)、马(7)、船(8)和卡车(9)。下图展示了CIFAR-10图像数据集。

m0_61856412的博客 6255

AutoResearch:面向机器学习研究闭环的多Agent自动化系统

机器学习研究自动化(ML Research Automation)正从单点代码生成迈向完整研究范式重构。其核心原理在于将文献调研、实验执行、结果可视化与逻辑校验等异构任务解耦为可协作、可审计、状态可控的AI Agent,通过确定性通信协议与内存驻留状态管理,实现研究过程的工程化封装。该技术显著提升研究复现性、可解释性与迭代效率,广泛应用于论文复现、消融分析、SOTA对比等典型科研场景。本文深入解析Andrej Karpathy提出的AutoResearch系统设计思想与四大核心Agent协同机制。

weixin_33749242的博客 642

【模块化编程】制作、可视化不平衡数据(长尾数据)(以Cifar-10为例)

本文提出基于模块化编程的CIFAR-10不平衡数据生成方案,通过可配置的类分布采样器实现灵活的长尾数据构建。核心模块分离数据加载、类比例控制与样本索引生成,支持指数衰减/阶梯下降/Dirichlet分布等多种不平衡模式。开发者只需修改配置文件即可生成1:100至1:10不同失衡程度的数据变体,并提供可视化统计模块验证数据分布。该方案复现了经典论文的CIFAR-10-LT基准数据集生成流程,其标准化接口兼容重采样策略,为后续不平衡学习算法研究提供即插即用的数据工程基础。

十二月的猫 1824

NeurIPS 2020 | 数据类别不平衡/长尾分布?不妨利用半监督或自监督学习

作者:Yuzhe Yang链接:https://zhuanlan.zhihu.com/p/259710601本文转载自知乎,作者已授权,未经许可请勿二次转载来给大家介绍一下我们的最新工作...

深度学习与计算机视觉 1262

关于卷积神经网络中类不平衡问题的综述

2017年的一篇综述论文,系统阐述了在卷积神经网络中的类别不平衡问题,以及对比了几种常用的解决方法,并在MNIST、CIFAR-10和ImageNet数据集上进行结果对比。

开源项目管理软件OpenProject:10分钟跑起来,进度不用问

周一早上,你在群里第三次问"那个需求到哪了",回复是一串解释:有人在重构,有人在出差,有人说"看表格"。这是很多小团队的日常——进度长在每个人脑子里,真相只能靠猜。OpenProject 是一款开源项目管理软件,支持自托管部署的 Jira 替代品,社区版免费,把任务、排期、成员和沟通记录收进同一个界面。项目状态不再是口头汇报,而是随时可查的客观事实。 ## 免费、自托管:OpenProject

gitblog_00157的博客 430

DP3(3D Diffusion Policy)算法详解:从点云感知到扩散动作生成

DP3 的全称是:DP3 = 3D Diffusion Policy\boxed{\text{DP3 = 3D Diffusion Policy}}DP3 = 3D Diffusion Policy​对应论文题目是:3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations该工作发表于 Robotics: Science and Systems(RSS)2024。DP3 是一种面向机器

u013250861的博客 350

Ubuntu20.04安装Ceres库

ceres真难安装。

little_white138的博客 8379

终极指南:如何利用半监督与自监督学习解决长尾不平衡分类难题

在现实世界的机器学习应用中,类别不平衡问题无处不在——从医疗诊断到自动驾驶,少数类别(头类)拥有大量样本,而多数类别(尾类)样本稀缺。imbalanced-semi-self项目正是为解决这一挑战而生,它创新性地结合了半监督学习和自监督学习技术,为长尾不平衡分类提供了高效解决方案。该项目在ImageNet-LT和iNaturalist 2018等经典长尾数据集上取得了显著性能提升,是处理类别不平衡

gitblog_00735的博客 707

全同态加密:CKKS

不论是 LSB 编码的 BGV,还是 MSB 编码的 BFV,它们的同态运算都是对 $\mathbb Z_t$ 上明文的**精确计算**,因为**密文中的明文空间和噪声空间是分离的**。例如,在 BGV 中是 $te+m$,在 BFV 中是 $\delta m+e$。但是,这种精确计算是在同余意义下的,如果将明文视为实数,那么实际上同态运算时的噪声破坏了明文的 MSB $\lfloor m/t \rfloor$,仅保留了 LSB $[m]_t$,

weixin_44885334的博客 7546

突破性不平衡学习技术:深度解析自监督与半监督的融合之道

在现实世界的数据分布中,类别不平衡问题无处不在——从医疗影像诊断到自动驾驶感知,从金融欺诈检测到生物多样性识别,头类样本占据绝大多数而尾类样本稀缺的现象严重制约着深度学习模型的性能。如何突破传统监督学习在长尾分布下的性能瓶颈?如何利用无标签数据提升尾类识别能力?imbalanced-semi-self项目通过创新性地融合自监督学习与半监督学习技术,为这一挑战提供了突破性解决方案。 ## 🔬 数

gitblog_00142的博客 263

避开这些坑!DS18B20温度读取不准、时序混乱的5个常见问题与调试方法

本文深入解析DS18B20温度传感器在应用中常见的5个问题,包括温度读取不准、时序混乱等,并提供详细的调试方法。通过硬件设计优化、精准延时实现和数据解析技巧,帮助开发者有效解决温度值跳变、初始化失败等典型问题,提升OneWire协议下的温度测量精度。

weixin_29185493的博客 463

【Qt-4】QT基于qhttp-server搭建http服务器

QT搭建http服务器

WXG1011的博客 5712

imbalanced-semi-self高级技巧:伪标签生成与不平衡未标记数据处理的7个关键策略

imbalanced-semi-self是一个专注于解决类别不平衡和长尾学习问题的开源项目,结合了半监督学习(未标记数据)和自监督学习的优势,帮助开发者在数据分布不均衡的场景下构建更鲁棒的模型。本文将分享7个关键策略,助你掌握伪标签生成与不平衡未标记数据处理的核心技巧。 ## 1. 理解类别不平衡挑战:从数据分布到模型偏差 类别不平衡是机器学习中常见的难题,尤其在长尾数据集中,少数类(Tail

gitblog_01097的博客 431

模电(十四)差分放大电路

目录 差分放大电路 双端输入双端输出 Q点分析 抑制共模信号 放大差模信号 双端输入单端输出 Q点分析 差模信号分析 共模信号分析 单端输入双端输出 单端输入单端输出 四种接法比较 具有恒流源的差分放大电路 差分放大电路的改进 差分放大电路 采用引入支流负反馈,温度补偿来克服零点漂移(温度变化,直流电源波动,元器件老化产生的输入电压为零,输出电压不为零的...

weixin_43674847的博客 2万+

imbalanced-semi-self代码架构解析:从数据加载到模型训练的完整流程

imbalanced-semi-self是一个专注于解决类别不平衡和长尾学习问题的开源项目,结合了半监督学习和自监督学习技术,帮助开发者在数据标签不完整或类别分布不均的情况下构建高性能模型。本文将深入解析该项目的代码架构,从数据加载到模型训练的完整流程,帮助新手快速理解项目结构和核心功能。 ## 项目整体结构概览 imbalanced-semi-self项目采用模块化设计,主要分为数据处理、模

gitblog_01055的博客 731

RK3576平台部署NanoTrack:边缘AI视觉跟踪实战指南

边缘AI部署是将深度学习模型在资源受限的嵌入式设备上高效运行的关键技术,其核心在于模型压缩、硬件适配与软件栈优化。通过INT8量化、算子融合与内存优化等原理,能显著降低模型计算量与内存占用,从而在嵌入式NPU上实现实时推理。这项技术的价值在于为安防监控、无人机视觉、工业检测等场景提供低功耗、高响应的智能感知能力。以瑞芯微RK3576平台部署轻量级视觉跟踪模型NanoTrack为例,其过程涉及模型结构分析、RKNN工具链转换、C++推理程序开发及多线程性能优化,完整展现了从算法到产品的工程化路径,为开发者提供

weixin_31887307的博客 427

【软考高项】【计算专题】- 3 - 进度类 - 双代号网络图

共需压缩 20 天。在双代号网络图中,工作一般使用箭线表示,任意一条箭线都需要占用时间、消耗资源,工作名称写在箭线的上方,而消耗的时间则写在箭线的下方或者工作后面。反映的是前后工作的交接点,节点中的编号可以任意编写,但应保证后续工作的节点比前面节点的编号大,即上图图中的1⃣️4⃣️ 即表示 B 活动和 D 活动间有依赖关系,D 活动的开始,依赖 B 活动的结束。B活动完成了一半, 各计划的实际支出为A活动6500元, B活动1000元, C活动280元, D。

欢迎来到我的博客,一起探索代码里的世界! 4561

自定义损失函数实战:3步在PyTorch中实现Focal Loss缓解类别不平衡

本文详细介绍了如何在PyTorch中实现Focal Loss来缓解类别不平衡问题。通过3个步骤:理解类别不平衡本质、PyTorch代码实现和梯度验证,帮助开发者有效提升模型在医疗诊断、金融风控等场景中的表现。文章包含完整的代码示例和高级调参技巧,特别适合处理极端不平衡数据。

weixin_34348174的博客 470

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Label-Distribution-Aware Margin Loss原理解析:LDAM数学公式与代码实现

Label-Distribution-Aware Margin Loss(LDAM)是NeurIPS 2019提出的解决类别不平衡问题的创新损失函数,通过动态调整类别边界来提升长尾数据的分类性能。本文将深入解析LDAM的数学原理与PyTorch实现细节,帮助开发者快速掌握这一高效算法。 ## 什么是LDAM Loss? 在图像分类等任务中,训练数据常存在严重的类别不平衡问题(如1:100的样本

gitblog_01062的博客 1076

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

KeystoneJS Email 字段类型深度解析:配置、校验、Gravatar 头像与 Admin UI 集成

Email 字段类型是 KeystoneJS(当前仓库 `keystone-classic`)中最常用的基础字段之一,它以 `String` 形式存储邮箱地址,在 Admin UI 中呈现为文本输入框,并提供格式校验、自动小写规范化、Gravatar 头像 URL 生成以及基于文本的列表筛选能力。本文以 [fields/types/email/Readme.md](https://link.git

gitblog_00144的博客 914

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

分类问题实战2026版:从逻辑回归到深度学习的完整图像识别项目

本文通过两个实战项目全面讲解分类问题:信用卡欺诈检测(二分类)和MNIST手写数字识别(多分类)。针对信用卡欺诈检测中的样本不平衡问题,演示了随机过采样、欠采样和SMOTE三种处理方法,比较了逻辑回归、随机森林和XGBoost等模型的性能,强调在不平衡数据中Precision、Recall、F1等指标比准确率更重要。对于MNIST项目,则采用CNN深度学习模型实现高精度多分类,涵盖数据预处理、模型构建、训练和评估全流程。通过这两个案例,完整展示了从传统机器学习到深度学习的分类问题解决方案。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 210

卷积神经网络原理与实战:从图像识别到跨模态应用

卷积神经网络(CNN)是一种基于局部感受野和权值共享的深度学习模型,其核心原理在于通过卷积、池化、步长与填充等操作实现层次化特征提取,具备平移不变性与鲁棒性。它不仅支撑图像分类、目标检测等计算机视觉任务,更可拓展至时序分析、视频理解、图结构数据及文本处理等多元场景,本质是面向网格化或局部相关性数据的通用特征建模范式。在PyTorch等框架中,合理配置卷积核尺寸、步长、填充方式及池化策略,直接影响模型泛化能力与部署效率。本文结合LeNet-5到ResNet的演进脉络,解析CNN各层物理意义,并覆盖数据预处理、

weixin_29062823的博客 317
上一篇: RuntimeError: view size is not compatible with input tensor‘s size and stride解决记录
下一篇: 两种常见的数据不平衡类型:长尾不平衡和阶梯不平衡。
pythonSuperman
博客等级 码龄6年 7764粉丝 499原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值