Tensorflow占满内存问题解决
问题介绍项目中发现使用Tensorflow和keras架构的代码在Jetson上启动时会占满内存,导致系统卡顿,而这在电脑端并未发现。而使用memory_profiler插件分析,可发现代码本身占用内存不高,在电脑端测试内存占用943.44MB,其中模型占了556.2MB 图片测试部分占了103.7MB。而在板子上测试代码本身内存也只占了大约2200多M。因此怀疑是Tensorflow自身的问题。 问题分析经查阅资料,发现TensorFlow新API支持在物理GPU上设置内存增长。但是,这最终会耗尽所有内存。 默认情况下,TensorFlow会映射进程可见的所有GPU(取决于 CUDA_VISIBLE_DEVICES)的几乎全部内存。这是为了减少内存碎片,更有效地利用设备上相对宝贵的 GPU 内存资源。而在某些情况下,我们希望进程最好只分配可用内存的一个子集,或者仅在进程需要时才增加内存使用量。TensorFlow为此提供了两种控制方法。 第一个选项是通过调用 tf.config.experimental.set_memory_growth 来打开内存增长。此选项会尝试根据运行时分配 ...
OpenCV多线程方式处理视频(Python)
前言用多线程处理视频并用于目标检测能够加快处理的帧率,而Python的threading模块封装了相关的操作,通过编写功能类继承threading.Thread即可实现自己的逻辑:通过调用start()方法,线程实例开始在单独的线程上下文中运行自己的run()函数处理任务,直到线程退出。在此期间,主线程可以继续执行任务。当主线程任务执行结束时,主线程可通过设置全局状态变量告知子线程退出,同时调用join()方法等待子线程运行结束。 示例代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253import numpy as npimport cv2import threadingfrom copy import deepcopythread_lock = threading.Lock()thread_exit = Falseclass myThread(threading.Thread): def __init__(self, camera_ ...
蓝桥杯试题及答案分享(Python版)
比赛介绍蓝桥杯大赛的举办得到了教育部、工业和信息化部有关领导的高度重视,相关司局的大力支持,也得到了各省教育厅和各有关院校的积极响应,更得到了参赛师生的广泛好评,参赛学校超过 1200 余所,参赛规模已达四十万人次,取得了良好的社会效果。 省级在我们学校为B类,国家级则为A类,省级中获一等奖的可参加国家级,因此比赛含金量高,建议大家好好把握😊 其中个人赛软件类分: C/C++程序设计(研究生组、大学A组、B组、C组) Java软件开发(研究生组、大学A组、B组、C组) Python程序设计(大学组) Python组竞赛规则及说明组别本次竞赛不分组别。所有研究生、重点本科、普通本科和高职高专院校均可报名该组,统一评奖。 竞赛赛程全国选拔赛时长:4 小时。总决赛时长:4 小时。详细赛程安排以组委会公布信息为准。 竞赛形式个人赛,一人一机,全程机考。选手机器通过局域网连接到赛场的竞赛服务器。选手答题过程中无法访问互联网,也不允许使用本机以外的资源(如USB 连接)。竞赛系统以“服务器-浏览器”方式发放试题、回收选手答案。 参赛选手机器环境选手机器配置: X86兼容机器,内存不小于 4G ...
PyQt5的安装与使用
简介PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但不再使用QMake系统和Q_OBJECT宏。 PyQt5有超过620个类,6000个函数和方法,主要模块如下: QtCore:包含了核心的非 GUI 的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime 类文件、进程与线程一起使用。 QtGui:包含了窗口系统、事件处理、2D 图像、基本绘画、字体和文字类。 QtWidgets:包含了一系列创建桌面应用的 UI 元素。 QtMultimedia:包含了处理多媒体的内容和调用摄像头 API 的类。 QtBluetooth:包含了查找和连接蓝牙的类。 QtNetwork:包含了网络编程的类,这些工具能让 TCP/IP 和 UDP 开发变得更加方便和可靠。 QtPositioning:包含了定位的类,可以使用卫星、WiFi 甚至文本。 Enginio:包含了通过客户端进入和管理 Qt ...
PyTorch卷积与BatchNorm的融合
原理卷积的工作: z=w * x+bBN的工作: y=\gamma \frac{z-\mu}{\sqrt{\sigma^{2}+\epsilon}}+\beta把卷积带入BN: y=\gamma \frac{w * x+b-\mu}{\sqrt{\sigma^{2}+\epsilon}}+\beta融合后的新卷积: w^{\prime}=\gamma \frac{w}{\sqrt{\sigma^{2}+\epsilon}}b^{\prime}=\gamma \frac{b-\mu}{\sqrt{\sigma^{2}+\epsilon}}+\beta代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911 ...
梅林固件安装Clash
简介Merlin Clash是一款运行在KoolCenter软件中心(Arm版)上的Clash GUI插件。获取插件需加入Telegram群组-merlinclashcat,相信能看懂这篇的,都有翻墙技能,这里不再叙述。 环境准备路由器需要能支持刷固件,固件需要带软件中心,比如梅林固件。一般华硕、网件的路由器固件种类多,比较好刷。若是华硕路由器刷梅林固件可查看我之前写的-华硕路由器刷固件。其他型号的请自行查找是否有人对其开发相应的固件供刷机。 插件下载进入群组下载对应版本: 比如我的路由器是AC86U就下载ARM v8 HND版本,若是不知道自己该下哪个版本,群组里也提供了辅助工具: 安装打开[软件中心]-[离线安装],上传下载好的merlinclash的tar包并安装。 要是提示含非法关键词,安装失败的,可查看之前写的-解决梅林新版软件中心禁止安装含非法关键词的插件。 使用详细的使用和更多的技巧可参考官方WiKi。 我这里讲下主要的配置。 订阅插件支持SS|SSR|V2ray|Trojan|Clash订阅链接及ss://xxx|ssr://xxxx|vemss://xxx|tr ...
解决梅林新版软件中心禁止安装含非法关键词的插件
问题描述因为某些不可抗力的原因,梅林新版的软件中心离线安装科学插件的时候会出现下面的提示: 因此,为了安装插件,我们需要手动修改路由的安装脚本来跳过软件中心的检测。 解决① 进入路由[系统管理]-[系统设置]页面,更改[启用ssh]的选项为[LAN only],[允许使用密码登录]为是,开启路由器的SSH功能。 ② 使用ssh客户端连接路由器,用账号密码登录。不会的请自行百度,也可参照我之前的教程,下载Xshell之类的软件,登录服务器IP即为路由器的网关,华硕路由器默认(192.168.50.1),SSH端口如图,默认为22。这里就不再细讲了。 ③ 输入如下命令执行,即可: 1sed -i 's/\tdetect_package/\t# detect_package/g' /koolshare/scripts/ks_tar_install.sh 其原理就是编辑/koolshare/scripts/ks_tar_install.sh安装脚本文件,找到 detect_package()函数,把ILLEGAL_KEYWORDS这一行引号里面的内容删除。 因此,你也可 ...
ConvNeXt:重新设计纯卷积ConvNet
前言最近看到一篇挺有意思的文章,来自Facebook和加州伯克利团队设计并测试了纯ConvNet所能达到的极限命名为ConvNeXt。ConvNeXt完全由卷积网络构建,在准确性和可扩展性方面ConvNeXt取得了与Transformer具有竞争力的结果,达到87.8% ImageNet top-1 准确率,在COCO检测和ADE20K分割方面优于Swin Transformer,同时保持标准ConvNet的简单性和有效性。 介绍 这张图可以说是整篇论文的精华,光看这张图就知道该做什么了😏。 总结为: ① 宏观设计 ② ResNeXt ③ 反转瓶颈 ④ 卷积核大小 ⑤ 各种逐层微设计 内容就是对Transformer的trick进行梳理和模仿,把ResNet50从76.1一步步干到82.0。个人觉得挺有意思的。 训练策略优化(76.1-78.8)2021年timm和torchvision团队均有工作讲述如何通过优化训练策略来使resnet50性能提升到80以上。本文考虑到跟Swin Transformer的公平对比,训练策略没有完全follow前面的工作,但仍然可以对ResNet50 ...
JetBrains全系列软件激活教程
Jetbrains家的产品有一个很良心的地方,他会允许你试用 30 天(这个数字写死在代码里了)以评估是否你真的需要为它而付费。 因此推荐使用无限重置试用的方法白嫖,最终和永久激活使用无差异,也比破解稳定。 安装在Settings/Preferences... -> Plugins内手动添加第三方插件仓库地址:https://plugins.zhile.io搜索:IDE Eval Reset插件进行安装。 使用一般来说,在 IDE 窗口切出去或切回来时(窗口失去/得到焦点)会触发事件,检测是否长时间(25天)没有重置,给通知让你选择。(初次安装因为无法获取上次重置时间,会直接给予提示)。 您也可以手动唤出插件的主界面: a. 如果 IDE 没有打开项目,在 Welcome 界面点击 IDE 的菜单:Get Help -> Eval Reset b. 如果 IDE 打开了项目,点击 IDE 的菜单:Help -> Eval Reset 唤出的插件主界面中包含了一些显示信息,有 2 个按钮和 1 个勾选项: 按钮:Reload 用来刷新界面上的显示信息。 按钮 ...
LabelImg标注工具使用及数据格式解析
介绍LabelImg是目标检测数据标注工具,支持两种标注格式: VOC标签格式,标注的标签存储在xml文件 YOLO标签格式,标注的标签存储在txt文件中 环境准备确保电脑上安装python3+,其中windows和macOS推荐使用Anaconda等工具快速安装python。这里不再展开介绍。 安装自动安装(推荐)使用pip安装LabelImg安装是最简单的方式,安装完之后会自动把LabelImg添加到环境变量中。 打开终端输入如下命令安装: 1pip install labelimg 国内速度慢的可指定镜像源再安装: 1pip install labelimg -i https://mirrors.aliyun.com/pypi/simple/ 注:在部分老电脑上直接安装labelimg最新版有的不能成功,经测试安装1.8.0版本以下老版本可以,出错的可指定版本,安装这之下版本: 1pip install labelimg==1.8.0 手动安装需从官方下载源码:https://github.com/tzutalin/labelImg 从源码开始安装LabelImg,一般比较 ...