自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 【pytorch深度学习】CIFAR10图像分类

通过简单的自定义神经网络,实现CIFAR10数据集图像分类任务。

2024-10-14 22:15:37 256

原创 【什么是B/S、C/S架构】

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。BS:(Browser/Server,浏览器/服务器模式),web应用 可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。

2024-09-21 12:22:08 304

原创 【GPL与LGPL】

如果您对遵循 LGPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承LGPL协议,不允许封闭源代码。但是如果您的程序对遵循 LGPL 的软件进行任何连接、调用而不是包含,则允许封闭源代码。简单的理解:开源授权协议GPL要求必须公开源码,LGPL如果不对源码进行修改则可以不开源。使用PySide6,如果只是对PySide6提供的接口进行调用而不对源码进行修改则可以不开源。如果您对遵循GPL的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承 GPL 协议,不允许封闭源代码。

2024-09-21 12:16:31 354

原创 【OpenCV】opencv官方开发文档

opencv官方开发文档链接:https://docs.opencv.org/4.x/d9/df8/tutorial_root.html

2024-09-20 16:40:03 247

原创 【PER编码】

这就是PER编码的作用。PER编码规则告诉我们如何将我们描述的人的信息翻译成一串数字和字节,以便它们可以在计算机之间传输,并且能够被正确地解码回来,就像我们可以将一本书的内容翻译成电脑可以理解的二进制代码一样。总的来说,选择PER编码的主要原因是在电力系统和自动化领域,通常需要在带宽有限的通信网络中传输大量数据,而PER编码能够提供较高的编码效率和数据压缩。所以,ASN.1是我们用来描述数据的语言,而PER是一种规则,告诉我们如何将这些描述转化成计算机可以处理的数据格式,以便进行网络通信和数据交换。

2024-09-20 14:48:03 918

原创 【余弦相似度】

又称为余弦距离,利用两个向量之间的夹角的余弦值来衡量两个向量的余弦相似度,两个向量夹角越小,余弦值越接近1。没有考虑向量的大小,只考虑他们的方向。以一个推荐系统为例,余弦相似度没有考虑到不同用户之间评分尺度的差异。余弦相似度的取值范围为[-1,1],越接近于1表示相似度越高。

2024-09-20 14:36:58 251

原创 【内积】内积计算公式及物理意义

当内积为正值时,两个向量指向大致相同方向(方向夹角小于90度)当内积为负值时,两个向量指向大致相反方向(方向夹角大于90度)当内积值为0时,两个向量互相垂直。内积又称标量积、点积、数量积。

2024-09-20 14:28:36 270

原创 【Python】关于np.unique()详解

布尔值,如果为 True,返回输入数组的唯一值的逆向索引数组。即对于输入数组的每个元素,在唯一值数组中的索引位置。int,可选参数,对多维数组进行操作时,指定沿着哪个轴进行唯一性计算。布尔值,如果为 True,则返回输入数组中唯一值的出现次数数组。bool值,如果为True,返回输入数组中唯一值的索引数组。用于获取数组中的唯一值,并按照升序返回。

2024-09-20 14:23:07 205

原创 【Markdown】输入空格方式

为零宽不连字,全称是Zero Width Non Joiner,简称“ZWNJ”,是一个不打印字符,放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。为“半角空格”,全称是“En Space”,en是字体排印学的计量单位,为em宽度的一半。名义上是小写字母“n”的宽度。为“零宽连字”,全称是“Zero Width Joiner”,简称“ZWJ”,是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。

2024-09-07 12:41:13 522

原创 【原发抵抗赖】

这意味着你不能在后来否认你发送了那封邮件,因为数字签名提供了证据证明这是你的行为。“原发抗抵赖”(Non-Repudiation)是信息安全领域中的一个重要概念,指的是在通信或交易中,发送方或参与方无法否认自己的行为或操作。它确保发送方不能在后续阶段否认发送过的信息、文件或操作,而接收方也无法否认收到的信息或操作。它类似于你在纸上签名确认了你的行为,只不过是在数字环境中实现的。当我们谈论"原发抗抵赖"时,我们在讨论一种确保人们不能否认他们的行为或者发送的信息的技术方法。

2024-09-07 12:20:17 232

原创 【C++】关于类的public、protected 、private

基类中的private成员在派生类中不可访问,但是仍然存在于派生类的内存布局中。基类中的protected成员在派生类中仍然是protected。基类中的protected在派生类中仍然为protected。基类中的protected成员在派生类中变为private。基类中的public在派生类中变为protected。基类中的public成员在派生类中变为private。基类中public成员在派生类中仍然是public。基类中的private在派生类中不可访问。基类中private在派生类中不可访问。

2024-09-07 12:10:57 214

原创 【RNN】循环神经网络RNN学习笔记

时间序列任务场景:语音识别生成一段音乐情感分析DNA序列分析机器翻译如何理解时间序列:特点:前后关联强,前因后果,后面产生的结果依赖于之前的结果标准神经网络建模的弊端:输入和输出在不同例子中可能有不同的长度一个像这样单纯的神经网络结构,并不共享从文本不同位置上学习到的特征参数量巨大(输入的网络特征往往是one hot 或者embedding向量,维度巨大)没有办法体现出时序上的前因后果RNN神经网络:网络结构:RNN特点:RNN前向传播公式:损失函数:整个

2024-08-29 17:03:15 436

原创 【CMake】学习笔记3

printf("我是一个程序猿, 我不会爬树...\n");++i)!!\n");return 0;在程序的第七行对DEBUG宏进行了判断,如果该宏被定义了,那么第八行就会进行日志输出,如果没有定义这个宏,第八行就相当于被注释掉了,因此最终无法看到日志输入出(上述代码中并没有定义这个宏)。在gcc/g++命令中通过参数 -D指定出要定义的宏的名字,这样就相当于在代码中定义了一个宏,其名字为DEBUG。

2024-08-20 22:05:36 551

原创 【CMake】学习笔记2

2. 动态库的链接具有传递性,如果动态库A链接了动态库B、C,动态库D链接了动态库A,此时动态库D相当于也链接了B,C,并且可以使用动态库B,C的方法。:在interface后面引入的库不会被链接到前面的target中,只会导出符号。有些时候我们编写的源代码并不需要将他们编译生成可执行程序,而是生成一些动态库或者静态库提供给第三方使用,下面来讲解cmake中生成这两类库文件的方法。:在public后面的库会被Link到前面的target中,并且里面的符号(库中定义的函数)也会被导出,提供给第三方使用。

2024-08-19 22:39:25 860

原创 【CMake】学习笔记1

CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有 Makefile(通过 make 命令进行项目的构建),大多是 IDE软件都集成了 make,比如:VS的 nmake、linux下的 GNU make、Qt 的 qmake 等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。

2024-08-17 17:04:25 725

原创 【Python OpenCV】使用OpenCV实现两张图片拼接

如何使用Python OpenCV实现两张图片的水平拼接和垂直拼接。

2024-08-16 16:04:02 647

原创 【Python单元测试】学习笔记3

PyTest是一个基于Python语言的第三方的测试框架使用@pytest.fixture定义定义一个student.py"""使用yield很方便在测试用力之前做setup, 之后做cleanup"""# setup# Action# assert。

2024-08-16 00:21:39 1120

原创 【Python单元测试】学习笔记2

Mock就是要模拟函数、方法、类的行为。

2024-08-15 22:23:23 601

原创 【已解决】CentOS离线安装docker和docker-compose

根据实际部署系统版本选择,例如 docker-compose-linux-x86_64,这里下载下来就是一个可执行文件。创建启动单元配置 /etc/systemd/system/docker.service,配置示例如下。将解压后的docker命令拷贝到/usr/bin下。选择自己需要的版本下载,这里以26.0.2为例。

2024-08-15 10:41:34 349

原创 【已解决】windows如何修改MAC地址

在公司的电脑上使用另一个网口连接网线,无法使用网络。原因是因为使用公司网络需要向公司申请,公司需要通过MAC地址开通上网权限。解决办法:通过将可以该网口的MAC地址绑定为可以上网的MAC地址。点击配置->高级->NetworkAddress, 将右边的值改为可以上网的MAC即可。打开设置->网络和Internet->以太网-> 更改适配器选项。

2024-08-14 09:26:33 529

原创 【Python单元测试】学习笔记1

用来验证一小段代码(单元)的正确性,例如只测试某个函数写的是否正确可以快速执行在独立的环境中执行在测试之前或者之后执行的函数或者方法被称之为Test Fixtures比如:在测试前需要先连接数据库,在测试后需要断开与数据建库的连接。

2024-08-13 21:09:41 850

原创 【Python】python中抽象类学习笔记

抽象类是一个不能被实例化的类,通常作为其他类的基类抽象方法是一个没有具体实现的方法一个抽象类可以有或者没有抽象方法, 但是一般来说定义抽象类的时候总会在类中定义抽象方法Python并没有直接支持抽象类,但是提供了一个模块(abc)来允许定义抽象类通过继承abc.ABC类定义一个抽象类pass上述代码中类虽然继承了ABC但是没有定义抽象方法,仍然可以被实例化。"""使用@abstractmethod来定义抽象方法"""passmain()代码报错:不能实例化一个带有抽象方法的抽象类。

2024-08-12 22:49:39 484

原创 【Python】python中“异常类“学习笔记

常用的异常类继承关系异常类的捕捉同时处理多个异常raise异常自定义异常通过继承Exception类来自定义一个异常类try:add(1,"2")print(err)

2024-08-11 23:57:21 454

原创 【YOLOV8】使用Ultralytics 进行 YOLOV8训练时YAML文件格式解析

【代码】【YOLOV8】使用Ultralytics 进行 YOLOV8训练时YAML文件格式解析。

2024-08-10 12:21:11 566

原创 【YOLOV8】YOLOV8模型训练train及参数详解

训练深度学习模型涉及为其提供数据并调整其参数,以便它能够做出准确的预测。Ultralytics YOLOv8 的训练模式专为有效、高效地训练目标检测模型而设计,充分利用现代硬件的能力。本指南旨在涵盖使用 YOLOv8 强大功能集训练自定义模型所需的所有细节,帮助你快速入门。

2024-08-10 11:39:39 3433

原创 【已解决】Recommend fixes are to train a new model using the latest ‘ultralytics‘ package

更新ultralytics版本。

2024-08-09 17:42:26 702

原创 【YOLOV8】将训练好的YOLOV8权重.pt转化为ONNX格式

当我们训练好yolov8模型时,如何将pt文件转化为ONNX格式。ultralytics官方提供了pt转onnx的接口。

2024-07-31 19:31:22 781

原创 【YOLOV8】YOLOV8模型导出export参数说明

以下是 YOLOv8 支持的导出格式。可以通过 format 参数将模型导出为任何格式,例如 format=‘onnx’ 或 format=‘engine’。导出的模型可以直接用于预测或验证,例如使用 yolo predict model=yolov8n.onnx。Ultralytics YOLOv8 的导出模式提供了多种选项,用于将训练好的模型导出到不同的格式,可以在不同平台设备上部署。将yolov8x.pt导出为ONNX格式。

2024-07-31 19:00:44 2840

原创 【LeetCode】字母异位词分组

输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。输入: strs = [“a”]输入: strs = [“”]strs[i] 仅包含小写字母。输出: [[“a”]]输出: [[“”]]

2024-07-24 23:09:12 464 1

原创 【Python】使用迭代器和生成器处理文件,使用小内存处理大文件

当我们在读取文件时,通常会占用较大内存,但是当内存有限的时候,我们应该如何去处理/读取文件呢1024**21024**2上面代码中,我们一次性将文件全部读取到内存中,然后对每一行数据进行处理当前内存使用:5.99MB峰值内存使用:6.01MB这只是一个较小的文件(文件大小576K),当处理文件大小为几GB甚至几十GB时候,严重超出系统内存大小,应该如何处理呢?1024**21024**2上述代码中,我们自己写了一个迭代器来一行一行的读取文件内存占用从降低至峰值内存从。

2024-07-24 10:37:06 314

原创 【Leetcode】两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。输入:nums = [2,7,11,15], target = 9输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]输入:nums = [3,2,4],target = 6输出:[1,2]

2024-07-22 23:30:25 344

原创 【Python】python中list的迭代

上述代码中,我们定义了一个nums列表,并且使用for循环对其进行遍历。其实整个过程就是迭代,所谓迭代,就是对数据集中每一个元素对其进行遍历。可以用一个形象的比喻:一个列表认为是一个仓库,现在要把仓库中每个东西点一遍,你来找一个人来做,这个人就是迭代器。上述代码输出,index表示索引,默认索引是从0开始的,那么我们是否可以指定索引开始值呢?上述代码中,enumerate可以接受第二个参数,表示索引起始值,必须为int类型。也可以用for循环来遍历,也就是说在in后面,可以放一个列表,也可以放一个迭代器。

2024-07-18 23:24:56 337

原创 【已解决】ImportError: libnvinfer.so.8: cannot open shared object file: No such file or directory

此时,将TensorRT-8.6.1.6/lib/ 下的所有库拷贝到/usr/lib/下。使用cp命令将libnvinfer.so.8拷贝到/usr/lib目录下。安装完成后,使用python测试导入tensorrt。

2024-07-18 10:10:55 1042

原创 【光伏发电功率预测】方法综述学习笔记2《光伏发电功率超短期预测方法综述》

大规模光伏并网时电网的安全问题日益突出,精确的功率预测能够为电网安全稳定运行提供可靠的数据支撑。目前国内外对光伏发电功率超短期预测展开了大量研究,但是在预测精度上还是有待进一步提高。文章主要从四个方面展开:影响因素、研究方法、预测难点、未来趋势。

2024-07-16 16:30:56 1162

原创 【Python】理解python中的*与**

例如要计算2乘3:重复功能:例如我们先要打印[1,1,1],'hahaha’可以使用以下代码实现打包:概念:打包是将多个值捆绑到一个容器中,这个容器可以是元组、列表、字典。上述代码中,第一个值被传入first,是一个整数,剩下的值都被传入了rest中,是一个列表,这是因为rest前面带有一个*,无论传入多少值都会被打包为一个列表。将*用于打包还常见于函数的形参:上述代码中将*args作为函数的参数传入,这意味着无论传入多少参数,都会被打包成一个序列。如果要在函数形参时使用**,是将关键字参数

2024-07-15 23:55:55 361

原创 【Python】理解python中的守护线程

将线程声明为守护线程,必须在start()方法调用之前设置,如果不设置为守护线程的程序会被无限挂起。这个方法和join()是相反的。当我们在程序运行中执行一个主线程,如果主线程又创建了一个子线程,主线程和子线程兵分两路,分别运行,那么当主线程完成想要退出时,会检验子线程是否完成。如果子线程未完成,则主线会等待子线程完成后再退出。但是有时候我们希望只要是主线程完成了,无论子线程是否完成,都要和主线程一起退出,这时候就可以将线程设置为守护线程。t.start()'''代码输出:startend。

2024-07-13 10:58:07 282

原创 【Python】理解python中threading.Thread的run()方法

在多线程编程中,threading.Thread类的run方法是一个核心方法,它定义了线程的活动。理解run方法对于掌握python多线程编程至关重要。

2024-07-13 10:29:26 484

原创 【光伏发电功率预测】方法综述学习笔记1

一般来说,对于光伏功率预测系统,业内的相关标准是系统的在线时间应大于99%,意味着需要连续不间断的运行。如果出现故障,将导致业务中断,无法正确进行功率预测。国内研究最多是超短期和短期光伏输出功率预测,它们能为电力调度部门提供准确依据,减少因光伏发电功率易波动而对电网造成的冲击,这也是最符合电力系统稳定性需求的。相反,中长期预测的研究很少,主要是因为预测所需的数据量很大,预测输出的时间序列太长,预测精度低将天气因素作为预测模型的输入特征,可以有效提升预测精度。

2024-07-12 11:54:46 1596

原创 【Python】不要将列表作为函数的默认参数

上述代码中定义了一个函数func,num和列表target作为参数,target默认是一个空列表,函数作用是将num放入到target中。当连续两次调用func时,第二次调用func时,第一次调用的结果被保存下来了,并在此基础上进行append操作。这是因为默认参数作为函数属性,函数定义时就被定义了,而不是在函数调用时才被定义,因此当我们使用默认参数时,都是在使用同一地址的变量。代码中将默认参数target设置为None,在函数func中进行判断,当target为None时,再定义为空列表。

2024-07-11 08:51:32 428

原创 【已解决】Error response from daemon: conflict: unable to delete 315e6bed79d8 (cannot be forced)

产生上述现象操作及原因:现在有一个镜像A,通过镜像A启动一个容器B,对容器B进行操作后,对容器B通过commit命令生成新的镜像C。此时通过docker rmi 删除镜像A就会出现上述问题。此时通过docker rmi 删除新的镜像C,虚悬镜像就会一起被删除,具体原因有待进一步探究。

2024-07-05 14:14:15 207

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除