当前位置: 首页 > news >正文

网站特效怎么做品牌设计公司vi设计

网站特效怎么做,品牌设计公司vi设计,济南seo网站关键词优化排名,手机网站 设计图官方地址:https://github.com/libffcv/ffcv ffcv是一种直接数据加载系统,可显著提高模型训练中的数据吞吐量: 在 35 分钟内在一个 GPU 上训练一个 ImageNet 模型(AWS 上每个模型 98 美分) 在 36 秒内在一个 GPU 上训练…

官方地址:https://github.com/libffcv/ffcv
ffcv是一种直接数据加载系统,可显著提高模型训练中的数据吞吐量:
在 35 分钟内在一个 GPU 上训练一个 ImageNet 模型(AWS 上每个模型 98 美分)
在 36 秒内在一个 GPU 上训练一个 CIFAR-10 模型(在 AWS 上为每个模型 2 美分)

https://docs.ffcv.io/

环境搭建

参考官方文档:https://docs.ffcv.io/

  1. conda-forge
conda create -n ffcv python=3.10 pkg-config opencv -c conda-forge --override-channels
conda activate ffcv
  • 作用:pkg-config 能正确找到 opencv4.pc,否则无法编译ffcv
  1. torch
conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0  pytorch-cuda=11.8 -c pytorch -c nvidia
  1. ffcv
pip install ffcv

具体流程

这里就不以官方例子举例了,可以在官方文档看到,下面是我自己整理的一些过程

1将数据保存成ffcv格式

from ffcv.writer import DatasetWriter
from ffcv.fields import RGBImageField
from torchvision import transforms
from PIL import Image
from torch.utils.data import Dataset
import osclass ImagePairDataset(Dataset):def __init__(self, input_dir, target_dir, transform=None):self.input_dir = input_dirself.target_dir = target_dirself.transform = transformself.filenames = sorted(os.listdir(input_dir))def __len__(self):return len(self.filenames)def __getitem__(self, idx):input_path = os.path.join(self.input_dir, self.filenames[idx])target_path = os.path.join(self.target_dir, self.filenames[idx])input_img = Image.open(input_path).convert('RGB')target_img = Image.open(target_path).convert('RGB')if self.transform:input_img = self.transform(input_img)target_img = self.transform(target_img)# Return PIL images directlyreturn input_img, target_img# 数据集路径
input_dir = 'xx/input/'
target_dir = 'xx/target/'dataset = ImagePairDataset(input_dir, target_dir, transform=None)
writer = DatasetWriter('dataset.beton', {'input': RGBImageField(write_mode='smart'),'target': RGBImageField(write_mode='smart')
})
writer.from_indexed_dataset(dataset)

2测试是否转换成功

from ffcv.loader import Loader, OrderOptionloader = Loader('dataset.beton', batch_size=32, num_workers=4, order=OrderOption.RANDOM)for batch in loader:print(type(batch))  input_images, target_images = batch[0], batch[1] print(input_images.shape, target_images.shape)break

3替换pytorch的dataload

train_loader = Loader(dataset_setting["beton_path"],batch_size=args.batch_size,num_workers=4,order=OrderOption.RANDOM,pipelines={'input': [SimpleRGBImageDecoder(), ToTensor(),   # tensorToTorchImage(), # chwToTensor(),   # tensorConvert(torch.float32), # floattorchvision.transforms.Normalize(CIFAR_MEAN, CIFAR_STD),ToDevice(torch.device('cuda:0'))],#, ToDevice('cuda:0')],'target': [SimpleRGBImageDecoder(), ToTensor(),ToTorchImage(),Convert(torch.float32),torchvision.transforms.Normalize(CIFAR_MEAN, CIFAR_STD),ToDevice(torch.device('cuda:0'))],#, ToDevice('cuda:0')],},drop_last=True,# os_cache=False)

4自定义pipelines算子

  • 在3中,大部分常用的tensor操作官方是实现了的,同时还有很多基于不同类型数据集对应的保存格式,这里不详细展开。
  • 在使用过程中我难免会遇到一些需要自己实现的前处理和数据增强等,官方的实现还是有限的。
  • 在实现过程中我们只要记住以下几点就可以添加自己的处理操作
  1. 必须在方法后面添加declare_state_and_memory方法否则无法编译
def declare_state_and_memory(self, previous_state: State):
# 声明当前 transform 的输出状态(比如 shape, dtype 是否改变)
# 声明需要多少额外内存空间(比如预先开辟 buffer,就要开内存)
  1. 方法继承from ffcv.pipeline.operation import Operation
  2. 简单的例子,一个normlize操作
class NormalizeFirstChannel(Operation):def __init__(self, mean, std):super().__init__()self.mean = meanself.std = stddef generate_code(self):mean = self.meanstd = self.stddef process(images, *_):B, C, H, W = images.shapefor i in range(B):images[i, 0, :, :] = (images[i, 0, :, :] - mean) / stdreturn imagesreturn processdef declare_state_and_memory(self, previous_state: State):return previous_state, 0 

总结

本文在流程上相比与官方文档感觉更加清晰一些,当然并不是使用ffcv就一定提速,在大规模数据可能效果更显著。

http://www.dtcms.com/a/558318.html

相关文章:

  • 图片墙网站源码网站建设售后服务方案
  • 《算法通关指南:数据结构和算法篇 --- 顺序表相关算法题》--- 1.移动零,2.颜色分类
  • 呼和浩特市做网站公司好的电子工程网络信息技术专业
  • php网站开发账号密码西安十大广告设计公司
  • 南山做网站的公司网站改版是否有影响
  • 叙述网站的建设意义所在建设互联网站
  • wordpress能发多少邮件东莞关键词优化排名
  • Apache Spark算法开发指导-特征转换RobustScaler
  • 广东省省考备考(第一百三十九天11.1)——判断推理、资料分析、数量关系(强化训练)
  • 自己建网站有什么用网站运营需要哪些知识
  • 网站 app建设开发合作协议有没有做推文的网站
  • 企业做网站公司排名口碑硬件开发平台
  • 德州做网站的公司南昌网站建设哪家就好
  • 【python】装饰器
  • 培训计划--linux基础操作
  • 做一网站要什么时候开始企业网站的建设包括哪些
  • 023数据结构之线段树——算法备赛
  • 做化工回收的 做那个网站广东新闻发布会
  • 《信息系统项目管理师》2024 年上第 2 批次案例分析题及解析
  • 华为OD机试双机位A卷 - 插队 (C++ Python JAVA JS GO)
  • 裕华区建设局网站九天智能建站软件
  • 牛客101:递归/回溯
  • flash网站开源全国网站建设哪家专业
  • 网站整体克隆包含后台安卓app软件制作工具
  • 【Linux lesson3】进程概念
  • XPath语法及Python的lxml包学习
  • 网站管理系统源码怎么做网站icp备案
  • 生活视角下Prompt 提示词思考
  • 网站建设空间空间有几种类型成都电商网站
  • ROS2系列 (17) : Python服务通信实例实例——Server端