- 博客(80)
- 收藏
- 关注
原创 mysql8和mysql5版本在使用mybatis框架时的注意事项
mysql8和mysql5版本在使用mybatis框架时有些注意事项,两者的区别在于两处地方的设置。有一处未设置好,就会出现以下错误:java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: com.mysql.cj.jdbc.Driver。
2024-07-18 17:02:35 631
原创 linear evaluation和fine-tuned的区别
线性评估是迁移学习中的一种简单方法,通常用于评估预训练模型学到的特征的泛化能力。在线性评估中,首先在预训练模型(例如在大规模数据集如ImageNet上预训练的模型)上提取特征,然后将这些特征输入到一个简单的线性分类器中进行训练,最终在目标任务上进行测试。线性评估过程中,只有线性分类器的权重会被学习,而预训练模型的权重保持不变。线性评估的目标是评估预训练模型的特征学习能力,以及在不同任务上的泛化能力。微调是迁移学习中的一种更复杂的方法,通常用于在预训练模型的基础上进一步调整模型以适应特定任务。
2024-03-09 10:22:23 1077 1
原创 基于QT C++的大富翁游戏
这是一个基于QT C++的大富翁游戏,包含代码和技术文档,有意者私下面介绍整体界面:定额模式(某个玩家赚取到游戏设定的最高金额游戏结束):定时模式:
2023-12-29 11:13:06 765
原创 基于Java Swing的图书管理系统
本项目基于Java Swing框架,数据库采用的是MySQL。项目总体包括源代码和课程论文,需要源码的可私信我。3.管理员管理图书类别。
2023-12-27 22:56:32 868 1
原创 C++判定终端ip和目标ip是否在同一局域网内
需要注意的是,此程序假定输入的 IP 地址是以点分十进制表示法给出的,并且子网掩码和 IP 地址都是有效的。此外,它假设 IPv4 地址,每个 IP 地址由四个十进制数构成。在实际生产环境中,还需要对输入进行更严格的验证和错误处理。程序如下:用于判断给定的终端 IP、子网掩码和目标 IP 是否在同一局域网内。请注意,这个程序假设 IP 地址是用整数表示的。
2023-12-27 22:40:03 748
原创 torch.rand()和torch.randn()的区别
总的来说,torch.rand() 生成的张量中的元素值来自 [0, 1) 的均匀分布,而 torch.randn() 生成的张量中的元素值来自标准正态分布。torch.randn() 用于生成元素值服从标准正态分布(均值为0,方差为1)的随机张量。torch.rand() 用于生成元素值在 [0, 1) 之间均匀分布的随机张量。返回的张量中的每个元素都是从区间 [0, 1) 的均匀分布中随机采样得到的。返回的张量中的每个元素都是从标准正态分布中随机采样得到的。
2023-12-19 09:24:21 1863
原创 Python当中x.size()和x.shape有什么区别?
例如,对于一个三维张量 x,可以使用 x.size() 获取该张量在每个维度上的尺寸大小,如 x.size() 可能返回 (3, 4, 5) 表示在第一个维度上尺寸为 3,在第二个维度上尺寸为 4,在第三个维度上尺寸为 5。实际上,x.size() 和 x.shape 返回的结果是相同的,都提供了相同的张量尺寸信息,只是调用方法稍有不同。在实际应用中,x.size()和x.shape通常可以互换使用,用来获取张量的维度信息,而且返回的结果也是相同的。
2023-12-19 08:49:16 2236
原创 Pytorch当中nn.AvgPool3d()和nn.AdaptiveAvgPool3d()的区别
总的来说,nn.AvgPool3d()需要手动指定池化窗口的大小,而nn.AdaptiveAvgPool3d()允许动态地指定输出的目标大小,更加灵活。选择使用哪个池化层取决于具体的需求和场景。
2023-12-19 08:37:13 2261 1
原创 应用Transformer和CNN进行计算机视觉任务各自的优缺点
Transformer 和 CNN(卷积神经网络)是用于计算机视觉任务的两种不同的深度学习架构,各自具有一些优点和局限性。
2023-12-18 18:11:51 4653
原创 .h5文件简介
HDF5(Hierarchical Data Format version 5)是一种用于存储和组织大量数据的文件格式,它支持高效地存储和处理大规模科学数据的能力。HDF5 是一种灵活的数据模型,可以存储多种数据类型,包括数值数据、图像、表格等等,并且可以按照层级结构组织数据。1.灵活性: HDF5 文件格式非常灵活,可以存储各种不同类型和大小的数据,从简单的数值数组到复杂的多维数据集合。2.层级结构。
2023-12-18 16:03:07 2092
原创 Python当中的yield的作用详解
在Python中,yield 是用于创建生成器(generator)的关键字,用于构建迭代器(iterator)。yield 类似于 return,但有着不同的行为和作用。:当函数包含 yield 语句时,它就不再是普通的函数,而是一个生成器函数。生成器函数可以通过yield关键字暂停执行并保存当前状态,使得函数能够返回一个值,并在下次调用时从上次暂停的地方继续执行。:生成器函数返回的对象是一个迭代器,可以逐个产生值。
2023-12-17 09:27:49 663
原创 Pytorch当中的.detach()操作是什么意思
当我们在PyTorch中进行张量运算时,操作会构建一个计算图来跟踪计算历史,这个计算图用于自动求导和反向传播来计算梯度。例如,在神经网络训练中,如果只是需要使用某个张量的值而不需要对其进行梯度计算,可以使用.detach()方法分离该张量,然后将其转换为NumPy数组或进行其他操作,而不会影响梯度传播。使用.detach()方法可以将一个张量从当前的计算图中分离出来,使其变成一个不再需要梯度追踪的普通张量,即使它是由需要梯度的操作创建的。
2023-12-16 09:53:05 688
原创 PNG和JPG格式图片的区别
第三步:此时弹出一个新的窗口,在下方的【保存类型】上选择jpg格式,最后点击下方的保存即可转换成功。JPEG的文件格式一般有两种文件扩展名:.jpg和.jpeg,这两种扩展名的实质是相同的,我们可以把*.jpg的文件改名为*.jpeg,而对文件本身不会有任何影响。总的来说,选择使用 PNG 还是 JPEG 取决于图像内容、需要的透明度和色彩信息、文件大小以及对图像质量的要求。PNG:通常比较大,特别是对于照片等具有大量颜色变化和细节的图像,因为它是无损压缩,保留了更多细节。
2023-12-15 20:02:23 333
原创 使用OpenCV和PIL库读取图片的区别
例如,对于一个彩色图像,它可以被表示为一个形状为 (height, width, 3) 的 NumPy 数组,分别对应图像的高度、宽度和通道数(红、绿、蓝)。当我们使用某个库(比如 OpenCV 或 PIL)加载图像时,这个图像会被解码并转换为相应库支持的格式,然后我们可以在代码中进行处理、显示或者保存。PIL(Pillow)库中的图像是 Image 对象,它提供了一系列方法和属性来处理图像。OpenCV 和 PIL(Pillow)是两个不同的图像处理库,它们使用不同的数据结构来表示图像。
2023-12-15 16:13:04 903
原创 sudo apt-get安装的包和pip install以及conda install安装的包的区别
conda install 安装的软件包同样是针对特定的环境(通过 conda 创建的环境),并且在该环境中进行管理。它通过系统的软件包管理器来安装、更新和删除软件包。通过 sudo apt-get 安装的软件包通常是系统级的,会被安装在系统的默认路径中。总体来说,这些安装方式有不同的用途和范围:sudo apt-get 用于管理系统级软件包,pip install 用于管理 Python 包,而 conda install 则更多地用于数据科学和机器学习领域,提供了更全面的环境管理和跨语言支持。
2023-12-15 09:53:02 739
原创 Python当中的**kwargs表示什么意思?
*kwargs 将这些参数打包成一个字典,在函数内部使用 for 循环遍历这个字典,并打印出每个关键字参数及其对应的值。在Python中,**kwargs 是一个常用的语法,用于表示函数的可变数量的关键字参数(keyword arguments)。在函数定义中,当你使用 **kwargs 作为一个参数时,它允许函数接受任意数量的关键字参数,并将这些参数存储在一个字典中,其中关键字作为键,相应的值作为字典的值。总之,**kwargs 允许你在函数中处理任意数量的关键字参数,并以字典的形式对它们进行操作。
2023-12-08 09:21:11 3232
原创 Pytorch当中nn.Identity()层的作用
层在神经网络中可能看起来似乎没有实际用处,因为它不对输入进行任何操作或变换,只是简单地将输入返回作为输出。通过跳跃连接,神经网络可以直接从一个层传递信息到后续层,这有助于解决梯度消失或梯度爆炸等问题,同时也有助于提高模型的性能和训练速度。可以允许构建具有更灵活结构的模型或者实现一些特定的功能,例如在连接不同分支的网络时或者在模型中需要将某些路径直接连接到输出等情况下。看起来似乎没有实际的转换操作,但在神经网络的复杂架构设计和特殊情况下,它可以作为一个有用的工具,帮助更轻松地构建特定结构或连接路径。
2023-12-08 09:05:39 8436 1
原创 Python当中类的__call__()方法、forward()方法以及__getitem__()方法作用是否会重叠
在写面向对象时,我们通常会需要书写一个class的__call__()方法使对象实例可调用。当我们对一个类的实例使用括号并提供参数时,Python 会尝试调用该实例的__call__()方法。这个方法的参数类型是任意的,可以是零个、一个或多个参数,取决于我们在类中定义了什么样的__call__()方法。但是当我们在写Pytorch的神经网络模型的时候,我们通常会写到该模型的forward()方法,来实现向前传播。
2023-12-07 14:54:00 378
原创 batch_size太大和太小的优缺点分别是什么?
选择合适的批处理大小取决于数据集的大小、模型的复杂性、硬件资源以及对模型性能和训练时间的需求。通常来说,需要根据实际情况进行实验和调整,以找到最适合的批次大小。在深度学习的实验当中,我们通常回去设置batch_size,那batch_size开的太大和太小分别会为我们带来什么样的优缺点呢?
2023-12-06 17:46:35 2262
原创 什么是上采样和下采样?
总体而言,上采样和下采样对信号或图像的处理可以改变其分辨率,从而在不同的应用中提供更多或更少的细节信息。上采样用于增加分辨率和细节,而下采样则用于减少分辨率和降低数据量。上采样和下采样是信号处理和图像处理中常用的技术,用于改变信号或图像的分辨率。
2023-12-04 18:23:22 3089
原创 Pytorch当中squeeze(1)函数和unsqueeze(1)函数的区别及含义
方法会在指定的位置(这里是维度 1)上增加一个新的维度,使得张量的维度数增加,并将新增的维度的大小设置为 1。是用于张量维度操作的方法之一,它的作用是在指定位置(这里是维度 1)上增加一个维度,将维度的大小设置为 1。是用于张量维度操作的方法之一,它的作用是将张量中尺寸为 1 的维度压缩(去除)掉。这表示在原来的张量中的维度 1 处增加了一个维度,该维度的大小为 1。具体来说,如果张量在指定维度(这里是维度 1)上的尺寸为 1,的张量,其中维度 1 的尺寸为 1。的张量,在维度 1 上使用。
2023-12-04 11:06:23 2031
原创 Pytorch当中transpose()和permute()函数的区别
方法则更灵活,可以按照指定顺序重新排列张量的维度。在选择使用哪个方法时,取决于你需要交换多少个维度以及所需的灵活性。方法更为限制,它只能进行两个维度的转置。在 PyTorch 中,
2023-12-04 11:00:53 1255 2
原创 Python当中的repeat()函数和repeat_interleave()函数剖析和对比
创建一个张量# 沿着行和列方向分别重复张量print('采用torch tensor原始:\n', test_array)print('采用torch tensor的repeat函数:\n', test_array.repeat(2, 1))print('采用torch tensor的repeat_interleave函数:\n', test_array.repeat_interleave(2, dim=0))print('采用numpy array原始:\n', test_array2)
2023-11-18 13:26:40 2438
原创 有用的安装Pytorch Debug网站
但不巧,我当时都不是这两个问题,我当时的问题是python3.6配上了11.8cuda这肯定不行,于是我又重新下载了python3.8配上11.8的cuda最终才解决问题。如果你是安装cpu版本的cuda,那就没怎么麻烦啦!若是conda install anaconda-clean失败,尝试在新创建的环境当中执行该条指令,而不是在base环境当中执行该条指令。若是anaconda-clean --yes失败,则是因为后台打开了anaconda中的其他程序,打开任务管理器结束相关进程即可。
2023-10-06 09:14:14 156
原创 python当中函数中参数前的*有什么作用
当在函数定义当中使用时,它通常用于指定一个位置的参数接收多个位置的参数。这些参数将被用于打包成一个元组,然后传递给函数的参数。print(arg)在上面的示例当中,*args接收了传递给函数的所有位置参数,并将它们打包成一个元组(1, 2, 3)。总之,在Python中用于参数传递中的两种不同方式:在函数定义中用于接收可变位置参数,以及在函数调用中用于解包可迭代对象并将其传递给函数。
2023-09-28 11:36:03 2017
原创 李沐《动手学深度学习》torch.cat() 和 torch.stack()的区别及思考
假设是时间步T1的输出[4, 5, 6],# 假设是时间步T2的输出。
2023-09-11 10:16:01 1134
原创 关于scanf读入字符串等事宜的注意事项
如图所示:在示例当中我们限制输入字符个数为10个,因此就算我们输入再多也未被接收,,这对我们做有的题目极为有利。而且可以看到数组末尾被加了一个奇怪的字符 ]!可以看到输入的abc当中的空格被截断了,所以这种方式是遇到空格和回车就截止。
2023-06-27 16:54:33 472
原创 中山大学保研夏令营机试05 循环字符串 【 字符串匹配 】
①scanf读入字符串时得用%s占位符,且必须用字符数组保存,可以用strlen函数获取字符数组当中字符串的长度,前提是引入库<cstring>②使用find函数判断一个字符串是否包含另一个字符串,前提是两个参数必须都是string,因此得先把字符数组转成string类型(直接转即可)
2023-06-24 14:37:14 564
原创 为什么memset成0x3f输出却是0x3f3f3f3f?
在写Dijkstra算法时,我遇到了下面这个问题:为什么一开始memset成0x3f,最后判断的条件却是判断是否为0x3f3f3f3f呢?这是因为memset按字节进行赋值,每个字节都被赋成了0x3f,而一个整数包含四个字节,因此判断整数的值时是判断是否为0x3f3f3f3f。
2023-06-22 16:24:55 332
原创 AcWing802:详解
首先毫无置疑的是本体需要用到离散化的知识,将输入的索引下标放到一个vector当中存起来,在该vector当中,利用其本身的索引我们对称构造两个数组a和s(用于求前缀和)。那么最关键的一个问题就是如何通过输入的索引得到vector本身的索引?这就可以通过差分来实现:如图所示即find函数,注意我们这里返回的是r+1,为的就是待会求前缀和比较方便。因此我们在求前缀和数组时,范围应该是。(alls数组的下标索引仍是。
2023-06-18 22:54:50 446
原创 AcWing801: 二进制中1的个数(两种方法详解)
使用lowbit操作,每次操作截取一个数字的最后一个1后面的所有位,每次减去lowbit得到的数字,直到数字减到0,就得到了最终1的个数。对于每个数字,我们将其与1相与,就得到了该数字的最后一位,之后将a右移一位,直到为0,就得到了1的个数。
2023-06-18 10:12:56 431
原创 C++ gets函数与strlen函数详解
cout << "请输入一个字符串:";gets(str);cout << "您输入的字符串为:" << str;
2023-06-15 09:14:22 5469 1
原创 洛谷P1706全排列问题题解(两种方法+详解)
按照字典序输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。
2023-05-18 20:14:17 779
原创 洛谷P1157详解(两种解法,一看就会)
排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r≤n),我们可以简单地将n个元素理解为自然数12n,从中任取r个数。现要求你输出所有组合。例如n5r3123124125134135145234235245345。
2023-05-18 08:53:48 949 1
原创 洛谷P1036题解
已知n个整数x1x2⋯xn,以及1个整数kkn从n个整数中任选k个整数相加,可分别得到一系列的和。例如当n4k34个整数分别为37121937122237192971219383121934现在,要求你计算出和为素数共有多少种。371929。
2023-05-17 19:11:21 550
原创 洛谷P1618
将129共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是ABC,试求出所有满足条件的三个三位数,若无解,输出No!!!。
2023-05-17 15:47:38 276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人