08 2024 档案
摘要:深度学习训练的时候,一个好的初始化结果能使模型更容易收敛,Pytorch提供了一些初始化函数。 import torch import torch.nn as nn import matplotlib.pyplot as plt class Model(nn.Module): def __init_
阅读全文
摘要:这里实现了一下常见的激活函数。 其中prelu参数是一个可学习参数,这里设成前向传播类。 代码如下: import numpy as np import matplotlib.pyplot as plt import torch import torch.nn as nn def sigmoid(x
阅读全文
摘要:写了一个计算距离的脚本,常见距离基本都有。 其中测地距离需要依赖曲面,Hausdorff距离之前有实现,而Wasserstei距离可以用sinkhorn方法求解。 代码如下: import numpy as np def Euclidean(a,b): return np.sqrt(np.sum((
阅读全文
摘要:将Transformer引入图像领域之作,学习一下。 网络结构: VIT结构有几个关键的地方: 1. 图像分块:输入图像被划分为固定大小的非重叠小块(patches),每个小块被展平并线性嵌入到一个固定维度的向量中。这里是将32x32的图像划分成4x4的小块,总共会有16个小块,每个小块有64维向量
阅读全文
摘要:模型蒸馏是指通过训练一个小而简单的模型来复制和学习一个大模型的知识和性能。这种方法通常用于减少模型的计算资源需求,加速推理过程或者使模型适用于资源受限的设备上。 步骤如下: 1. 准备教师模型和学生模型: 教师模型:一个复杂的模型,这里用的是resnet。 学生模型:简化的卷积神经网络,较少的参数和
阅读全文
摘要:Pytorch做训练的时候,可以调整训练学习率。 通过调整合适的学习率曲线可以提高模型训练效率和优化模型性能。 各种学习率曲线示例代码如下: import torch import torch.optim as optim import torch.nn as nn import matplotli
阅读全文