摘要:
好吧,承认是自己浅薄了 当被问起C++重载时,嘴角不自觉的微微上扬,然后脱口而出,C++重载的原则: 函数名相同,函数参数列表不同(类型、个数、顺序) 匹配原则1:严格匹配,找到再调用 匹配原则2:通过隐式类型转换寻求一个匹配,找到则调用 注:返回类型不构成重载条件 C++编译时多态也是由重载函数来 阅读全文
摘要:
批量归一化(BN)如何实现?作用 实现过程: 计算训练阶段mini_batch数量激活函数前结果的均值和方差,然后对其进行归一化,最后对其进行放缩和平移。 作用: 可以使用更高的学习率进行优化 移除或使用较低的dropout 降低L2权重衰减系数 调整数据的分布,不考虑激活函数,它让没一层的输出归一 阅读全文
摘要:
TVM介绍 为解决深度学习框架和硬件后端适配问题,华盛顿大学的陈天奇等人提出了TVM. TVM是一个端到端的全栈编译器,包括统一的IR堆栈和自动代码生成方法,其主要功能是优化在CPU、GPU和其他定制AI芯片上执行的AI模型,通过自动转换计算图,实现计算模式的融合和内存利用率最大化,并优化数据布局, 阅读全文
摘要:
函数的调用其实是函数的入栈出栈操作,但当程序栈因程序的错误导致破坏了栈,这时候就会导致gdb解析core文件时解析不出来的情况,即是问号(?) 那还能做点什么呢? 可以通过打印$rbp$和$rsp$的值得到最后调用栈的栈底和栈顶。 (gdb) p $rbp $40 = (void *) 0x7fff 阅读全文
摘要:
网络结构定义 import torch import torch.nn as nn import torch.nn.functional as F import torch_pruning as tp from torchvision.datasets import CIFAR10 from tor 阅读全文
摘要:
Torch-Pruning 通道剪枝网络实现加速的工作。 Torch pruning是进行结构剪枝的pytorch工具箱,和pytorch官方提供的基于mask的非结构化剪枝不同,工具箱移除整个通道剪枝,自动发现层与层剪枝的依赖关系,可以处理Densenet、ResNet和DeepLab 特性 卷积 阅读全文
摘要:
Pytorch中剪枝源码可参考: https://github.com/pytorch/pytorch/blob/master/torch/nn/utils/prune.py 可参考: pytorch中函数接口:https://runebook.dev/zh-CN/docs/pytorch/-ind 阅读全文
摘要:
深度学习技术依赖于过参数化模型,这是不利于部署的,相反,生物神经网络是使用高效的稀疏连接的。 通过减少模型中的参数数量来压缩模型的技术非常重要,为减少内存、电池和硬件的消耗,而牺牲准确性,实现在设备上部署轻量级模型。 在Pytorch中,主要通过torch.nn.utils.prune来进行剪枝,以 阅读全文
摘要:
剪枝分类 从network pruning 的粒度来说,可以分为结构化剪枝(structured pruning) 和非结构化剪枝(Unstructured pruning) 两类 早期的一些方法是基于非结构化的, 它裁剪的粒度为单个神经元。 如果对kernel进行非结构化剪枝,则得到的kernel 阅读全文
摘要:
知识蒸馏 还是先来简单回顾下知识蒸馏的基本知识。 知识蒸馏的核心思想就是:通过一个预训练的大的、复杂网络(教师网络)将其所学到的知识迁移到另一个小的、轻量的网络(学生网络)上,实现模型的轻量化。 目标: 以loss为标准,尽量的降低学生网络与教师网络之间的差异,实现学生网络学习教师网络所教授的知识。 阅读全文