- 博客(313)
- 资源 (2)
- 收藏
- 关注
原创 为什么多线程读写 shared_ptr 要加锁?
陈硕(giantchen_AT_gmail_DOT_com)2012-01-28我在《Linux 多线程服务端编程:使用 muduo C++ 网络库》第 1.9 节“再论 shared_ptr 的线程安全”中写道:(shared_ptr)的引用计数本身是安全且无锁的,但对象的读写则不是,因为 shared_ptr 有两个数据成员,读写操作不能原子化。
2023-04-14 10:34:29
735
1
原创 Linux Systemd type=simple和type=forking的区别
因为systemd service启动的服务进程都是systemd的子进程,所以,在服务进程启动时,总是由pid=1的systemd进程fork()一个子进程(子systemd进程),再在此进程分支中通过systemd.exec配置该子进程的环境,最后使用exec()去调用ExecStart指定的服务启动命令。所以,对于服务程序的开发人员来说,应尽早将主进程写入到PID文件中,比如可以在中间父进程fork完之后立即写入PID文件,然后再退出,而不是在fork出来的服务主进程内部由主进程负责写入。
2023-04-10 17:08:11
5464
1
原创 配置基于WSL2的Docker环境并支持CUDA
如果update参数无效,没有更新wsl,则说明你没有使用预览版的windows系统,wsl的版本低。也许你从NVIDIA、Docker、Microsoft看到的文档中告诉你大于某个版本号就可以,但我建议你使用。介绍的,我们可以在windows10中使用linux子系统。今天本文介绍如何在此基础上安装Docker并支持在wsl中使用GPU。去Docker官网下载,请不要使用下面这个脚本。如果结果看起来如同下列所示,说明是OK的。开启你需要使用docker的wsl发行版。命令不起作用是正常的。
2023-04-10 10:35:05
1446
原创 class与namespace的区别
但 namespace 不存在这个问题,因为,namespace 中定义的变量,就是一个实体,在任何情况下(只要在可见域内),对namespace A,A::M 的写法都是允许的。namespace是开放的,和class不同的是你可以在多个文件里面象同一个namespace里面添加东西。,不过他是封闭的,也就是说你只能在一个文件里面定义class包含什么(通俗点讲,就是一个class只能有一个头文件);但namespace是开发的,可以追加内容,而class的定义是一次性的。
2023-04-09 19:07:24
825
原创 ValueError:expected sequence of length 10 at dim 1 (got 1)
train_seq和 train_label 长度一不一样,一个有10个元素,另一个只有一个。创建mini batch时,因为以下代码导致出错:ValueError:expected。修改好的办法是, 在划分trainset, testset的时候, 就把数据转换成。是否有自动补全不确定,没有深入研究。内部机制要求两个列表维度一样。
2023-03-28 17:11:51
592
原创 王炸-GPT4.0的新能力与商业价值
GPT-4 是一个大型多模态模型(接受图像和文本输入,发出文本输出),虽然在许多现实世界场景中的能力不如人类,但在各种专业和学术基准上表现出人类水平的表现。OpenAI花了 6 个月的时间对对抗性测试程序和 ChatGPT 的经验教训迭代调整 GPT-4,从而在真实性、可控性和拒绝超出护栏方面取得了有史以来最好的结果(尽管远非完美)。在过去的两年里,OpenAI重建了整个堆栈结构,并与 Azure 共同设计了一台超级计算机。在GPT-3.5的基础上,大量测试与修复了一些错误并进行改进。结果,GPT-4训练运
2023-03-15 16:37:40
3939
原创 主码流与子码流
主码流与子码流是为了解决在网络情况不好时为了满足远程预览的流畅性降低码率,而不影响本地录像提出的双码流技术,即一路视频进入NVR后,NVR可以编码提供两种码流,主码流和子码流,主码流分辨率高于子码流,主码流用来录像,子码流用来网传。 这就叫双码流技术。目的是用于解决监控录像的本地存储和网络传输的图像的质量问题。 双码流能实现本地和远程传输的两种不同的带宽码流需求,本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子码流来获得流畅的图像和录像...
2022-05-25 13:55:56
5723
原创 天然气/化学污染物泄漏定量分析模型解读
天然气化学污染物事故发生后,会因事故处理不当以及应急方案不完善导致事故进一步扩大,造成巨大的人员伤亡与国家财产损失。本文给污染物事故发生后的救援及应急方案制定提供参考。1.天然气扩散模型高斯模型是目前较为广泛采用的气体扩散模型,其基于统计理论的正态分布假设来推算气体的扩散模式,分为高斯烟羽模型和高斯烟团模型。1.1.1 高斯烟羽模型若管道泄漏口为小孔,可认为泄漏为连续泄漏源,采用高斯烟羽模型模拟计算该泄漏气体的浓度分布,其表达式...
2022-05-24 10:52:05
998
原创 全自动化光学检测现状研究
近年来,随着全球科学技术的迅速发展,全世界液晶显示及相关产业发展规模日益增大,TFT-LCD及其相关产业的市场与生产制造商产业也随之不断地增加。最初,TFT-LCD技术以日本技术为世界主导,随后,韩国与中国台湾也随之逐渐的发展起来,并且这些年来每年的增速成倍上升,而TFT-LCD以低成本、出众的体积优势、高解析度以及高亮度等优势逐步占据显示器的主导地位,普遍用于智能手机,台式与笔记本电脑、多媒体会议终端显示屏、智能手表、车载多媒体终端和家用智能电视等生活与办公领域。...
2022-05-22 09:49:54
353
原创 伪彩色、真彩色和直接色区别与联系
伪彩色处理将彩色图像转换为灰度图像是一个不可逆的过程,灰度图像也不可能变换为原来的彩色图像。而某些场合需要将灰度图像转变为彩色图像;伪彩色处理主要是把黑白的灰度图像或者多波段图像转换为彩色图像的技术过程。其目的是提高图像内容的可辨识度。其中方法有,灰度分成法,灰度变换法。真彩色(true color)真彩色是指在组成一幅彩色图像的每个像素值中,有R,G,B三个基色分量,每个基色分量直接决定显示设备的基色强度,这样产生的彩色称为真彩色。例如用RGB 5∶5∶5表示的彩色图像,R,G,B各用5位,用
2022-05-16 15:29:27
1205
原创 python正则表达式
一、简介正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。二 、正则表达式中常用的字符含义1、普通字符和11个元字符:这里需要强调一下反斜杠\的作用:•反斜杠后边跟元字符去除特殊功能;(即将特殊字符转义成普通字符)•反斜杠后边跟普通字符实现特殊功能;(即预定义字符)•引用序号对应的字组所匹配的字符串。a=...
2022-05-04 08:58:35
410
原创 python中的正则表达式(re模块)
一、简介正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。二 、正则表达式中常用的字符含义1、普通字符和11个元字符:这里需要强调一下反斜杠\的作用:•反斜杠后边跟元字符去除特殊功能;(即将特殊字符转义成普通字符)•反斜杠后边跟普通字符实现特殊功能;(即预定义字符)•引用序号对应的字组所匹配的字符串。a=re...
2022-05-04 08:50:21
211
原创 Imagenet数据集1000类别中英文
英文{0: 'tench, Tinca tinca', 1: 'goldfish, Carassius auratus', 2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias', 3: 'tiger shark, Galeocerdo cuvieri', 4: 'hammerhead, hammerhead shark', 5: 'electric ray, cram.
2022-03-07 20:27:47
1209
原创 PyTorch中的contiguous解读
本文讲解了pytorch中contiguous的含义、定义、实现,以及contiguous存在的原因,非contiguous时的解决办法。并对比了numpy中的contiguous。contiguous 本身是形容词,表示连续的,关于 contiguous,PyTorch 提供了is_contiguous、contiguous(形容词动用)两个方法 ,分别用于判定Tensor是否是 contiguous 的,以及保证Tensor是contiguous的。PyTorch中的is_contiguous是
2022-01-25 14:00:20
25005
1
原创 Python super细节整理
算法最终需要封装成接口或服务供生产环境使用,这离不开面向对象编程,python中的单继承、多继承是如何实现的呢?super类不可或缺。声明版本:声明一下本文所使用的 Python 版本。默认用的是 Python 3,也就是说:本文所定义的类都是新式类。如果你用到是 Python 2 的话,记得继承 object:# 默认, Python 3class A: pass# Python 2class A(object): passPython 3 和 Python
2022-01-24 14:21:01
23490
2
原创 数字化项目管理:一种轻量级的持续交付方案
如何快速向用户交付可靠的产品, 是近年来持续交付研究和应用的热点问题, 传统的软件敏捷方法在交付过程中缺乏团队协作和标准化的构建流程, 大公司 DevOps 框架因体系复杂在中小规模企业应用时会产生迭代速度和产品质量相互制约的矛盾, 基于 DevOps 轻量级的持续交付框架, 在角色叠加、迭代频繁的项目场景中, 以脚本形式自动实现项目代码获取、测试、构建和部署, 完成项目持续交付. 通过行业调查、企业实践验证方案不仅可以缩短项目周期、提高交付质量, 还能够实现交付过程可视化, 促进软件质量不断改进..
2022-01-23 00:23:27
24356
原创 图像去雾算法总结
在雾天环境下,空气中的悬浮颗粒与光线之间发生相互作用,使得采集到的图像具有明显的退化现象,包括色彩饱和度低、边缘模糊等问题。含雾图像也会影响后续的图像分析和理解等任务。为了降低雾给室外成像系统带来的影响,图像去雾在计算机视觉等领域得到了广泛的重视。根据处理方式的不同,图像去雾可以大致分为图像增强和图像复原两大类方法。其中,图像增强是通过调节灰度等级改善对比度,以达到去雾效果。显然,它并没有考虑到含雾图像降质的本质,去雾的效果并不理想。图像复原的方法利用大气散射模型实现去雾,利用了造成含雾图像退化的物理原
2022-01-05 20:52:30
30262
1
原创 DFS 图遍历路径优化分析
深度优先搜索是图的遍历的一种重要方法,在一些网络拓补结构、DNA 网络等复杂图形分析中有很广泛的应用。传统的深度优先搜索,从某一节点开始,依次遍历此节点所有相邻且未被访问的节点,其下一跳节点的选择往往不是最优的。文章通过对当前节点所有未被访问的下一跳节点计算其到所有未访问节点路径总和,选择最优的一个节点作为下一跳节点,使得深度优先搜索在图的遍历过程中总的搜索路径大大减少。深度优先搜索算法对图的遍历分析图的遍历是指从图的某个节点开始,沿着某条路径对图中所有节点依次访问。解决图的遍历问题,目前主要.
2021-12-29 15:18:48
26903
原创 (原)python中matplotlib的颜色及线条控制
(原)python中matplotlib的颜色及线条控制https://www.cnblogs.com/darkknightzh/p/6117528.html转载于:(原)python中matplotlib的颜色及线条控制 - darkknightzh - 博客园参考网址:python - Named colors in matplotlib - Stack Overflowpython - Set markers for individual points on a line in M
2021-12-11 14:11:20
24609
1
原创 opencv查找/画轮廓 c++实现
#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include <math.h>#include <iostream>using namespace cv;using namespace std;static void help(){ cout << "\nThis program illustrates the use of find.
2021-12-01 09:13:29
24202
原创 数据集VOC/CIFAR10/CATDOG
目标检测:PASCAL VOC 数据集简介_Man-CSDN博客_voc数据集【猫狗数据集】pytorch训练猫狗数据集之创建数据集 - 西西嘛呦 - 博客园CIFAR10/CIFAR100数据集介绍 - WUST许志伟 - 博客园
2021-11-29 16:21:02
26022
原创 pytorch张量索引
tens = tensor([[ 101, 146, 1176, 21806, 1116, 1105, 18621, 119, 102, 0, 0, 0, 0], [ 101, 1192, 1132, 1136, 1184, 146, 1354, 1128, 1127, 117, 1463, 119, 102], [ 101, 6816, 1905.
2021-11-25 21:44:32
74595
原创 python 中 numpy 模块的 size,shape, len的用法
numpy 中有很多类方法可以对数组处理,下面将介绍三种常见的处理数组的方法.1.size的用法import numpy as npX=np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) number=X.size # 计算 X 中所有元素的个数X_row=np.size(X,0) #计算 X 的行数X_col=np.size(X,1) #计算 X 的列数 print("num
2021-11-25 21:37:44
74988
原创 python计算坐标点欧式距离_计算Python Numpy向量之间的欧氏距离实例
计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下:import numpydist = numpy.sqrt(numpy.sum(numpy.square(vec1 - vec2)))或者直接:dist = numpy.linalg.norm(vec1 - vec2)# 补充知识:Python中计算两个数据点之间的欧式距离,一个点到数据集中其他点的距离之和# 如下所示:# 计算数两个数据点之间的欧式距离import n
2021-11-25 21:33:46
79499
1
原创 Python-OpenCV中的resize()
Python-OpenCV中的resize()函数改变图像大小意味着改变尺寸,无论是单独的高或宽,还是两者。也可以按比例调整图像大小。这里将介绍resize()函数的语法及实例。语法函数原型cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])参数:参数 描述 src 【必需】原图像 dsize 【必需】输出图像所需大小 fx 【可选】沿水平轴的比例因子 fy 【可选】.
2021-11-25 15:49:53
83069
1
原创 目标检测(降低误检测率及小目标检测系列笔记)
深度学习中,为了提高模型的精度和泛化能力,往往着眼于两个方面:(1)使用更多的数据(2)使用更深更复杂的网络。**一、什么是负样本**负样本是指不包含任务所要识别的目标的图像,也叫负图像(Negtive Image)。以识别限速牌为例,如下所示,左图包含限速牌,为正样本,右图不包含限速牌,为背景图,即负样本。正样本负样本2.为什么要训练负样本训练负样本的目的是为了降低误检测率、误识别率,提高网络模型的泛化能力。通俗地讲就是告诉检测器,这些“不是你要检测的目标”。3.F
2021-11-25 14:13:41
86814
3
原创 小轮廓变大轮廓morphologyEx
openvc中morphologyEx()函数是一种形态学变化函数。数学形态学可以理解为一种滤波行为,因此也称为形态学滤波。滤波中用到的滤波器(kernal),在形态学中称为结构元素。结构元素往往是由一个特殊的形状构成,如线条、矩形、圆等。开运算(open):先腐蚀后膨胀的过程。开运算可以用来消除小黑点,在纤细点处分离物体、平滑较大物体的边界的 同时并不明显改变其面积。闭运算(close):先膨胀后腐蚀的过程。闭运算可以用来排除小黑洞。形态学梯度(morph-grad):可以突出团块(...
2021-11-25 00:31:19
74388
原创 流媒体服务器分发RTSP视频流并发压力测试
对于普通视频网站来说,并发数量是一个非常有参考价值的数据,在部分时间段,并发数量也许不大,但是也可能短时间内暴涨且没有上限,此时就需要系统具备良好的扩张能力和负载均衡能力。那么如何针对流媒体服务器分发的RTSP流进行并发压力测试了解系统的能力?本分和大家分享一下我们的测试过程。通过使用多路RTSP客户端进行拉流,即可达到并发压力测试。对于RTSP客户端的选择,可以选择开源的OpenRTSP客户端进行拉流测试。OpenRTSP的使用方法如下:1、下载源码wgethttp://www.live5
2021-11-24 21:10:18
75724
1
原创 pytorch中squeeze()和unsqueeze()函数介绍
一、unsqueeze()函数1. 首先初始化一个a可以看出a的维度为(2,3)2. 在第二维增加一个维度,使其维度变为(2,1,3)可以看出a的维度已经变为(2,1,3)了,同样如果需要在倒数第二个维度上增加一个维度,那么使用b.unsqueeze(-2)二、squeeze()函数介绍1. 首先得到一个维度为(1,2,3)的tensor(张量)由图中可以看出c的维度为(1,2,3)2.下面使用squeeze()函数将第一维去掉可见,维度已经变
2021-11-24 21:05:13
73964
原创 Pytorch搭建Retinaface人脸检测与关键点定位平台
学习前言一起来看看Retinaface的Pytorch实现吧。在这里插入图片描述什么是Retinaface人脸检测算法Retinaface是来自insightFace的又一力作,基于one-stage的人脸检测网络。同时开源了代码与数据集,在widerface上有非常好的表现。源码下载https://github.com/bubbliiiing/retinaface-pytorchRetinaface实现思路一、预测部分1、主干网络介绍Retinaface在实.
2021-11-24 21:02:16
75771
原创 脸部关键点检测(数据读取和处理)
参考资料:数据读取和处理官网教程对于初学者来说,编程遇到的头一个问题可能就是不知道怎么编写数据读取的代码以输入网络。本文主要讲解的就是编写该部分代码的常见方法和编程思路。内容基本是官方文档的翻译与总结。数据下载链接下载之后保存在data/faces路径下。里面一共有69张脸部图片,有一个csv文档作为金标准用于保存所有的关键点,每一张脸部图像有68个关键点。打开csv文件可以看到该文档以表格的形式保存着所有图片的文件名和对应关键点的坐标。单张图片和标签的读取在进入
2021-11-24 20:47:10
74996
原创 图片二分类在VGG16基础上finetune
# -*- coding: utf-8 -*-"""Created on ${DATE} ${TIME}@author: """import torchimport torchvision#preparemodel1_vgg16 = torchvision.models.vgg16(pretrained=True)#设置网络参数#读取输入特征的维度num_fc = model1_vgg16.classifier[6].in_features#修改最后一层的输出维度,即分类数.
2021-11-24 20:30:42
73552
原创 python矩阵array判断某个元素的个数
python中numpy包的array矩阵,判断某个元素的个数import numpy as npa=np.array([[ 2, 7, 4, 2], [35, 9, 1, 5], [22, 12, 3, 2]])print(np.sum(a==2)) ## 2的个数输出为3
2021-11-24 20:27:37
76169
1
转载 python logging模块 日志 (详细解析)
目录1 基本使用2 将日志写入到文件2.3 设置消息的等级2.4 捕获traceback2.5 多模块使用logging3 通过JSON或者YAML文件配置logging模块3.1 通过JSON文件配置3.2 通过YAML文件配置1 基本使用转自:Python 常用模块大全(整理) - 略微抖动 - 博客园配置logging基本的设置,然后在控制台输出日志,import logginglogging.basicConfig(level = logg
2021-11-24 19:55:44
75683
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人