Advertisement

Essential-BYOL: PyTorch与PyTorch Lightning中BYOL的基本实现

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:ZIP


简介:
简介:本文介绍了在PyTorch和PyTorch Lightning框架下无监督学习方法BYOL的基础实现,为研究者提供了一个简洁而有效的起点。 基本BYOL实现 一个简单而完整的实现在PyTorch + 中。 优点: - 良好的性能(在CIFAR100上的线性评估精度约为67%) - 最少的代码,易于使用和扩展 - PyTorch Lightning提供了多GPU/TPU和AMP支持 - 支持ImageNet(需要测试) 在线性训练过程中执行线性评估而无需额外的前向通过。 用Wandb记录性能。 表现: 线性评估精度 这是经过1000个纪元后的准确性: | 数据集 | Acc @ 1 | Acc @ 5 | |--------|---------|---------| | CIFAR10 | 91.1% | 99.8% | | CIFAR100 | 67.0% | 90.5% | 训练和验证曲线 CIFAR10 CIFAR100 环境: ``` conda create --name essential-byol python=3.8 conda activate essential-byol conda install pytorch=1.7. ```

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Essential-BYOL: PyTorchPyTorch LightningBYOL
    优质
    简介:本文介绍了在PyTorch和PyTorch Lightning框架下无监督学习方法BYOL的基础实现,为研究者提供了一个简洁而有效的起点。 基本BYOL实现 一个简单而完整的实现在PyTorch + 中。 优点: - 良好的性能(在CIFAR100上的线性评估精度约为67%) - 最少的代码,易于使用和扩展 - PyTorch Lightning提供了多GPU/TPU和AMP支持 - 支持ImageNet(需要测试) 在线性训练过程中执行线性评估而无需额外的前向通过。 用Wandb记录性能。 表现: 线性评估精度 这是经过1000个纪元后的准确性: | 数据集 | Acc @ 1 | Acc @ 5 | |--------|---------|---------| | CIFAR10 | 91.1% | 99.8% | | CIFAR100 | 67.0% | 90.5% | 训练和验证曲线 CIFAR10 CIFAR100 环境: ``` conda create --name essential-byol python=3.8 conda activate essential-byol conda install pytorch=1.7. ```
  • Informer-Lightning: PyTorch LightningInformer重构
    优质
    Informer-Lightning是基于PyTorch Lightning框架对Informer模型进行的优化实现,简化了长序列时间系列预测任务中的训练流程。 告密者闪电是基于PyTorch Lightning重新构建的。对于使用麻木大熊猫scikit学习、火炬炬度法以及火炬闪电进行模型训练,请参阅scripts文件夹中的bash脚本。
  • LASR:PyTorch Lightning自动语音识别
    优质
    LASR是一款使用PyTorch Lightning框架开发的先进自动语音识别工具,旨在简化ASR模型的训练和部署流程。 激光闪电自动语音识别是一个基于PyTorch-Lightning的MIT许可ASR研究库,旨在开发端到端ASR模型。它提供了用于高性能AI研究的轻量级包装器。尽管PyTorch易于使用且能够构建复杂的AI模型,但在涉及多GPU训练、16位精度和TPU训练等复杂情况时,用户可能会引入错误。而PyTorch Lightning正好解决了这个问题:通过抽象出培训细节来构造您的PyTorch代码,使AI研究更加可扩展并且可以快速迭代。 该项目展示了如何使用PyTorch Lightning实现ASR项目的一个示例,在此过程中我训练了一个模型,该模型包括一个带有联合CTC注意的构象编码器+ LSTM解码器。LASR代表激光闪电自动语音识别(Lightning Automatic Speech Recognition)。希望这能为相关研究提供帮助和参考。
  • PyTorch-Lightning离线文档
    优质
    PyTorch-Lightning离线文档提供了一个无需网络连接即可访问的全面资源库,专为使用PyTorch框架进行深度学习研究和开发的人士设计。 PyTorch-Lightning 1.7.0的离线文档可以下载为HTML格式文件,解压后直接打开index.html即可查阅,非常方便快捷。本地查询速度快,有助于提高开发效率。 PyTorch-Lightning(简称PL)是一个轻量级的PyTorch库,用于高性能人工智能研究中的简化包装器。它帮助你专注于模型的核心部分而不是样板代码。 除了自动化这些日常任务之外,Lightning还提供了一种构建清晰、可复制机器学习系统的风格指南。通过使用Lightning,复杂的网络编码变得简单明了。
  • AnimeGANv2-PyTorch: AnimeGANv2PyTorch
    优质
    AnimeGANv2-PyTorch是基于PyTorch框架实现的AnimeGANv2代码库,用于将照片风格转换成日式漫画风格,提供模型训练和预处理工具。 PyTorch实现 从原始存储库转换权重(需要TensorFlow 1.x) ``` git clone https://github.com/TachibanaYoshino/AnimeGANv2 python convert_weights.py ``` 推理: ``` python test.py --input_dir [image_folder_path] --device [cpu/cuda] ``` 这是经过转换的模型的结果样式(从左到右:输入图像,原始TensorFlow结果,PyTorch结果)。 脸部模型是从带有L2 + VGG + GAN损失和CelebA-HQ图像中提取出来的。有关推断,请参见test_faces.ipynb文件。 注意:不包含训练代码,在RTX3090 + PyTorch1.7.1上进行了测试,由于转换后的权重结果略有不同。
  • PyTorch-ENet: PyTorchENet
    优质
    简介:PyTorch-ENet是在PyTorch框架下对ENet模型的高效实现,适用于实时语义分割任务,尤其针对移动设备和嵌入式系统进行了优化。 PyTorch-ENet 是 ENet 的 PyTorch(v1.1.0)实现版本,移植自作者的 lua-torch 实现。此实现已在 CamVid 和 Cityscapes 数据集上进行了测试,并提供了在这些数据集中训练得到的预训练模型。 以下是不同配置下的性能指标: - 输入分辨率为 480x360 的情况下:批量大小为 11,经过约 300 次迭代后可达到平均 IoU(%)51.08%,在 GPU 内存占用量约为 3GiB 的条件下训练时间大约是 2 小时。 - 输入分辨率为 1024x512 的情况下:批量大小为 19,经过约 300 次迭代后可达到平均 IoU(%)59.03%,在 GPU 内存占用量约为 4GiB 的条件下训练时间大约是 4 小时。 - 输入分辨率为未知的第三种情况:批量大小为 20,经过约 100 次迭代后可达到类似平均 IoU(%)的结果,但具体数值未给出。 在以上所有情况下,“无效/未标记”的类别均被排除在外。提供的结果仅供参考;不同的实现、数据集和硬件配置可能会导致显著差异的性能表现。参考设备为 Nvidia GTX 1070 和 AMD Ryzen 5 3600(频率:3.6GHz)。
  • VAE-PyTorch: PyTorchVAE
    优质
    简介:VAE-PyTorch是基于PyTorch框架构建的变分自编码器(VAE)实现项目,适用于机器学习和深度学习研究者。该项目提供了一系列预定义模型与示例代码,帮助用户快速上手并深入理解VAE的工作原理及其在数据生成、特征学习等领域的应用价值。 为了生成如MNIST手写字体这样的数据,我们需要找到真实的概率分布$ P(X) $。如果能够获取到该真实分布,则直接从$ P(X)$中抽样即可完成任务。然而,在实践中我们通常无法获得这一确切的概率分布,因此使用潜在变量(latent variable)来近似它。 根据变分自编码器 (VAE) 的理论框架,我们可以将数据的真实概率分布表示为: $$ P(X) = \int P(x|z)P(z)\,dz $$ 这里的目标是通过对潜在变量$ z $进行采样,并利用条件概率$ P(x|z)$来生成样本$x$。为了训练模型并找到合适的潜在变量,我们需要定义后验分布$ P(z|x)$: $$ P(Z) = \int P(z|x)P(x)\,dx $$ 在VAE中,为了简化采样过程,我们对条件概率$ P(z|x)$施加了特定约束使其服从标准正态分布$ N(0,1)$。因此我们可以写出以下等式: $$ \int P(z|x)P(x)\,dx = \int N(0, 1) $$ 通过这种方式,VAE能够近似真实数据的分布,并生成类似的真实样本。
  • Attention-Sampling-PyTorch: 研究PyTorch
    优质
    Attention-Sampling-PyTorch提供了我们最新研究中提出的注意力采样方法的PyTorch代码实现。此项目便于研究人员和开发者理解和实验最新的深度学习技术。 这是论文的PyTorch实现:该存储库基于用TensorFlow编写的原论文代码进行了移植,并使用了PyTorch 1.4.0版本进行重构。其中最具有挑战性的部分是将从高分辨率图像中提取补丁的功能重写,原本这部分功能是由特殊的C/C++文件完成的,在这里我将其改为了本地Python实现。由于可能需要嵌套的for循环操作,这可能会降低效率和速度。虽然尝试通过并行执行来提高补丁提取过程的速度,但是增加了很多开销,并且实际上运行得更慢。 此外,我还希望正确实现了计算期望值的部分,这部分使用了一个自定义的backward()函数,在实现过程中我尽量避免了错误的发生。 该代码库已经针对原始文件中提到的任务进行了测试:包括Mega-MNIST和交通标志检测任务。通过定性分析表明结果与原工作具有可比性,但也有用户反馈说在这一版本中的错误较高。
  • TransGAN-PyTorch: [WIP] PyTorchTransGAN
    优质
    TransGAN-PyTorch是一个正在开发中的项目,致力于提供一个基于PyTorch框架的TransGAN实现。此代码库旨在为研究者和开发者提供灵活且高效的生成对抗网络实验环境。 TransGAN-PyTorch 是 PyTorch 实现的 TransGAN 论文原始文件。安装方法是通过 pip 安装软件包: ``` pip install transgan-pytorch ``` 使用时,需要导入 torch 和 TransGAN 模块,并实例化一个 TransGAN 对象。代码示例如下: ```python import torch from transgan_pytorch import TransGAN tgan = TransGAN(...) z = torch.rand(100) # 随机噪声 pred = tgan(z) ```
  • Anfis-PytorchPyTorchANFIS源码
    优质
    Anfis-Pytorch是一款利用PyTorch框架构建的ANFIS(自适应网络-基于模糊推理系统)的开源实现项目,提供了详细的源代码以供学习和研究使用。 pyTorch中的ANFIS 是使用pyTorch实现的ANFIS系统。航空情报服务ANFIS是一种将模糊推理系统(FIS)表示为一系列数字层的方式,因此可以像神经网络一样对其进行训练。 规范参考是Jang, J.-SR (1993) 的原始论文:“ANFIS:基于自适应网络的模糊推理系统”。IEEE 系统、人与控制论学报。23(3):665-685. 需要注意的是,它采用高木Sugeno Kang(TSK)风格的去模糊功能,而不是通常使用的Mamdani风格。 背景:Jang实施ANFIS系统的原始C代码以及测试用例是其他实现的基础版本。许多人使用这个基础版本进行开发和研究工作。即使不使用Matlab, 通过理解其提供的资源也能帮助掌握ANFIS的工作原理。此外,阿根廷的Cristobal Fresno 和 Elmer A. Fernandez 实现了R语言版的ANFIS系统,为用户提供更多选择。