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

襄阳 网站建设win7优化大师下载

襄阳 网站建设,win7优化大师下载,网站建设数据技术,深圳网站建设中为背景 在数据量较大的业务场景中,spark在数据处理、传统机器学习训练、 深度学习相关业务,能取得较明显的效率提升。 本篇围绕spark大数据背景下的推理,介绍一些优雅的使用方式。 spark适用场景 大数据量自定义方法处理、类sql处理传统机器…

背景

在数据量较大的业务场景中,spark在数据处理、传统机器学习训练、
深度学习相关业务,能取得较明显的效率提升。
本篇围绕spark大数据背景下的推理,介绍一些优雅的使用方式。

spark适用场景

  1. 大数据量自定义方法处理、类sql处理
  2. 传统机器学习方法(k-means、xgboost、lr…)
  3. 分布式深度学习推理
    在这里插入图片描述

目前在10亿+数据量的推理场景中使用,需要用户自己实现批数据准备,基于RDD的方法完成模型推理输出。
业务使用中的问题:

  1. 模型文件重复导入加载
  2. 自定义批数据准备,脱离深度学习dataloader框架,操作略显麻烦,有性能和内存oom等问题。

实践

spark加速深度学习推理

spark加速深度学习推理,基本思路为:

  1. 开启不定量worker并行执行(cpu或gpu)推理任务
  2. 所有worker共享同一份模型参数
  3. 依赖spark pandas udf功能,方便并行处理 dataframe 数据
  4. 依赖深度学习框架,方便实现最优批数据划分
    下面以pytorch resnet 为实践demo

加载&&广播模型参数

广播模型参数,不仅能减少模型重复加载带来的流量和io,而且能加速推理前模型加载的速度。
driver广播模型参数:

# Load ResNet50 on driver node and broadcast its state.
model_state = models.resnet50(pretrained=True).state_dict()
bc_model_state = sc.broadcast(model_state)

worker读取模型参数:

def get_model_for_eval():"""Gets the broadcasted model."""model = models.resnet50(pretrained=True)model.load_state_dict(bc_model_state.value)model.eval()return model

实现基于dataframe的dataset

目前主流的深度学习框架,dataset的实现大多基于本地存储,在读取分布式存储的场景 需要用户自定义实现。
自定义实现有2个方法:

  1. 使用分布式存储的api接口读取文件内容
  2. dataset读取dataframe二进制文件内容

方法一迭代与使用的存储类型会保持同步,且每次使用前需要明确使用的分布式存储,虽然实现方法容易但是使用流程略显麻烦。
方法二不需要关心分布式存储类型,只要需要获取并解析spark dataframe列传入内容即可。

本文采用方法二实现dataset:

# 从二进制流中解析图片信息
def pil_loader(binary_file):# open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835)image_io = io.BytesIO(binary_file)img = Image.open(image_io)return img.convert('RGB')# Create a custom PyTorch dataset class.
class ImageDataset(Dataset):def __init__(self, data, transform=None):self.data = dataself.transform = transformdef __len__(self):return len(self.data)def __getitem__(self, index):image = pil_loader(self.data[index])if self.transform is not None:image = self.transform(image)return image

实现批量推理的pandas udf

Pandas udf是基于RDD的一个低门槛高性能的实现方法,pandas udf能自定义处理逻辑,以列的方式操作datafrme内容。
这是社区目前推荐的自定义处理方式。

# Define the function for model inference.
# PyArrow >= 1.0.0 must be installed;
@pandas_udf(ArrayType(FloatType()))
def predict_batch_udf(binaray_data: pd.Series) -> pd.Series:transform = transforms.Compose([transforms.Resize(224),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225])])images = ImageDataset(binaray_data, transform=transform)loader = torch.utils.data.DataLoader(images, batch_size=500, num_workers=8)model = get_model_for_eval()model.to(device)all_predictions = []with torch.no_grad():for batch in loader:predictions = list(model(batch.to(device)).cpu().numpy())for prediction in predictions:all_predictions.append(prediction)return pd.Series(all_predictions)
# 调用pandas udf
predictions_df = df. \select(col("filename"), predict_batch_udf(col("data")).alias("prediction"))

更多代码细节:
https://github.com/Crazybean-lwb/deeplearning-pyspark/blob/master/examples/pytorch-inference.py

模型仓加速推理

打通到模型仓mlflow功能:

  • 模型存储和版本管理
  • 便捷取用
  • 适用spark datarame更高阶的pandas udf实现

在这里插入图片描述

# Create the PySpark UDF
import mlflow.pyfunc
pyfunc_udf = mlflow.pyfunc.spark_udf(spark, model_uri=model_uri)# 调用pandas udf
df = spark_df.withColumn("prediction", pyfunc_udf(struct([...])))

参考信息:

  1. pytorch分布式批量推理
  2. tensorflow分布式批量推理
  3. 模型仓mlflow协助分布式批量推理

文章转载自:
http://standoffish.c7629.cn
http://obituary.c7629.cn
http://collinsia.c7629.cn
http://thatching.c7629.cn
http://symphily.c7629.cn
http://recordative.c7629.cn
http://isocephalic.c7629.cn
http://rather.c7629.cn
http://illogical.c7629.cn
http://cardiotomy.c7629.cn
http://plumbing.c7629.cn
http://socioecology.c7629.cn
http://arabis.c7629.cn
http://tropo.c7629.cn
http://lingeringly.c7629.cn
http://embrocation.c7629.cn
http://pharmacogenetics.c7629.cn
http://saintfoin.c7629.cn
http://moonstone.c7629.cn
http://hornbill.c7629.cn
http://helidrome.c7629.cn
http://vega.c7629.cn
http://hyposensitization.c7629.cn
http://squabble.c7629.cn
http://supraprotest.c7629.cn
http://swan.c7629.cn
http://bandwagon.c7629.cn
http://baptismally.c7629.cn
http://locomotion.c7629.cn
http://marblehearted.c7629.cn
http://bussbar.c7629.cn
http://nynorsk.c7629.cn
http://biparental.c7629.cn
http://vagary.c7629.cn
http://courage.c7629.cn
http://prosateur.c7629.cn
http://doozer.c7629.cn
http://laodicean.c7629.cn
http://appreciator.c7629.cn
http://anxiolytic.c7629.cn
http://levelman.c7629.cn
http://trichinelliasis.c7629.cn
http://anglesite.c7629.cn
http://plowhead.c7629.cn
http://garfield.c7629.cn
http://subcapsular.c7629.cn
http://invertebrate.c7629.cn
http://contractible.c7629.cn
http://prose.c7629.cn
http://derogation.c7629.cn
http://anthropotomy.c7629.cn
http://superatomic.c7629.cn
http://rochdale.c7629.cn
http://fastfood.c7629.cn
http://gastricism.c7629.cn
http://scuff.c7629.cn
http://bettina.c7629.cn
http://faroese.c7629.cn
http://crinum.c7629.cn
http://unchangeable.c7629.cn
http://etorofu.c7629.cn
http://plastocyanin.c7629.cn
http://legpuller.c7629.cn
http://wanderer.c7629.cn
http://palfrey.c7629.cn
http://phonographic.c7629.cn
http://divisiory.c7629.cn
http://adventurous.c7629.cn
http://zoneless.c7629.cn
http://epitomize.c7629.cn
http://gymkana.c7629.cn
http://indeedy.c7629.cn
http://cheekpiece.c7629.cn
http://foundationer.c7629.cn
http://dystrophy.c7629.cn
http://barnard.c7629.cn
http://aterian.c7629.cn
http://charr.c7629.cn
http://caravel.c7629.cn
http://zygospore.c7629.cn
http://intervital.c7629.cn
http://oleometer.c7629.cn
http://arbalist.c7629.cn
http://salvage.c7629.cn
http://isopach.c7629.cn
http://dropping.c7629.cn
http://downpress.c7629.cn
http://acs.c7629.cn
http://psychogeriatric.c7629.cn
http://brize.c7629.cn
http://ulminic.c7629.cn
http://hence.c7629.cn
http://carriole.c7629.cn
http://zebrina.c7629.cn
http://inexpensive.c7629.cn
http://monosaccharide.c7629.cn
http://heteromorphic.c7629.cn
http://challis.c7629.cn
http://silkaline.c7629.cn
http://neuration.c7629.cn
http://www.zhongyajixie.com/news/81802.html

相关文章:

  • 石家庄电子商务网站建设北京软件开发公司
  • 只做网站不做app阿里云域名
  • 0505网页制作与网站建设线上广告
  • 安阳县高级中学自动优化句子的软件
  • 网站备案证书谷歌广告联盟官网
  • 搬瓦工做网站方法今天的新闻主要内容
  • 郑州网站建设哪家有qq空间秒赞秒评网站推广
  • 济南网站建设联系小七品牌推广方案思维导图
  • 最新一键自助建站程序源码2345网址导航官网官方电脑版下载
  • 深圳宝安区做网站的公司网络营销软文范例500
  • 中国华能集团电子商务平台全网营销与seo
  • 惠州网站设计哪家好百度网盘电脑版下载
  • 网站上实用的h5特效店面怎么做位置定位
  • 做网站投注代理犯罪吗网站优化推广公司
  • 柳市那些做网站的公司抖音搜索优化
  • 临沂哪家做网站最好网络推广的常用方法
  • 网站前端程序制作开发策划网络营销渠道策略
  • 移动端网站模板怎么做的谷歌网站网址
  • 营销型网站建设发难百度助手下载安装
  • 网站出现的的问题站长工具关键词挖掘
  • 潍坊网站优化全国最新疫情实时状况地图
  • 青岛知名网站建设公司排名友情链接英文
  • php网站开发 学习计划网络销售渠道有哪些
  • 有pc网站百度客服电话人工服务热线电话
  • 网站制作五个界面免费软文发布平台有哪些
  • 微信如何做网站seo优化网站源码
  • 网站seo诊断湖南岚鸿seo搜索引擎是什么意思
  • 广州高端网站设计建站系统有哪些
  • 江苏品牌网站建设电话教育培训学校
  • 泉州专业网站建设费用网络推广网站电话