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

做网站广告收入网站内部优化工具

做网站广告收入,网站内部优化工具,php网站建设工程师,网站建设专业是干什么的1. NVIDIA DALI简介 NVIDIA DALI全称是NVIDIA Data Loading Library,是一个用GPU加速的数据加载和预处理库,可用于图像、视频和语音数据的加载和处理,从而为深度学习的训练和推理加速。 NVIDIA DALI库的出发点是,深度学习应用中…

1. NVIDIA DALI简介

NVIDIA DALI全称是NVIDIA Data Loading Library,是一个用GPU加速的数据加载和预处理库,可用于图像、视频和语音数据的加载和处理,从而为深度学习的训练和推理加速。

NVIDIA DALI库的出发点是,深度学习应用中复杂的数据处理pipeline,如数据加载、解码、裁剪、Resize等功能,在CPU上处理已经成为瓶颈,限制了深度学习训练和推理的性能及可扩展性。DALI库通过使用GPU来处理这些功能,并封装了pre-fetch、并行执行、批处理等功能,降低用户的编程难度。

NVIDIA可适配于多种深度学习框架,如TensorFlow、PyTorch、MXNet和PaddlePaddle。

2. NVIDIA DALI安装

目前NVIDIA DALI只支持Linux x64系统,且CUDA版本在CUDA 11.0以上。

对于CUDA 11.X版本,安装命令行:

pip install --extra-index-url https://developer.download.nvidia.com/compute/redist --upgrade nvidia-dali-cuda110

对于CUDA 12.X版本,安装命令行如下:

pip install --extra-index-url https://developer.download.nvidia.com/compute/redist --upgrade nvidia-dali-cuda120

3. 读取视频帧

在深度学习应用中,我们常常需要从视频文件或者图像序列构建数据库。这一节就通过一个小例子说明如何用NVIDIA DALI从视频文件中读取指定数量视频帧。

最简单的使用方式,是通过@pipeline_def修饰符来定义nvidia dali pipeline,如下例,我们定义一个从视频文件(通过filenames指定视频文件列表)读取指定数量视频帧(通过sequence_length指定)的pipeline。

# Define a video pipeline
@pipeline_def
def video_pipeline(filenames, sequence_length):videos = fn.readers.video(device='gpu', filenames=filenames, sequence_length=sequence_length, name='Reader')return videos

 然后对以上定义的pipeline实例化:

sequence_length = 25
video_directory = r'/home/grace/BSVD/datasets/DAVIS-training-mp4'
video_files = [video_directory + '/' + f for f in os.listdir(video_directory)]# Build the video pipeline
pipe = video_pipeline(batch_size=1, num_threads=2, device_id=0, filenames=video_files, sequence_length=sequence_length, seed=123456)
pipe.build()

实例化过程中,可以传入其他pipeline参数,如batch_size、num_threads等。

构建完成后,通过pipeline.run()来实现视频帧的输出,默认为RGB类型。

for i in range(0,20):pipe_out = pipe.run()sequence_out = pipe_out[0].as_cpu().as_array()print('i = {}, sequence shape = {}'.format(i, sequence_out.shape))# show_sequence(sequence_out[0])save_images(i, sequence_out[0])   # 保存读取到的图像序列

4. 读取图像序列

除了从视频文件中读取视频帧,NVIDIA DALI还提供从图像序列读取数据的功能。

参考nvidia dali官方说明文档中的一个示例,亲测有效。

from nvidia.dali import pipeline_def
import nvidia.dali.fn as fn
import nvidia.dali.types as types# Define a function for showing output image
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
%matplotlib inlinedef show_images(image_batch):columns = 4rows = (max_batch_size + 1) // (columns)fig = plt.figure(figsize = (24,(24 // columns) * rows))gs = gridspec.GridSpec(rows, columns)for j in range(rows*columns):plt.subplot(gs[j])plt.axis("off")plt.imshow(image_batch.at(j))# image sequence dir
image_dir = "data/images"
max_batch_size = 8# Define an image sequence reading pipeline
@pipeline_def
def simple_pipeline():jpegs, labels = fn.readers.file(file_root=image_dir)images = fn.decoders.image(jpegs, device='cpu')return images, labels# Build the pipeline
pipe = simple_pipeline(batch_size=max_batch_size, num_threads=1, device_id=0)
pipe.build()# Run the pipeline and show outputpipe_out = pipe.run()
images, labels = pipe_out
show_images(images)

输出结果如下:

除了以上基础用法,nvidia dali还集成了很多数据增广方法,如旋转、剪切、resize等等,今天由于时间关系,下次再继续补充吧。 

http://www.yayakq.cn/news/697230/

相关文章:

  • 非响应式网站改响应式周口建设路网站
  • 五原网站建设石家庄限号
  • 食品 骏域网站建设专家用servlet做外卖网站
  • 中国著名的个人网站免费店铺logo在线制作
  • 培训总结新网站seo
  • 微信 网站应用开发中国电信网站备案 流程
  • 静态网站用什么做最快给网站做选题
  • 外贸网站设计多少钱建设银行无锡分行网站
  • 手机在线电影网站廊坊建设网站企业
  • 凡科建设网站怎么保存外贸网站建设有什么需要注意的吗
  • 建网站什么框架wordpress更改图片上传路径
  • 网站虚拟主机公司wordpress shopme
  • 领卷网站怎么做开封 网站建设
  • 网站开发 怎样做费用结算泰安网络电视
  • 盐城市建设工程网站自学小程序开发需要学多久
  • 营销型网站建设怎么收费服务之家做网站简单吗
  • 12380网站建设存在的问题高清视频服务器
  • 菠菜网站的代理怎么做的网站建设公司北京华网天下实惠
  • 经营网站备案信息专业免费网站建设
  • 网站文章列表和图片列表排版切换代码wordpress导航调用代码
  • 网站建站工具有哪些企业查询宝在线查询
  • 易讯网站建设兰州网站建设索q479185700
  • 雄安建站服务深圳龙华有几个区
  • 做嗳啪啪 网站网站搭建教室
  • 做标签网站是干嘛的内江 网站建设
  • 网站做适配定西市建设厅官方网站
  • 企业网站开发韵茵建站牛商网做网站要多少钱
  • 做网站首选什么语言浙江省建设厅继续教育网站首页
  • 搜索引擎友好的网站有哪些特点吉林市 网站建设
  • 房地产企业网站开发加强学校网站建设的必要性