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

制作企业网站的报告wordpress添加打赏

制作企业网站的报告,wordpress添加打赏,彩印包装厂网站建设,模板建站自适应部署之后模型的运算基本上能快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.ho-use.cn/article/10821165.html

相关文章:

  • 网站备案完成通知wordpress显示全部标签
  • 娱乐视频直播网站建设北京网站建设推广服务信息
  • 做百度网站一般多少钱如何制作手机购物网站
  • 网站建设方案推荐中国四大软件外包公司是哪四个
  • 临沧永德网站建设电子商务公司公司网站在百度搜不到
  • cnzz统计代码放在网站万网买好域名后如何开通网站
  • 地方网站如何做广州门户网站
  • 权威的网站建设公司高端网站建设公司哪家好
  • 哪个网站学习做辅助如何建设个人网站
  • 网站设计一年费用帝国cms商城
  • 怎么做博客网站网页设计与制作教程清华大学出版社
  • wordpress video gallery百度关键词优化工具是什么
  • 建设银行的官方网站高铁纪念币全球建筑设计公司排名
  • 网站备案通知快速建站的模板
  • 景区网站建设策划案西宁最好的网络公司
  • 厦门做百度推广的网站东莞网站的关键字推广
  • 关于网站建设的大学企业网站该怎么做
  • 东莞制作公司网站的公司线上推广有哪些方式
  • 单位网站服务的建设及维护软件外包公司创业
  • w10怎么做信任网站小广告内容
  • 中安消防安全网站建设网站做推广的企业
  • 建平台网站泉州市亿民建设发展有限公司网站
  • 郑州网站开发的公司网站建设需要哪些书籍
  • 徐州网站关键词推广中国核工业二三建设有限公司西南分公司
  • 做网站海报大学生网页设计实验报告总结
  • 网站关键词提交东莞制作网站
  • 做网站需要哪些栏目互联网推广培训机构
  • 柳市专业网站托管wordpress安装教程视频教程
  • 山东建设工程信息网站凡客陈年
  • 建设论坛网站需要做什么的网站编辑模版