- 博客(216)
- 收藏
- 关注
原创 警告 C4819:该警告表示文件中存在当前代码页无法表示的字符。你可以通过以下方式解决这个警告:
使用UTF-8 BOM保存文件有助于确保在多种环境下,文件能够被正确解析和编译。这种做法在处理包含多种语言或特殊字符的源代码时尤其重要,能够避免由于编码不一致导致的问题。在Windows环境中,由于默认字符编码可能限制了某些字符的表示,使用UTF-8 BOM成为一个良好的实践。
2024-11-04 18:15:29
177
原创 PCH 警告: 头停上点不在文件范围内。未生成IntelliSensePCH 文件
一般就是头文件引用了新的头文件,也就是引入的头文件有依赖,把新的依赖的include放入包含目录即可。
2024-11-04 18:11:56
334
原创 c++头文件的一次导入多个头文件
你可以创建一个名为的文件,内容如下:然后,在你的源代码中只需包含这个自定义的头文件:// 创建一个 2x3 的 xarray// 打印数组return 0;是一种用于防止头文件被重复包含的指令。
2024-11-04 18:10:00
724
原创 利用vcpkg管理visual studio C++ 工具包(内容包括:CMake,Git)(模仿anaconda,python,numpy,matplotlib.pyplot,PIL.Image)
你可以在任意目录下使用vcpkg命令安装库,但安装的文件会自动存储到你设置的vcpkg目录下,而不会在当前工作目录中创建任何文件。这使得管理安装的库变得更加方便。vcpkgvcpkg提供了丰富的 C++ 库,覆盖科学计算、图形学、机器学习、并发编程等领域,可以根据具体项目需求选择相应的库,避免手动安装和配置依赖的麻烦。三、CMake的下载vcpkg使用CMake来编译和管理其下载的库。CMake 是一个跨平台的构建系统,可以帮助生成项目的构建文件,因此vcpkg依赖 CMake 来下载、构建和配置依赖库。
2024-10-31 15:42:47
762
原创 cv2.imdecode()与cv.imread()的使用场景,是否可以相互替换
虽然这两个函数都可以用于读取图像数据,但它们在功能和使用场景上有所不同。一般情况下,如果从文件中读取图像,通常使用。是 OpenCV 库中用于读取图像的两个不同函数,它们在使用场景和功能上有所不同,因此不能完全相互替换。因此,如果图像存储在文件系统中并且不需要在内存中进行其他处理,使用。然而,如果图像数据已经存在于内存中,例如通过网络流或其他来源加载到内存中,此时使用。会更合适,因为它可以直接解码内存中的数据,避免了从文件系统中读取数据的开销。如果需要从内存中的数据解码图像,则使用。
2024-04-01 16:50:41
2714
原创 详细解释python列表的+,append,extend
在 Python 中,列表是一种有序、可变的数据类型,用于存储多个元素。方法用于将一个列表的所有元素添加到另一个列表的末尾。运算符用于连接两个列表,返回一个新列表;方法用于向列表末尾添加一个元素;
2024-04-01 16:27:26
700
原创 acaconda中pip安装opencv-python失败
python3.6版本对应的opencv-python的版本是4.5.3.56。注意opencv-python的版本要与python版本一致,
2024-03-18 09:06:52
616
原创 python中timeit.timeit()详细解释
函数会自动计算并消除一些因素,例如函数调用的开销和系统负载的变化,以提供更准确的执行时间测量。中的一个函数,用于测量代码块的执行时间。它提供了一个简单而方便的方法来评估代码的性能。函数的返回值是执行代码块的总体执行时间,以秒为单位。,其中包含要测量执行时间的代码块。的执行时间,重复执行1,000次,并打印结果。在上述示例中,我们定义了一个函数。下面是一个示例,演示如何使用。是Python标准库。
2024-03-05 08:48:36
1298
1
原创 python透视变换
为了正确计算透视变换矩阵,需要按照逆时针顺序提供这四个点。# 源图像中的四个点坐标和目标图像中对应的真实坐标。# 计算透视变换矩阵。
2024-03-04 09:16:34
583
原创 详细解释time.time()
由于时间戳是一个浮点数,它可以包含小数部分,用于表示更精确的时间。函数用于获取当前时间的时间戳,它返回一个浮点数,表示从 1970 年 1 月 1 日午夜开始经过的秒数。需要注意的是,时间戳的值是相对于特定的时间区域和时钟设置的。因此,在不同的计算机和环境中,可能会有微小的差异。但在大多数情况下,时间戳的精度和相对值是相似的。变量将保存当前时间的时间戳,它是一个浮点数,精确到小数点后的秒数。函数,你可以方便地获取当前时间的时间戳,并在程序中进行时间相关的计算和操作。以下是一个代码示例,展示如何使用。
2024-02-22 10:04:19
1922
原创 @property 修饰器的作用
因为@property写在provide函数前面,所以@property的作用就是将provide函数方法变为属性,也就是调用时无需括号。装饰器可以将一个方法转换为属性,使其在使用时可以像访问属性一样进行调用,而不需要使用括号。总而言之,通常在Python中,实例化一个类需要使用括号,以调用类的构造方法并创建类的实例对象。括号用于调用类的构造方法,创建类的实例对象。当你使用类名后跟括号时,相当于调用了类的构造方法,创建了一个类的实例。在调用时,带括号的成为属性,可直接输出属性值。上述代码与下面代码等同。
2024-02-21 14:25:19
789
原创 Batch Normalization这一步骤究竟做了哪些操作
缩放和平移:对于每个通道,采用可学习的缩放因子(scale factor)和平移因子(shift factor),对标准化后的数据进行缩放和平移操作。标准化:对于每个通道,使用计算得到的均值和方差,将当前批次中每个样本在该通道上的数值进行标准化,使其具有零均值和单位方差。标准化:对于每个样本,在每个特征(通道)上减去均值,并除以方差的平方根。计算均值:对于每个通道(channel),计算当前批次中所有样本在该通道上的均值。计算方差:对于每个通道,计算当前批次中所有样本在该通道上的方差。
2024-02-19 17:53:50
391
原创 在 Python 中,setattr()与getattr() 解释
函数会将指定对象的属性名设置为给定的值。如果属性不存在,则会创建一个新的属性并赋予相应的值。如果属性已经存在,则会修改属性的值为新的值。函数可以方便地在运行时动态地设置对象的属性,这在某些情况下非常有用,特别是当你需要根据条件或用户输入来设置属性时。是一个内置函数,用于动态地设置对象的属性。它接受三个参数:对象、属性名和属性值。属性,并分别赋予了相应的值。最后,我们通过访问对象的属性来验证属性的设置结果。在上面的示例中,我们创建了一个名为。下面是一个示例,演示了如何使用。的类,并实例化了一个。
2024-02-19 17:29:29
638
原创 python中map()函数详细解释
函数会同时从每个可迭代对象中取出一个元素,并将它们作为参数传递给函数进行处理。这样可以方便地对多个可迭代对象进行操作,并将结果组合在一起。是一个Python内置函数,它接受一个函数和一个或多个可迭代对象作为参数,并将该函数应用于可迭代对象的每个元素,返回一个包含结果的迭代器。函数会根据传入的可迭代对象的长度,以最短的可迭代对象为准。如果一个可迭代对象比其他可迭代对象短,那么在。函数对于每个可迭代对象中的元素,将其作为参数传递给。的结果中,超出该可迭代对象长度的部分将被忽略。函数,它们将被并行迭代。
2024-02-18 17:16:47
636
原创 python中list.pop()什么意思
方法可以带一个可选的参数,即要删除的元素的索引。如果未提供索引参数,默认情况下将删除并返回列表中的最后一个元素。方法不仅会从列表中删除元素,还会返回被删除的元素。您可以将其存储在变量中以便后续使用。是一个列表(List)对象的方法,用于从列表中移除并返回指定索引位置的元素。方法两次,从列表中删除元素并打印删除的元素和更新后的列表。方法之前,最好检查列表是否为空或列表长度是否大于索引。在这个示例中,我们首先创建了一个包含整数的列表。如果尝试从空列表中调用。在 Python 中,
2024-02-18 09:42:17
2001
原创 python中range的补充
与之相比,如果你创建一个包含整个范围的列表,这将占用与范围内所有元素相关联的实际内存空间。对于大范围的整数序列,这可能导致内存占用量很大,而且创建和初始化整个列表可能会很慢。对象在内存中更为节省的原因主要是因为它并不实际存储整个范围内的所有元素,而是根据需要生成这些元素。对象的惰性计算使其在处理大范围的整数序列时更为高效和节省内存。对象在内存中占用的空间是固定的,因此对于大范围的整数序列,在处理大范围的整数序列时更为高效,尤其是当范围非常大时。对象是一种特殊的序列类型,用于表示范围内的整数序列。
2024-02-06 11:01:07
483
原创 python中np.argsort(一维数组)用法解释
这表示原始数组中最小的元素是在索引 3 处,其次是索引 1 处,以此类推。是 NumPy 中用于返回数组排序索引的函数。当你传递一个一维数组给。时,它会返回一个按照升序排列原始数组索引的数组。返回的是排序后的索引。,即原始数组的升序排列。
2024-02-06 10:50:24
973
原创 python中numpy切片方法介绍
的所有行的第一列数据。这个操作返回一个包含所有行的第一列数据的一维数组。这是因为我们取的是第二行(索引 1)的第四列(索引 3)的元素。是一个二维数组,每一行有两列(假设是 (x, y) 坐标)。是 NumPy 中的切片操作,用于获取二维数组。是 NumPy 中的切片操作,用于获取二维数组。),然后取每行的第一列数据,即 x 坐标。返回的是一个包含一个元素的二维数组。
2024-02-06 10:44:07
485
原创 python中numpy生成随机数的方法大全
生成一个形状为 (2, 3) 的正态分布的随机数数组,均值为2,标准差为0.5。# 生成一个在 [1, 5) 范围内形状为 (2, 3) 的均匀分布的随机数数组。# 生成一个在 [1, 10) 范围内形状为 (2, 3) 的随机整数数组。生成指定形状的标准正态分布(均值为0,标准差为1)的随机数。生成指定形状的在[0, 1)之间均匀分布的随机数。# 生成一个形状为 (2, 3) 的随机数组。# 生成一个形状为 (2, 3) 的随机数组。生成指定均值和标准差的正态分布的随机数。
2024-02-06 10:26:04
1370
原创 python中自定义装饰器并使用
在 Python 中,装饰器是一种特殊的语法,用于修改或增强函数或方法的行为。装饰器通常用于在不修改原始函数代码的情况下,为函数添加额外的功能或行为。装饰器可以用于添加额外的功能,如日志记录、性能分析、缓存等,而不需要修改原始函数的实现。装饰器可以将一些通用的功能包装成装饰器,然后可以在多个函数中重复使用,提高代码复用性。前前前前前前前前前前前前前前前前前前前前。print("我定义的函数")print("我定义的函数")print("我定义的函数")print("我定义的函数")
2024-02-04 10:21:09
452
原创 python中装饰器的使用
虽然类方法可以在类的实例上调用,但它们的主要目的是为了在不使用实例的情况下进行操作。工厂方法(Factory Methods):类方法可以作为工厂方法,用于创建和返回类的实例。类级别的操作:类方法可以执行与类本身相关的操作,而不涉及实例的特定状态。例如,可以使用类方法来检查或修改类级别的属性,或者在类层面上执行某些计算或操作。在这两种情况下,实例方法和类方法都可以在类的实例上使用。实例方法可以访问实例的属性和方法,而类方法可以访问类的属性和方法。类方法存在的目的是为了在不创建类的实例的情况下使用类的方法。
2024-02-04 10:01:45
1092
原创 在类中定义中,类方法的第一个参数名什么时候用self,什么时候用cls
使用 self 访问实例属性或调用其他实例方法。# 不使用 self 或 cls,与类和实例无关。# 使用 cls 访问类属性或调用其他类方法。,取决于这个方法是实例方法还是类方法。在类中,方法的第一个参数通常命名为。
2024-02-02 18:01:23
782
原创 python的内置函数 isinstance
是 Python 内置函数,用于检查一个对象是否是指定类或类型元组的实例。是一个元组,这样就能处理单一类型和多类型的情况。可以用来判断参数是否符合预期的类型。在泛型类型的处理中,
2024-02-02 17:44:17
397
原创 python中T = TypeVar(‘T‘)的解释
通常被用作表示类型的占位符,以表示可以在使用时指定的具体类型。这样的定义允许在函数或类中使用通用的类型,并在实际使用时替换成具体的类型。是相同的,都代表这个泛型类型变量的名字。就成为一个占位符,允许我们在代码的不同部分使用相同的抽象类型。它并不是函数的赋值、类的实例化,也不是函数的重命名。的构造函数接受一个字符串参数,用于给泛型类型变量起个名字。这样的注解提供了类型提示,使得在函数的实现中,你可以确信。类来创建一个泛型类型变量,通常用于表示一个通用的类型。,它接受一个列表,列表的元素的类型是。
2024-02-02 17:30:27
1039
原创 python中关于对参数进行类型注解,比如冒号:,比如 ->
这种类型注解可以帮助其他开发者理解函数的预期输入和输出类型。在运行时,Python 解释器会忽略这些类型注解,它们主要是为了提供更好的代码文档和静态类型检查的支持。需要注意的是,类型注解是可选的,而不是强制性的,因此即使没有注解,函数也是有效的 Python 代码。在Python中,冒号:通常用于对函数参数和返回值进行类型注解。类型注解提供了对代码的额外说明,但它们并不会影响程序的执行。符号用于对函数的返回值进行类型注解。
2024-02-02 16:53:54
474
原创 python中一些关于下划线的约定
这是一种约定,而不是 Python 的强制规则。程序员通常使用单个下划线来表示这是一个内部变量,不应该被外部直接访问或修改。这样的变量通常被认为是类的内部实现的一部分。,是一种约定,用于指示这是一个特殊的命名,通常用于类的特殊属性或方法。这种约定称为名称修饰(name mangling)。在 Python 中,双下划线。是一个用于表示内部使用的变量。开头和结尾的变量,如。
2024-02-02 16:01:28
363
原创 python中的可迭代对象以及迭代器__iter__()
迭代器协议是一种 Python 协议,它定义了对象应该如何支持迭代。方法检查索引是否小于数据的长度,如果是,返回当前索引位置的元素并将索引递增;在 Python 中,可迭代对象是指能够通过迭代器进行遍历的对象。方法的对象,通常是迭代器本身。这些都是 Python 中常见的可迭代对象,可以通过。列表是有序的,可以通过索引访问元素。集合是无序的,不重复的元素集合。字符串是不可变的字符序列,可以通过。方法,该方法返回一个迭代器对象。循环遍历对象时,它会调用对象的。字典是键值对的集合,可以通过。
2024-02-02 15:14:23
887
原创 python中numpy的后缀框访问
如:上文中,array[tumple] 的意思是访问array[tumple[0]]的那个通道中对应的array[tumple[1]]的那个通道中对应的等等的满足的数组或元素。如:上文中,array[list] 的意思是访问array[list[0]],array[list[1]],等等。array[[0,1]就代表array的深度序号为0的那个5行6列的数组以及深度序号为1的那个5行6列的数组。如果array.shape = (2,3) ,则此时array[[0,1]就代表array的第0行和第1行。
2024-02-02 10:28:04
350
原创 python中random.shuffle()的用法
custom_random = random.Random(42) # 使用固定的随机数种子,以保证可重复性。,这可以用于保证在相同种子下生成的随机序列是相同的,有助于实验的可重复性。是原地操作,不返回新的序列。如果需要一个新的打乱后的列表,可以使用。函数用于将一个可变序列(通常是列表)中的元素随机排列,属于。,不会返回新的序列,直接改变传入序列的顺序。在例子2中,使用了一个自定义的随机数生成器。# 例子1:打乱列表元素的顺序。# 例子2:使用随机数生成器。
2024-02-02 09:15:28
2308
原创 python中图像常规操作
cv2.drawContours(drawing, contours, -1, 255, 2) # 最后两个参数分别为颜色和线宽。
2024-01-30 10:27:03
333
原创 python中将方法赋值给变量
D, E = 10, 20 # 实际值,假设你有具体的数值。是一个简单的方法,接受两个参数。来调用方法,传递实际的参数值。,并在调用时打印它们的值。# 将方法赋值给变量。# 使用变量调用方法。
2024-01-29 17:38:55
426
原创 怎么查看深度学习pytorch中的pt权值文件
因此,你可以期望在大量生成的随机数中,它们在 [0, 1) 区间内的分布是均匀的,即每个小区间内的随机数数量大致相等。这个张量中,每个元素的数值与keep_prob的数值比较,若元素的数值比keep_prob的数值小,则该元素数值取1,若元素的数值比keep_prob的数值大,则该元素数值取0。均匀分布意味着在给定的范围内,每个数值出现的概率相同,不会强调某个数是某个数的倍数。通过这个操作,你可以将模型的参数从预训练模型或者保存的检查点中加载到你的模型中,从而实现参数的迁移或继续训练。
2024-01-29 16:48:01
5219
原创 python中-=,+=,++等操作
这是一个减法赋值运算符,用于将右边的值从左边的变量中减去,并将结果赋给左边的变量。: 这是一个加法赋值运算符,用于将右边的值加到左边的变量上,并将结果赋给左边的变量。x += 2 # 等效于 x = x + 2,此时 x 的值变为 7。x -= 3 # 等效于 x = x - 3,此时 x 的值变为 4。表示前缀自增(先加1,再返回新值),这两种写法在 C++ 是合法的。这样的后缀自增和前缀自增的写法是不合法的。是非法的,因为在 Python 中没有后缀自增运算符。: 在 Python 中,
2024-01-29 15:02:14
4275
2
原创 python元组操作
元组是不可变的数据结构,这意味着一旦创建,你不能修改元组的内容。但是,你可以执行一些基本的操作,如访问元组的元素、切片、连接等。3、result_tuple = tuple1 + tuple2 拼接生成新的元组。4、repeated_tuple = my_tuple * 3 重复。5、length = len(my_tuple) 获取长度。2、my_tuple[1:4]切片操作访问元素。1、my_tuple[0]访问元素。表示倒数第二个元素,依此类推。负索引表示从末尾开始索引元素,
2024-01-29 14:54:05
669
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人