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

网站模板搭建黄骅市教育局

网站模板搭建,黄骅市教育局,老百姓网免费发布信息,17网站一起做网店浙江部署之后模型的运算基本上能快5倍。本地部署之后#xff0c;联网都不需要#xff0c;数据和隐私不像在网上那样容易泄露了。 模型部署的通用流程 各大厂商都有自己的推理工具。 训练的归训练#xff0c;部署的归部署#xff0c;人工智能也分训练端和部署端#xff0c;每一… 部署之后模型的运算基本上能快5倍。本地部署之后联网都不需要数据和隐私不像在网上那样容易泄露了。 模型部署的通用流程 各大厂商都有自己的推理工具。 训练的归训练部署的归部署人工智能也分训练端和部署端每一个端操心自己事就好了。 ONNX 1.安装ONNX需要的环境 # 如果Pytorch已经安装请忽略下一步 # pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu113# 安装工具 # pip install numpy pandas matplotlib tqdm opencv-python pillow -i https://pypi.tuna.tsinghua.edu.cn/simple# 安装onnx和onnxruntime # pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple # pip install onnxruntime -i https://pypi.tuna.tsinghua.edu.cn/simpleimport onnx print(ONNX 版本, onnx.__version__)import onnxruntime as ort print(ONNX Runtime 版本, ort.__version__)2.将训练好的模型转换为ONNX格式 import torch from torchvision import models# 有 GPU 就用 GPU没有就用 CPU device torch.device(cuda:0 if torch.cuda.is_available() else cpu) print(device, device)# 导入训练好的模型 model torch.load(../checkpoint/best_0.727.pth) model model.eval().to(device)# Pytorch模型转ONNX模型 x torch.randn(1, 3, 256, 256).to(device)with torch.no_grad():torch.onnx.export(model, # 要转换的模型x, # 模型的任意一组输入resnet18_fruit30.onnx, # 导出的 ONNX 文件名opset_version11, # ONNX 算子集版本input_names[input], # 输入 Tensor 的名称自己起名字output_names[output] # 输出 Tensor 的名称自己起名字) 3.验证onnx模型导出成功 import onnx# 读取 ONNX 模型 onnx_model onnx.load(resnet18_shizi.onnx)# 检查模型格式是否正确 onnx.checker.check_model(onnx_model)print(无报错onnx模型载入成功)# 以可读的形式打印计算图 print(onnx.helper.printable_graph(onnx_model.graph))4.连接摄像头使用ONNX Runtime格式的模型进行推理 FPS为 40左右为什么比没有部署前少了10个fps左右import osimport cv2 import numpy as np import pandas as pd import timefrom tqdm import tqdm # 进度条import torch import torch.nn.functional as F from torchvision import transformsimport onnxruntimefrom PIL import Image, ImageFont, ImageDrawimport matplotlib.pyplot as plt# 导入中文字体指定字体大小 font ImageFont.truetype(/opt/software/computer_vision/codes/My_codes/obeject_detection/tongjizhihaoxiong/data/SimHei.ttf, 32)# 载入onnx模型 model onnxruntime.InferenceSession(resnet18_shizi.onnx)# 载入类别名称 和 ID索引号 的映射字典 idx_to_labels np.load(/opt/software/computer_vision/codes/My_codes/obeject_detection/tongjizhihaoxiong/recognize_shizi/idx_to_labels.npy, allow_pickleTrue).item() # 获得类别名称 classes list(idx_to_labels.values())# 测试集图像预处理-RCTN缩放裁剪、转 Tensor、归一化 test_transform transforms.Compose([transforms.Resize(256),transforms.CenterCrop(256),transforms.ToTensor(),transforms.Normalize(mean[0.485, 0.456, 0.406],std[0.229, 0.224, 0.225])])# 处理帧函数 def process_frame(img_bgr):# 记录该帧开始处理的时间start_time time.time()img_rgb cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB) # BGR转RGBimg_pil Image.fromarray(img_rgb) # array 转 PIL## 预处理input_img test_transform(img_pil) # 预处理input_tensor input_img.unsqueeze(0).numpy()## onnx runtime 预测ort_inputs {input: input_tensor} # onnx runtime 输入pred_logits model.run([output], ort_inputs)[0] # onnx runtime 输出pred_logits torch.tensor(pred_logits)pred_softmax F.softmax(pred_logits, dim1) # 对 logit 分数做 softmax 运算## 解析图像分类预测结果n 5top_n torch.topk(pred_softmax, n) # 取置信度最大的 n 个结果pred_ids top_n[1].cpu().detach().numpy().squeeze() # 解析出类别confs top_n[0].cpu().detach().numpy().squeeze() # 解析出置信度## 在图像上写中文draw ImageDraw.Draw(img_pil)for i in range(len(confs)):pred_class idx_to_labels[pred_ids[i]]# 写中文文字坐标中文字符串字体rgba颜色text {:15} {:.3f}.format(pred_class, confs[i]) # 中文字符串draw.text((50, 100 50 * i), text, fontfont, fill(255, 0, 0, 1))img_rgb np.array(img_pil) # PIL 转 arrayimg_bgr cv2.cvtColor(img_rgb, cv2.COLOR_RGB2BGR) # RGB转BGR# 记录该帧处理完毕的时间end_time time.time()# 计算每秒处理图像帧数FPSFPS 1 / (end_time - start_time)# 图片添加的文字左上角坐标字体字体大小颜色线宽线型img_bgr cv2.putText(img_bgr, FPS str(int(FPS)), (50, 80), cv2.FONT_HERSHEY_SIMPLEX, 2, (255, 0, 255), 4,cv2.LINE_AA)return img_bgrdef view_video(video_path):# 设置显示窗口的大小width,height 800,600video cv2.VideoCapture(video_path)把摄像头设置为1980 x 1080video.set(cv2.CAP_PROP_FRAME_WIDTH,1920)video.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)video.set(cv2.CAP_PROP_FOURCC,cv2.VideoWriter.fourcc(M,J,P,G))if video.isOpened():video.read() 一帧一帧地读取open 得到的是一个布尔值就是 True 或者 Falseframe 得到当前这一帧的图像open, frame video.read()else:open Falsewhile open:ret, frame video.read()# 如果读到的帧数不为空那么就继续读取如果为空就退出if frame is None:breakif ret True:# !!!处理帧函数frame process_frame(frame)cv2.namedWindow(video,cv2.WINDOW_NORMAL)cv2.imshow(video, frame)# 50毫秒内判断是否受到esc按键的信息if cv2.waitKey(50) 0xFF 27:breakvideo.release()cv2.destroyAllWindows()if __name__ __main__:# 取前1个参数 和 摄像头的Idcamera_id 0view_video(camera_id)TensorRT和ONNX的区别 TensorRT和ONNX是深度学习模型优化和跨平台移植方面两个各有优势的工具。TensorRT是NVIDIA推出的用于深度学习模型优化的高性能库旨在最大程度地提高深度学习推理的效率和吞吐量。 它可以将训练好的神经网络模型转换为高度优化的代码以便在GPU上进行实时推理。 TensorRT针对不同类型的层使用了一系列高效的算法和技巧来加速计算并且可以通过与CUDA和cuDNN等NVIDIA库的集成以及利用GPU硬件加速来进一步提高性能。ONNXOpen Neural Network Exchange是由微软、Facebook和亚马逊等科技公司联合开发的跨平台深度学习框架 它借助中间表示的方式将深度学习框架之间的模型和权重参数相互转换使得用户可以方便地将自己训练好的模型迁移到其他框架或硬件平台上使用。 相比之下ONNX主要关注的是模型的跨平台移植性使得用户可以方便地在不同的硬件平台上部署模型并且支持多种硬件平台包括CPU、GPU和FPGA等。
http://www.zqtcl.cn/news/455486/

相关文章:

  • 雨花区区网站建设公司上传文章网站
  • 长春网站z制作自己做背景的网站
  • 浙江英文网站建设陕西百度推广的代理商
  • 怎么看网站蜘蛛网站价格评估 优帮云
  • 南充高端网站建设什么是搜索引擎营销
  • 找做网站的上什么appwordpress esc html
  • 如何做网站效果更好国外效果图网站
  • 西安seo网站推广优化芜湖代理公司注册
  • 某某网站建设策划书2000字长沙专门做网站公司
  • 成都pc网站建设莱州市网站
  • 推广平台网站热狗网黄浦网站建设推广
  • 网站跳出率因素徐州市城乡建设局官方网站
  • 中小型企业 公司网站建设特大新闻凌晨刚刚发生
  • 现在建设网站赚钱吗wordpress简约博客主题
  • 扬州网站商城建设价格凡科互动游戏作弊
  • 嘉定企业网站制作中国空间雷达卫星
  • dw做一个小网站教程厦门seo小谢
  • 江苏国龙翔建设公司网站济南百度推广公司
  • 北京理工大学网站网页设计html手册
  • 智能建站大师官网平台招聘页面设计模板
  • 网页制作三剑客不包括优化关键词推广
  • 济南设计网站中盛浩瀚建设有限公司网站
  • 做袜子娃娃的网站wordpress 文章卡片
  • 网站建设的相关新闻做网站需准备些什么问题
  • 深圳一建公司地址安徽网络seo
  • 永州网站建设gwtcms爱网站无法登录怎么回事
  • 常用于做网站的软件优质网站建设哪家好
  • 网站怎么做响应网络营销怎么做有特色
  • 电子商务企业网站的推广方式正邦设计怎么样
  • 哪个网站可以免费下载ppt模板简述网站开发的过程