截止到 2022.12.24, 相关工具情况如下
nvidia-smi 可知该驱动最高已支持到最新的 CUDA 12pip install -U nvidia-tensorrt --index-url https://pypi.ngc.nvidia.com
目前我们无法从 Nvidia 官方 Python Index 库安装 python-tensorrt, 好在有替代方法
Nvidia TensorRT 内置了 tensorrt-8.5.2.2-cp310-none-win_amd64.whl, 可以直接安装到 Python 虚拟环境中, 支持 Python 3.6 到 3.10
综上所述, 我们选择 Python 3.10 和 CUDA 11.7 来搭建环境
下载或克隆代码到某个路径, 如 C:\mrathena\develop\workspace\pycharm\yolov5-7.0
使用 Conda 创建并管理虚拟环境
conda create -n gpu python=3.10 # 创建环境
conda activate gpu # 激活环境
conda remove -n gpu --all # 删除环境
cd C:\mrathena\develop\workspace\pycharm\yolov5-7.0 # 切换工作路径到工程下
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 安装运行依赖
出现如 YOLOv5 2022-11-22 Python-3.10.8 torch-1.13.1+cpu CPU 的字样即说明环境配置成功
首次运行会自动下载权重文件 yolov5s.pt, 也可自行下载并放在工程根目录下
执行结果见 runs\detect\exp
默认依赖安装好后, Yolo 即可以以 CPU 的方式运行, 若想以 GPU 的方式运行, 还需配置 CUDA 环境
在 PyTorch 拿到 pytorch 的安装命令
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
原版命令如果卡在某一步, 无法成功安装, 可尝试使用下方的替代方法
# 配置清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
# 修改后的命令, 明确指定了各个模块的版本
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
# 参考内容见 https://blog.csdn.net/cxin917/article/details/127825180
# 版本关系见 https://github.com/pytorch/vision 和 https://github.com/pytorch/audio, 和执行 `conda search pytorch-cuda`
安装完成后, 执行 python, 输入如下内容, 如果返回 True, 则说明 CUDA 环境配置成功. 执行 exit() 退出 python 命令
import torch
torch.cuda.is_available()
有一个报错, 应该是 pillow 的原因
PIL(Python Image Library),Python 图像处理标准库。仅支持到 Python 2.7,故 Python 3 用的是 PIL 的兼容版本 Pillow
C:\mrathena\develop\miniconda\envs\gpu\lib\site-packages\torch\storage.py:11: UserWarning: The NumPy module was reloaded (imported a second time). This can in some cases result in small but subtle issues and is discouraged.
import numpy as np
Traceback (most recent call last):
File "C:\mrathena\develop\workspace\pycharm\yolov5-7.0\detect.py", line 43, in <module>
from models.common import DetectMultiBackend
File "C:\mrathena\develop\workspace\pycharm\yolov5-7.0\models\common.py", line 25, in <module>
from PIL import Image
File "C:\mrathena\develop\miniconda\envs\gpu\lib\site-packages\PIL\Image.py", line 100, in <module>
from . import _imaging as core
ImportError: DLL load failed while importing _imaging: 找不到指定的模块。
无需卸载, 通过如下命令直接强制替换问题版本即可. 切记不要使用 conda uninstall pillow 这个命令, 因为会删除其他很多东西
pip install pillow==9.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
出现如 YOLOv5 2022-11-22 Python-3.10.8 torch-1.13.1 CUDA:0 (NVIDIA GeForce RTX 2080, 8192MiB) 的字样即说明环境配置成功
# 本地安装 tensorrt 模块, 从百度网盘中下载对应 Python 版本的安装包即可
pip install tensorrt-8.5.2.2-cp310-none-win_amd64.whl
# 安装 onnx, 需要先将 pt 转为 onnx 再转为 engine
pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple
执行下方命令将 yolov5s.pt 导出为 yolov5s.engine
python export.py --weights yolov5s.pt --device 0 --include engine
将 detect.py 中的 weights 参数的默认值 yolov5s.pt 修改为 yolov5s.engine, 然后再运行
C:\mrathena\develop\miniconda\envs\gpu\python.exe C:/mrathena/develop/workspace/pycharm/yolov5-7.0/detect.py
detect: weights=yolov5s.engine, source=data\images, data=data\coco128.yaml, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs\detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1
YOLOv5 2022-11-22 Python-3.10.8 torch-1.13.1 CUDA:0 (NVIDIA GeForce RTX 2080, 8192MiB)
Loading yolov5s.engine for TensorRT inference...
[12/24/2022-22:30:04] [TRT] [I] [MemUsageChange] Init CUDA: CPU +410, GPU +0, now: CPU 14174, GPU 1213 (MiB)
[12/24/2022-22:30:04] [TRT] [I] Loaded engine size: 31 MiB
[12/24/2022-22:30:05] [TRT] [I] [MemUsageChange] Init cuDNN: CPU +699, GPU +258, now: CPU 14961, GPU 1503 (MiB)
[12/24/2022-22:30:05] [TRT] [I] [MemUsageChange] TensorRT-managed allocation in engine deserialization: CPU +0, GPU +0, now: CPU 0, GPU 0 (MiB)
[12/24/2022-22:30:05] [TRT] [I] [MemUsageChange] Init cuDNN: CPU +0, GPU +8, now: CPU 14930, GPU 1503 (MiB)
[12/24/2022-22:30:05] [TRT] [I] [MemUsageChange] TensorRT-managed allocation in IExecutionContext creation: CPU +0, GPU +0, now: CPU 0, GPU 0 (MiB)
image 1/2 C:\mrathena\develop\workspace\pycharm\yolov5-7.0\data\images\bus.jpg: 640x640 4 persons, 1 bus, 4.6ms
image 2/2 C:\mrathena\develop\workspace\pycharm\yolov5-7.0\data\images\zidane.jpg: 640x640 2 persons, 2 ties, 5.0ms
Speed: 720.5ms pre-process, 4.8ms inference, 3.9ms NMS per image at shape (1, 3, 640, 640)
Results saved to runs\detect\exp6
报缺少 nvinfer.dll / nvinfer_plugin.dll / nvonnxparser.dll / nvparsers.dll / cudnn64_8.dll / cublas64_11.dll / cublasLt64_11.dll 等做如下操作
下载百度网盘中的 lib 文件夹到某个位置, 并将该位置添加到 Path 环境变量
或自行下载 Nvidia TensorRT, 将其中的 lib 文件夹解压到某个位置, 并将该位置添加到 Path 环境变量, 下载百度网盘中 lib 文件夹中的 cudnn64_8.dll, 放到该 lib 文件夹中, 保证 Path 能覆盖到
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
运行bundleinstall后出现此错误:Gem::Package::FormatError:nometadatafoundin/Users/jeanosorio/.rvm/gems/ruby-1.9.3-p286/cache/libv8-3.11.8.13-x86_64-darwin-12.gemAnerroroccurredwhileinstallinglibv8(3.11.8.13),andBundlercannotcontinue.Makesurethat`geminstalllibv8-v'3.11.8.13'`succeedsbeforebundling.我试试gemin
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我试图在rails中了解rubygems是如何变得可以自动使用的,而不是在使用required的文件中gem? 最佳答案 这是通过bundler/setup完成的:http://bundler.io/v1.3/bundler_setup.html.它在您的config/boot.rb文件中是必需的。简而言之,它首先将环境变量设置为指向您的Gemfile:ENV['BUNDLE_GEMFILE']||=File.expand_path('../../Gemfile',__FILE__)然后它通过要求bundler/setup将所有ge
我是ruby的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽
我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO