自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(737)
  • 资源 (3)
  • 收藏
  • 关注

原创 卷积神经网络(CNN)

卷积神经网络的基本结构由以下几个部分组成:输入层(input layer),卷积层(convolution layer),池化层(pooling layer),激活函数层和全连接层(full-connection layer)。下面以图像分类任务简单介绍一下卷积神经网络结构,具体结构如下图所示。输入层在处理图像的CNN中,输入层一般代表了一张图片的像素矩阵。可以用三维矩阵代表一张图片。三维矩阵的长和宽代表了图像的大小,而三维矩阵的深度代表了图像的色彩通道。

2024-04-17 21:03:12 467

原创 图像检索与识别——词袋模型(Bag-of-features models)

计算机视觉单词袋是一种描述计算图像之间相似度的技术,常用于用于图像分类当中。该方法起源于文本检索(信息检索),是对NLP“单词袋”算法的扩展。在“单词袋”中,我们扫描整个文档,并保留文档中出现的每个单词的计数。然后,我们创建单词频率的直方图,并使用此直方图来描述文本文档。在“视觉单词袋”中,我们的输入是图像而不是文本文档,并且我们使用视觉单词来描述图像。

2024-03-06 20:43:06 443

原创 机器学习之特征工程

特征工程(Feature Engineering)特征工程是将原始数据转化成更好的表达问题本质的特征的过程,使得将这些特征运用到预测模型中能提高对不可见数据的模型预测精度。特征工程简单讲就是发现对因变量y有明显影响作用的特征,通常称自变量x为特征,特征工程的目的是发现重要特征。如何能够分解和聚合原始数据,以更好的表达问题的本质?这是做特征工程的目的。特征工程做的好,后期的模型调参更容易甚至不用调参,模型的稳定性,可解释性也要更好。

2024-01-11 20:58:51 1012 2

原创 机器学习之独热编码(One-Hot)

独热编码是指将离散型的特征数据映射到一个高维空间中,每个可能的取值都对应于高维空间的一个点,在这些点上取值为1,其余均为0,因此独热编码也被称为“一位有效编码”或“One-of-K encoding”。回到一开始的例子,性别特征:["男","女"],按照N位状态寄存器来对N个状态进行编码的原理:性别特征:["男","女"](这里N=2 二维数据)男 => 10女 => 01地区特征:["北京","上海,"深圳"](这里N=3,三维数据):北京 => 100上海 => 010。

2024-01-11 20:19:39 1015 1

原创 软件架构之事件驱动架构

事件驱动的架构是围绕事件的发布、捕获、处理和存储(或持久化)而构建的集成模型。某个应用或服务执行一项操作或经历另一个应用或服务可能想知道的更改时,就会发布一个事件(也就是对该操作或更改的记录),另一个应用或服务便可以获取和处理该事件,继而执行更多操作。

2024-01-10 20:31:58 780 1

原创 python的切片(slice)

在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。普通索引只取出序列中 一个下标 对应的元素,而切片取出序列中一个范围对应的元素。通俗一点就是在一定范围里面,用刀切出一部分,达到自己需要的一部分。

2023-12-23 17:21:27 839

原创 软件设计方法——领域驱动设计(DDD)

要做到这一点,离不开团队各个角色的沟通与协作。(2)值对象(Value Object):一个没有概念上标识符描述一个领域方面的对象,这些对象是用来表示临时的事物,或者可以认为值对象是实体的属性,这些属性没有特性标识但同时表达了领域中某类含义的概念。(6)仓储(Repository):是用来管理实体的集合,仓储里面存放的对象一定是聚合,原因是domain是以聚合的概念来划分边界的;(2)核心子域(Core Domain):子领域中最核心的叫核心子域,团队的核心资源应该用在核心子域上,因为它是产品成败的关键。

2023-12-03 21:15:47 1819 1

原创 软件理论——演进式架构设计

与传统的瀑布式设计方法相比,演进式设计更加灵活和可适应。在瀑布式设计中,设计通常是在项目的早期阶段完成的,并且需要经过大量的计划和准备。但是,在演进式设计中,设计和开发是相互交织的,随着需求的变化,设计也随之变化。通过演进式设计,开发人员可以更快地响应变化的需求,同时也可以更好地控制开发成本。1. 恰到好处的设计:根据当前需求进行必要的设计,但不必过度设计。3. 识别和重构疏漏:在迭代过程中识别和重构设计中的疏漏或错误。2. 逐渐迭代:在项目的不同阶段,逐步改进设计。

2023-12-03 20:54:50 704

原创 软件设计开发技术的演进

1966 过程化编程:取消goto,结构化编程,流程图建模,软件 = 算法 + 数据结构。2010+ 编程语言的演进: C++11,java8,Go,异步与并发,安全性。1995 4+1视图:场景视图,逻辑视图,开发视图,运行视图,物理视图。2007 MBSE SysML:建模语言,建模工具,建模方法,形式验证。2001 敏捷开发:TDD,重构,持续继承,代码表达力,演进式设计。1997 UML:用例图,静态图,行为图,交互图,实现图。1980+ 面向对象编程: C++,逻辑复用,抽象接口。

2023-11-22 21:05:04 240

原创 从业务到软件架构——软件建模

1)泛化: 指的是类之间的继承或者实现关系,继承使用空心三角箭头+实线表示[<|--],实现使用空心三角箭头+虚线表示[<|..],生命周期:在定义类关系时就必须确定,一开始有效。5)依赖:表示一个类需要依赖另一个类做方法的返回值、形参、局部变量或者调用另外一个类方法的依赖关系,使用箭头+虚线表示[..>],生命周期:在类的函数调用时有效。行为事物(交互、状态机);3)详细设计:使用逻辑视图(类图、对象图)和行为视图(状态图、活动图、合作图、顺序图),去描述实现系统的静态结构和动态结构方案。

2023-11-08 21:49:12 128

原创 估计、偏差和方差

统计领域为我们提供了很多工具来实现机器学习目标,不仅可以解决训练集上的任务,还可以泛化。基本的概念,例如参数估计、偏差和方差,对于正式地刻画泛化、欠拟合和过拟合都非常有帮助。

2023-09-29 11:50:02 604

原创 机器学习的超参数 、训练集、归纳偏好

超参数(Hyperparameters)和验证集(Validation Set)是机器学习中重要的概念,用于调整模型和评估其性能。超参数: 超参数是在机器学习模型训练过程中需要手动设置的参数,而不是从数据中学习得到的。这些参数影响模型的学习和泛化能力,例如学习速率、正则化项的强度、模型复杂度等。选择适当的超参数对于模型的性能和泛化能力至关重要。树的数量或树的深度矩阵分解中潜在因素的数量学习率(多种模式)深层神经网络隐藏层数k均值聚类中的簇数。

2023-09-29 11:23:27 476

原创 ON_COMMAND和ON_MESSAGE的区别

ON_COMMAND主要用于处理用户界面上的命令消息,例如菜单项、工具栏按钮等。ON_MESSAGE主要用于处理自定义消息,通常用于应用程序特定的通信或自定义行为。根据消息的类型和用途,你可以选择使用适当的宏来建立消息映射,以便正确处理不同类型的消息。ON_COMMAND和ON_MESSAGE的区别_Andrewniu的博客-CSDN博客。

2023-09-10 12:14:26 530

原创 BEGIN_MESSAGE_MAP,END_MESSAGE_MAP和ON_COMMAND

在MFC中,消息响应需要BEGIN_MESSAGE_MAP,END_MESSAGE_MAP和ON_COMMAND这些宏,这些宏的定义通常位于afxwin.h头文件中。

2023-09-10 12:06:15 312

原创 MFC中的类继承图的基本框架

在类的层次结构中,应用程序类CWinApp是一个基于MFC应用程序的最外层对象容器,它不仅拥有诸如实例句柄等需要被传送到WinMain()函数中去的参数,还包含了应用程序的主框架窗口,当主框架窗口被关闭时,应用程序也就跟着结束了。CView类是在使用文档/视图结构的应用程序中视图对象的基类,它是用户的主要操作界面。从图中可知,在MFC中大多数的类都派生于CObject类,它的主要作用是为子类提供一些基本的功能,这些派生类构成了MFC应用程序的基本框架,它们各自的功能描述如表1所示。包含应用程序的数据集。

2023-09-09 10:42:34 497

转载 std::move失效问题

在C++中,std::move是一个用于将对象转移所有权的函数模板,它将对象的状态从一个对象转移到另一个对象,通常用于优化移动语义。从代码可以看出,std::move本质上是调用了static_cast做了一层强制转换,强制转换的目标类型是。那么,为什么我们通常使用std::move实现移动语义,可以将一个对象的数据移给另外一个对象?结合本文最初的问题,在lambda中move没有生效,显然也是std::move强转的类型不是。然后触发了移动构造函数,在移动构造函数中,完成了对象b的数据到对象a的移动。

2023-09-06 22:00:05 324

原创 DECLARE_DYNCREATE(DECLARE_DYNAMIC)与IMPLEMENT_DYNCREATE(IMPLEMENT_DYNAMIC)

主要用于支持RTTI。你可以根据你的需求选择适当的宏组合来满足你的类的需求。看源码,发现这两组宏的实现是有细微差别的,需要配合使用。主要用于支持对象的动态创建和RTTI,而。

2023-09-02 11:25:53 213

原创 IMPLEMENT_DYNCREATE的分析

是一个宏(macro),通常与宏一起在MFC(Microsoft Foundation Classes)框架中使用。它的作用是为一个派生自CObject的MFC类提供运行时类型信息(RTTI)和对象的动态创建支持。具体来说,它允许在运行时确定对象的实际类型,这对于对象的类型检查和转换非常有用。你可以使用宏来获取对象的类信息。类可以通过类名字符串在运行时动态创建对象。这对于动态加载类并创建对象的场景非常有用,例如在插件系统中。

2023-09-02 11:00:27 379

原创 python的sort与sorted

sorted()函数可以对任意可迭代对象进行排序,返回一个新的排序后的列表,原列表不会受到影响。sorted()函数可以接受一个可选参数key,用来指定排序的关键字。sort 方法是列表的方法,用于在原地对列表进行排序,即直接修改原始列表,不返回新的列表。它可以接受两个可选参数:key 和 reverse。reverse 是一个布尔值,用于控制升序还是降序排列。sort 方法没有返回值,它直接修改了调用它的列表。key 是一个函数,用于指定排序的依据;

2023-08-31 21:18:31 315

原创 python中lambda的用法

尽管 lambda 表达式对于编写简单的函数很有用,但请注意,它们通常用于定义一次性的小函数。对于更复杂的函数或需要多行代码的函数,建议使用。表达式是一种匿名函数的方式,用于创建简单的、小型的函数。它通常在需要一个函数,但不需要定义一个完整的函数(使用。这个 lambda 表达式接受一个参数。这里我们使用 lambda 表达式作为。这里我们使用 lambda 表达式作为。参数,按名称的长度进行排序。函数的过滤条件,只保留偶数。关键字)的情况下使用。关键字来定义命名函数。

2023-08-31 20:40:52 433

原创 python的可哈希对象

一、介绍在Python中,可哈希(hashable)是指一种对象类型,该类型的对象可以用作字典的键(keys)或集合(sets)的元素。可哈希的对象必须是不可变的,即创建后不能被修改。这确保了哈希值的稳定性,因为哈希值是根据对象的内容计算得出的。可哈希对象需要具有一个哈希函数(hash function),这个函数将对象映射到一个唯一的整数,即哈希值。这个哈希值用于在字典或集合中快速查找或比较对象。二、 可哈希对象与不可哈希的对象不可哈希的对象包括列表、集合和字典等可变对象,因为它们可以在创建后修改。

2023-08-30 22:38:34 1852

原创 __call__函数

在Python中,__call__函数是一个特殊的方法,用于使一个对象可以像函数一样被调用。当一个对象定义了__call__方法时,它就成为了一个可调用对象。

2023-08-30 22:21:09 178

原创 异步迭代器

实现了 __aiter__() 和 __anext__() 方法的对象。__anext__ 必须返回一个 awaitable对象。async for 会处理异步迭代器的 __anext__() 方法所返回的可等待对象,直到其引发一个 StopAsyncIteration 异常。在这个例子中,AsyncIterable是一个异步迭代器,它每次产生一个元素,并在产生每个元素后等待1秒。一、什么是异步迭代器?

2023-08-30 22:17:45 184

原创 python的asyncio事件循环

asyncio是Python标准库中的一个异步编程框架,它提供了一个事件循环(event loop),用于协调异步任务的执行和结果的返回。在asyncio中,事件循环是一个非常重要的概念,它是异步编程的核心。等待异步任务的完成。调度异步任务的执行。处理异步任务的结果。

2023-08-30 22:07:29 445

原创 python的异步编程async

在Python 3.5中引入了async和await关键字,用于异步编程。async关键字用于定义一个协程(coroutine),而await关键字则用于等待一个协程完成。注:协程(coroutine)是是一种轻量级的线程,但相对子线程而言,协程更为一般和灵活,在实践中没有子线程那样使用广泛。协程更适合于用来实现彼此熟悉的程序组件,如协作式多任务、异常处理、事件循环、迭代器、无限列表和管道。使用async和await关键字可以大大简化异步编程的代码,使其更易于理解和维护。

2023-08-30 21:50:56 428

原创 Python中@property和@setter的用法

语法:@函数名称.setter。setter装饰器用来创建一个可写的属性,它必须在@property装饰器的后面,且被setter修饰的函数的名称必须与property保持一致。如果使用property进行修饰后,又在调用的时候,方法后面添加了(), 那么就会显示错误信息。用法:可以使用@property装饰器来创建。,@property装饰器会将。,这样可以防止属性被修改。

2023-08-27 11:31:13 631

原创 机器学习之数据清洗

数据清洗是机器学习中的一个重要步骤,它涉及对原始数据进行预处理和修复,以使数据适用于机器学习算法的训练和分析。数据清洗的目标是处理数据中的噪声、缺失值、异常值和不一致性等问题,以提高数据的质量和准确性。

2023-08-21 21:21:29 780

原创 python 运行机制

文件,它可以更快地被 Python 解释器加载和执行,从而提高代码的执行速度。这是因为解释器无需再次解析和编译源代码,而是直接加载并执行已编译的字节码。文件是与特定版本的 Python 解释器相关的,不同版本的解释器可能会生成不兼容的。文件被用作代码的缓存,它们存储在与源代码相同的目录下。文件是 Python 编译后的字节码文件,它是通过将。文件时,需要确保目标环境使用与编译时相同版本的解释器。文件的源代码编译为二进制形式而生成的。文件时,Python 解释器会自动检查是否存在对应的。

2023-08-19 11:40:14 500

原创 python的全局解释锁(GIL)

全局解释锁(Global Interpreter Lock,GIL)是在某些编程语言的解释器中使用的一种机制。在Python中,GIL是为了保证解释器线程安全而引入的。GIL的作用是在解释器的执行过程中,确保同一时间只有一个线程可以执行Python字节码。这意味着在多线程的情况下,同一时刻只有一个线程可以真正地执行Python代码,其他线程只能等待。这是因为GIL会在解释器的关键部分进行加锁,阻止其他线程的执行。

2023-08-19 11:30:15 399

原创 functools.wrap的使用

是 Python 标准库中的一个函数,用于帮助创建装饰器时保留被装饰函数的元数据(如函数名、文档字符串等)。在使用装饰器时,如果不使用,则被装饰函数的一些元数据可能会丢失或被覆盖。

2023-08-19 10:45:30 388

原创 Python中的“ @”

这是Python装饰器的语法,使用@符号,表示将装饰器函数放在被装饰函数的上方。当调用被装饰函数时,实际上是调用了装饰器函数,装饰器函数可以在调用被装饰函数之前或之后执行一些额外的操作。#funA 作为装饰器函数#...fn() # 执行传入的fn参数#...@funA实际上,上面程序完全等价于下面的程序:#...fn() # 执行传入的fn参数#...#...

2023-08-19 10:35:15 609

原创 globals()与locals()函数

在Python中,globals()和locals()是两个内置函数,用于获取当前作用域内的全局和局部命名空间中的变量和对象。

2023-08-16 20:36:47 365

原创 python的 __all__ 用法

在Python中,__all__通常用于定义模块的公开接口。在使用语句时,此时被导入模块若定义了__all__属性,则只有__all__内指定的属性、方法、类可被导入;若没定义,则导入模块内的所有公有属性,方法和类。这可以帮助开发者明确地指定哪些符号是模块的公共API,以防止不必要的符号被导入。

2023-08-16 20:00:49 690

原创 Python的heapq模块

模块是Python标准库中的一个模块,提供了对堆(heap)数据结构的支持。

2023-07-26 21:24:17 1881

原创 python的可迭代对象

在Python中,可迭代对象是指实现了__iter__()方法的对象,它可以通过调用iter()函数返回一个迭代器对象。可迭代对象可以是容器对象(如列表、元组、集合、字典等),也可以是自定义的对象。

2023-07-26 20:26:46 1702

原创 Python的nonlocal与global关键字

nonlocal关键字用于在嵌套函数中访问和修改外部函数的局部变量。global关键字用于在函数内部访问和修改全局变量。需要注意的是,使用nonlocal和global关键字时,要确保在使用之前已经有对应的变量存在。否则,会引发NameError异常。此外,过度使用global和nonlocal可能会导致代码可读性和维护性的下降,因此应谨慎使用,并优先考虑使用函数参数和返回值来进行变量传递和修改。python 函数嵌套和nonlocal关键字_只待风起的博客-CSDN博客。

2023-07-22 14:43:21 141

原创 zip()和zip(*)

在Python中,zip()和zip(*)是两种不同的用法。一、zip()函数:zip()函数是一个内置函数,用于将多个可迭代对象(如列表、元组等)的对应元素打包成一个个元组,返回一个迭代器。它将输入的可迭代对象按照索引位置一一对应地组合在一起,直到最短的可迭代对象耗尽。在上述代码中,将numbers和letters两个可迭代对象按照索引位置一一对应地组合在一起,返回一个迭代器。通过将迭代器转换为列表,我们可以查看打包后的结果。二、zip(*)

2023-07-22 14:20:13 370

原创 python的闭包

Python 中的闭包(Closure)是指一个函数对象(称为内部函数)捕获并引用了其所在函数(称为外部函数)中的变量,即使外部函数已经执行完毕内部函数仍然可以访问和操作外部函数中的变量。闭包在函数式编程中具有重要的作用,可以用于实现许多有用的功能和模式。必须有一个内部函数。内部函数必须引用外部函数中的变量。外部函数必须返回内部函数。闭包的一个重要特性是它可以记住外部函数中的状态。每次调用外部函数时,都会创建一个新的闭包,每个闭包都保留了自己的外部函数变量的状态。

2023-07-22 11:55:27 892

原创 getattr, __getattr__, __getattribute__和__get__区别

是一个描述符协议(Descriptor Protocol)中的魔法函数,用于定义描述符对象的获取行为。描述符可以被用作类的属性,通过访问和设置描述符属性,可以触发。使用上面的getattr()方法获取属性时,也是同样的调用关系,只不过只有在。是一定会被调用的,无论属性存不存在,首先都会调用这个魔法方法。在描述符协议中,当通过实例访问描述符属性时,解释器会自动调用描述符对象的。是python内置的一个函数,它可以用来获取对象的属性和方法。可以用来获取对像的属性和方法,需要注意的是,如果通过。

2023-07-17 22:02:02 344

原创 python的魔法函数

在Python中,魔法函数是以双下划线__开头和结尾的特殊函数。它们在类定义中用于实现特定的行为,例如运算符重载、属性访问、迭代等。__init__: 这是一个特殊的构造函数,在创建类的实例时自动调用,用于初始化对象的属性。__str__和__repr__: 这两个函数用于定义对象的字符串表示形式。__str__返回可读性较好的字符串,而__repr__返回一个准确的表示对象的字符串,通常可以用于重新创建该对象。__len__: 这个函数用于返回对象的长度,可以通过内置的len()函数调用。和。

2023-07-17 21:50:43 371

HalconShowTest (1) (1).zip

c#,c++,halcon联合,界面使用wpf,底层c++,halcon的库,实现一张图片的显示。未来可以继续扩展,调用halcon的函数,这是一个基本的demo

2020-06-09

WindowsFormsApp1.zip

GDI+显示图片,使用winform,实现使用鼠标拖拽,画矩形框

2019-10-30

RulerControlForWPF-master.zip

实现类似word文档的标尺功能,标尺可以缩放,有cm(厘米)或者inch(英寸)两种模式

2019-10-11

空空如也

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

TA关注的人

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