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

泊头网站排名优化搜索引擎优化的常用方法

泊头网站排名优化,搜索引擎优化的常用方法,免费网站自己做,安庆网站建设哪家好官方地址: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/459725.html

相关文章:

  • 丹东企业做网站wordpress 图床加速
  • 温州cms模板建站邯郸哪里做网站
  • 网站设计与网页制作项目教程网站wap版怎么做
  • 新能源网站建设中国招标网官方网站
  • 做爰 网站相册模板
  • 网站建设制作设计平台成色好的y31s标准版下载
  • 临沂网站建设 百度优化网站建设 团队
  • 白山建设局网站网站备案号要怎么查询
  • 关于做网站建设公司你应该知道的企业网站建设方式
  • 如何做网站温州推广平台
  • 环保推广哪个网站好站酷网官网进入
  • 怎么做垂直网站网站如何建立
  • 欧美风企业网站 英文模板怎样做网站域名
  • 在线图片处理网站固始县住房和城乡建设局网站
  • 网站建设学习培训企业公众号如何开通
  • 个人网站设计模板中文佛山市建设官方网站
  • 业务网站风格模板松山湖短视频seo排名
  • 网站建设实训的意义新闻类网站开发特点
  • 网站建设原型图在网上做试卷的网站
  • 建设厅教育培训网站网站怎样多语言
  • 新乡手机网站建设服务深圳市最新消息
  • htm网站的维护做烘焙的网站
  • 公司网站开发比选做网站需要注册公司
  • 优秀网站建设空间17一起做网站app
  • 网站建设招标书技术介绍wordpress分享小图片不
  • 网站都必须要备案吗洋气的广告公司名字
  • 企业网站制作流程江门关键词优化排名
  • 中国企业网官方网站wap网站模板
  • 六安市城乡建设网站网站建设技术员保密协议
  • 合肥做网站公自己搞个网站