- 博客(127)
- 收藏
- 关注
原创 Pytorch单、多GPU和CPU训练模型保存和加载
在多GPU训练中,模型通常在torch.nn.DataParallel或torch.nn.parallel.DistributedDataParallel中,这会在模型的参数名前加上前缀。因此,在保存模型时,需要使用model.module.state_dict()来获取模型的状态字典,以确保保存的参数名与模型定义中的参数名一致。多GPU训练模型保存。
2025-01-05 22:51:49
973
原创 latex技巧
在 LaTeX 中设置表格的字体大小可以通过多种方式实现。在这个例子中,>{\small}c 表示该列的字体大小为 \small。示例在这个示例中,表格中的所有文本都将使用小号字体显示。你可以根据需要替换 \small 为其他字体大小命令,如 \footnotesize, \scriptsize 等。
2025-01-02 22:38:57
3402
原创 word中文献引用[]符号的上下标格式修改
如果我们想对首位包含有“9”、“8”字符的内容进行查找时,可以使用通配符“[ ]”来实现。在此我们只查找包含两个字符或汉字的内容,可以在”查找内容“输入框中输入”?”代表任意多个字符,因此当我们需要查找包含有“U”字符的内容时,只需要以“*U”为查找字进行查找即可。首先,我们制作如图所示的表格,在”查找与替换“窗口中,点击”更多“按钮,进入高级查找界面。接下来在”替换内容“输入框中继续添加”KK“后缀,点击”全部替换“按钮即可。接下来将光标定位到”替换框“,点击”特殊格式“列表中的”查找内容“项。
2024-12-28 12:58:13
1037
原创 引用文献中的GB、MLA、APA有什么区别
MLA:采用作者-作品格式,引用时通常包括作者姓名、出版年份、书名(或文章标题)、页码等。APA:采用作者-年份格式,引用时包括作者姓名、出版年份、书名(或文章标题)、页码等。,特别针对社会科学领域的研究,规范学术文献的引用和参考文献的撰写方法,以及表格、图表、注脚和附录的编排方式。GB:引用格式与MLA类似,通常按照作者姓氏或第一作者姓氏的字母顺序排列。GB:所引用的文献通常按照作者姓氏或第一作者姓氏的字母顺序排列。APA:所引用的文献通常按照作者的姓氏和出版年份进行排序。
2024-12-28 11:41:24
2643
原创 英文人名的缩写规则
1. 缩写形式:英文人名的缩写通常只缩写名字(First Name),而不缩写姓氏(Last Name)。例如,R. Brain Haynes缩写为Haynes RB,Edward J. Huth缩写为Huth EJ。例如,R. Brain Haynes缩写为Haynes RB,Edward J. Huth缩写为Huth EJ。4. 省略缩写点:在缩写时省略所有的缩写点,例如R. Brain Haynes缩写为Haynes RB,而不是Haynes R.B.。# 标题英文人名的缩写规则。
2024-12-28 11:09:58
1589
原创 latex有哪些颜色中文叫什么,Python绘制出来
为了展示xcolor包预定义的颜色及其对应的中文名称,并使用Python打印出来,我们可以先列出常见的预定义颜色名称,然后将它们翻译成中文,并最后用Python打印出来。使用Python打印这些颜色名称及其对应的中文名称。saddlebrown 鞍棕色。列出常见的预定义颜色名称。lightgray 浅灰色。turquoise 青绿色。limegreen 酸橙绿。darkgray 深灰色。magenta 洋红色。violet 紫罗兰色。skyblue 天蓝色。indigo 靛蓝色。salmon 鲑鱼粉。
2024-10-02 22:37:20
832
1
原创 Elsevier参考文献格式说明
通过在文本中的方括号内添加一个数字来表示参考文献。你可以在你的文章中引用作者的名字,但是你必须给出参考号,例如“如证明的那样[3,6]。巴纳比和琼斯[8]获得了不同的结果……按照参考文献在文章中出现的顺序给它们编号。按照参考文献在文章中出现的顺序给它们编号。
2024-09-23 17:14:41
6252
2
原创 Opencv图像增强技术
OpenCV 是一个强大的计算机视觉库,提供了丰富的功能来进行图像处理和分析。图像增强是其中的一个重要组成部分,旨在改善图像的视觉效果或优化后续处理步骤的性能。
2024-08-04 22:15:48
872
原创 Yolov8添加ConvNetV1和V2模块
如下图所示,精度、效率、尺寸都很不错。论文的摘要如下:视觉识别的“咆哮的 20 年代”始于视觉注意力 (ViT) 的引入,它迅速取代了 ConvNets 成为最先进的图像分类模型。另一方面,vanilla ViT 在应用于一般计算机视觉任务(如对象检测和语义分割)时面临困难。正是分层 Transformer(例如 Swin Transformers)重新引入了几个 ConvNet 先验,使 Transformer 实际上可以作为通用视觉骨干,并在各种视觉任务中表现出卓越的性能。
2024-08-03 19:43:49
1326
原创 YOLOv8添加注意力模块并测试和训练
(1)ultralytics/nn/modules/conv.py中写入自定义的注意力模块:init只有逐层添加模块名,才能封装成ultralytics.nn.modules的内部模块(3)ultralytics/nn/tasks.py中添加自定义的注意力模块名,以便任务执行时调用自定义的注意力模块。
2024-08-03 12:48:14
1403
原创 YOLOV8替换Lion优化器
论文地址:https://arxiv.org/abs/2302.06675代码地址:https://github.com/google/automl/blob/master/lion/lion_pytorch.py。
2024-08-03 10:12:46
679
1
原创 直线与曲线的交点
假设我们有一条直线 (y = mx + b) 和一条抛物线 (y = ax^2 + cx + d),其中 (m, b, a, c, d) 是已知常数。这段代码定义了一个函数 find_intersection,它接收直线和抛物线的参数,并返回它们的交点坐标列表。如果方程没有实数解,则返回空列表。在数学和计算机图形学中,计算直线与曲线的交点通常涉及到解方程组的问题。然后我们可以使用二次方程的求根公式来解这个方程,得到 (x) 的值,进而通过任一方程计算出对应的 (y) 值。Python 示例代码。
2024-07-26 21:46:28
797
原创 numpy实现sigmoid函数
在Python中,可以使用NumPy库的numpy.exp函数来计算e的指数,然后通过除法将其映射到0和1之间,实现sigmoid函数。
2024-07-12 18:30:25
712
原创 计算Dice损失的函数
这段代码是用于计算二分类问题的混淆矩阵(Confusion Matrix)中的True Positives(TP),False Positives(FP)和False Negatives(FN)。在混淆矩阵中,TP表示模型正确预测为正类的数量,FP表示模型错误地预测为正类的数量,FN表示实际为正类但模型没有预测为正类的数量。综上所述,这段代码通过计算TP、FP和FN,来评估模型在二分类任务中的性能。这些值是计算精确度(Precision)、召回率(Recall)和F1得分的关键。
2024-06-29 17:07:07
746
原创 神经网络的卷积操作中不同的卷积核和不同的填充获得同样的输出
所有卷积过程的步长 stride 均设置为1,根据上式计算得到的补0数目分别为0,1,2,3。下面的代码对计算进行了验证,运行后将输出4行torch.Size([1,3,300,400]),证明卷积后输出特征图维度和输入相同。根据卷积的计算方式可知,为了保证输入和输出特征图的长宽一致,可以使用步长为1的卷积,所以SH和SW 均设置为1。上面的公式总结了 Conv2d 的输入和输出特征图的长宽尺寸计算关系,根据需求选择不同的参数搭配。代表输出特征图的通道数。KH 代表卷积核的长度、KW 代表卷积核的宽度。
2024-06-21 19:56:40
957
原创 已知一条直线经过两个点,使用Python求直线外其中一个点到直线的距离
斜率 m 的垂直线(即过 P1 点的垂线)的斜率 m_vertical 为 -1/m。其中 m 是直线的斜率,b 是直线的截距,sqrt 表示平方根。2、使用点到直线的距离公式计算 P3 到直线的距离。1、计算直线的斜率 m 和截距 b。
2024-06-20 18:07:05
395
原创 python遍历文件夹并计算某类文件的数量,复制图像文件到目标文件夹
它生成一个三元组(dirpath, dirnames, filenames),其中dirpath是一个字符串,表示当前正在查看的目录的路径;dirnames是一个列表,包含了dirpath中所有的子目录名(不包括.和…os.path.join()函数用于连接一个或多个路径组件。它使用当前系统的正确方法将路径组件连接成一个完整的路径字符串。这是构建文件路径的推荐方式,因为它会自动处理不同操作系统之间的路径差异。在Python中,你可以使用os和os.path模块来遍历文件夹(目录)。
2024-06-17 15:10:03
273
原创 ubantu 计算一个文件夹内的文件数量命令
这里的/path/to/directory是你想要计算文件数量的文件夹的路径。find命令会搜索这个目录下的所有文件,-type f选项确保只列出文件,不包括目录。管道|将find的结果传递给wc -l命令,后者计算行数,每个文件名占一行,因此这将给出文件的数量。如果你想包括子目录中的文件,上面的命令已经足够了。在Ubuntu中,你可以使用find命令来计算一个文件夹内的文件数量。这里的-maxdepth 1告诉find只在当前目录下搜索,不进入子目录。
2024-06-16 11:40:21
385
原创 python显示神经网络训练时的1batch数据
最后,我们使用Matplotlib来显示这些图片。请注意,我们使用permute方法来改变图片的通道顺序,因为PyTorch的图像通道顺序是CxHxW,而Matplotlib期望的是HxWxC。我们使用DataLoader来加载数据集,并设置batch_size为4,这意味着每个batch包含4个样本。迭代数据集:获取DataLoader的一个迭代器,并遍历这个迭代器来获取每个batch的数据。加载数据集:首先加载你的训练数据集,通常是使用PyTorch的DataLoader。
2024-06-15 17:41:44
448
原创 判断两张图片是否相似
要判断两张图片是否相似,你可以使用多种方法,其中包括结构相似性指数(SSIM)和 perception hash 等。以下是使用 SSIM 和 perception hash 进行判断的示例代码。
2024-06-15 11:45:05
719
原创 样条插值拟合离散点成一条曲线
要使用样条插值拟合离散点成一条曲线,我们可以使用scipy库中的interpolate模块中的CubicSpline类。该类可以创建一个三次样条插值函数,它确保了插值曲线在相邻数据点处具有连续的斜率。
2024-06-14 17:56:40
383
原创 Ransac(随机抽样一致性算法)多项式拟合附近的点
RANSAC(RANdom SAmple Consensus)算法是一种用于拟合数学模型的迭代方法,尤其适用于对数据中有噪声的情况。RANSAC的核心思想是通过迭代从数据集中随机抽取一小部分样本,判断这些样本是否能很好地拟合一个模型,如果可以,那么这个模型有很大的可能是正确的。在多项式拟合中,我们可以使用RANSAC算法来找到一个通过一组点且距离这些点距离最小的多项式曲线。Ransac(随机抽样一致性算法)多项式拟合附近的点。
2024-06-14 13:15:53
316
原创 opencv读取图片并将图片二值化
在这段代码中,我们首先读取了一张灰度图像。然后,我们使用cv2.threshold函数和cv2.THRESH_OTSU阈值方法来对图像进行二值化处理。cv2.THRESH_OTSU会自动计算一个阈值,使得图像中的两个类别(前景和背景)之间的方差最大化。要使用OpenCV读取图片并将图片二值化,您可以使用cv2.imread函数来读取图片,并使用cv2.threshold函数来将图片二值化。二值化后的图像将被显示,并可以通过按下’q’键来关闭图像窗口。最后,我们将二值化后的图像保存到文件中。
2024-05-27 15:31:39
523
原创 opencv实现图片的膨胀腐蚀
在OpenCV中,膨胀和腐蚀是两种基本的图像处理操作,通常用于二值图像中以提取特定的特征。它们是基于图像的形态学操作,使用一个称为结构元素或核的模板来改变图像的形状。cv2.erode函数则用于进行腐蚀操作,同样通过迭代次数参数来指定腐蚀的次数。然后我们定义了一个5x5的结构元素(核),这是一个常用的选择,实际上可以根据需要选择任何大小的核。膨胀后的图像将使图像中的白色区域(前景)扩张,而腐蚀后的图像将使图像中的白色区域缩小。最后,我们将膨胀和腐蚀后的图像保存到文件中。
2024-05-27 15:30:26
515
原创 PIL读取彩色图并使用opencv二值化
接着,我们将图像转换为灰度图像,因为二值化处理通常在灰度图像上进行。然后,我们使用cv2.threshold函数和cv2.THRESH_OTSU方法来进行二值化处理,该方法可以自动选择一个合适的阈值来分割图像。然后,我们使用cv2.cvtColor函数将PIL图像转换为OpenCV的BGR格式,因为OpenCV默认使用BGR颜色空间。在Python中,您可以使用PIL(Pillow)库来读取彩色图像,然后将其转换为OpenCV可处理的格式,最后使用OpenCV的函数进行二值化处理。
2024-05-27 15:27:36
426
原创 【python设置浮点型数字整数部分显示2位整数,不够补零】
python设置浮点型数字整数部分显示2位整数,不够补零要设置浮点型数字的整数部分显示2位整数并且在不足时补零,你可以使用Python的f-string格式化或者str.format()方法。在这些方法中,你可以指定一个最小宽度,如果整数部分的位数少于这个宽度,则在左侧用零填充。下面是如何使用这两种方法的示例:方法1:使用f-stringnumber = 4.7formatted_number = f"{number:02.0f}" # 02.0f表示整数部分至少2位,如果不足则补零print(
2024-05-21 11:27:33
883
原创 【列表中的字符相加】
要将列表中的字符相加,你可以使用Python中的join()方法。这个方法是字符串(str)的一个方法,它可以将一个字符串列表中的所有字符串连接成一个单一的字符串。在这个例子中,我们首先定义了一个包含三个字符串的列表words。然后我们用join()方法将这些字符串相加,没有分隔符(第一个例子),用空格分隔(第二个例子),或者用逗号和空格分隔(第三个例子)。请注意,join()方法的参数是一个包含字符串元素的可迭代对象(如列表),并且列表中的元素必须都是字符串类型。
2024-05-21 08:43:34
401
原创 【python将字符串按‘/‘和‘\‘分割开】
这个函数split_string使用正则表达式[\/]来匹配字符串中的/或\,然后使用re.split函数来分割字符串。通过列表推导式,它去除了可能产生的空字符串,确保返回的列表只包含实际的目录或文件名。在Python中,要将一个字符串按/和\分割开,你可以使用正则表达式配合re模块的split函数。这样可以确保无论字符串中是否包含这些分隔符,都能正确地将字符串分割开。
2024-05-20 21:32:06
570
原创 【ubantu使用ps查看CPU占用以及限制占用率】
在Unix/Linux系统中,可以使用ps命令结合sort和head命令来查找CPU占用最高的5个进程。解释:ps: 进程查看命令。-e: 选项表示显示所有进程。-o: 选项用于自定义显示字段,这里指定了pid, user, ppid, cmd, %mem, %cpu。–sort=-%cpu: 选项根据CPU使用率降序排序。head -6: 显示前6行,包括你可能想要的5个进程和1个标题行。tail -5: 去掉前面的标题行,只显示实际的5个CPU占用最高的进程。
2024-05-19 22:12:53
754
原创 解决matplotlib中文显示报错问题
请注意,这只会显示系统中安装的字体,如果你想使用特定的字体文件(比如从网络上下载的字体),你需要确保matplotlib能够找到这些字体文件。在Linux系统中,字体文件通常放在/usr/share/fonts/目录下,而在Windows系统中,字体文件通常放在C:\Windows\Fonts\目录下。如果你的系统中没有安装SimHei字体,你可以去掉这个字体,系统会自动选择下一个可用的字体。请确保你设置的字体名称是正确的,如果不确定,可以尝试使用上面提供的列表来找到正确的字体名称。保存并关闭配置文件。
2024-05-19 18:33:14
850
原创 神经网络中图片的多分类,如何计算与目标索引图的损失
在PyTorch中,交叉熵损失函数通常用于nn.CrossEntropyLoss,它 combines nn.LogSoftmax and nn.NLLLoss in one single class. 当你使用nn.CrossEntropyLoss时,你不需要在模型的输出层加nn.Softmax,因为nn.CrossEntropyLoss已经包含了这个操作。在这个例子中,outputs是模型输出的未经softmax的原始值,而targets是与outputs形状相同的。,因为它代表的是类别的索引。
2024-05-18 21:29:21
349
原创 深度学习中读取索引图并转成tensor
在Python中,你可以使用像PIL(Python Imaging Library)或者cv2(OpenCV)这样的库来读取索引图(即图像分割的标签图),然后使用torch将NumPy数组转换成PyTorch的Tensor。请确保你的索引图像是正确的格式,并且其中的类别标签是连续的整数,这样它们就可以作为索引来使用。如果你的索引图像使用了不同的颜色来表示不同的类别,你可能需要额外的逻辑来将颜色映射到类别索引上。
2024-05-18 21:24:47
342
原创 深度学习中将图片使用transforms.ToTensor()转换后,如何转回来
在上面的代码中,to_tensor用于将PIL图片转换为PyTorch tensor,同时会对图片的像素值进行归一化处理,使其位于[0, 1]区间。to_pil则用于将PyTorch tensor转换回PIL图片,同时会将像素值从[0, 1]区间反归一化到原来的[0, 255]区间。请注意,在进行转换时,如果你对tensor进行了一些处理,比如归一化、标准化或者其他一些变换,那么你可能需要在转换回PIL图片之前对tensor进行相应的逆变换,以确保图片的数据显示正确。
2024-05-18 21:23:19
352
原创 【查看tensor的数据类型】
这段代码中,tensor.dtype将会输出tensor的数据类型。例如,如果你创建的是一个默认类型的tensor(即torch.FloatTensor),那么默认情况下它会打印出torch.float32。在Python中,你可以使用torch.Tensor对象的dtype属性来查看tensor的数据类型。dtype属性会返回一个torch.dtype对象,该对象描述了tensor中元素的数据类型。请注意,转换数据类型可能会导致数值精度的丢失,因此在进行类型转换时需要谨慎处理。
2024-05-18 21:22:05
620
原创 【神经网络输出10通道的tensor形状为(10, 512, 512),找出10通道中的最大值的通道序号,生成一个形状为(1, 512, 512)的张量,根据张量的序号存成索引图映射不同的颜色】】
要根据10通道中的最大值的通道序号生成一个索引图,并且将不同的通道序号映射到不同的颜色,你可以使用Python的图像处理库Pillow。首先,我们需要找出每个位置的最大值通道序号,然后使用这个序号来创建一个索引图,并映射不同的颜色。查看索引图与数值一致:max_channel_indices_np。创建一个颜色映射字典,用于将通道序号映射到不同的颜色。使用Pillow库创建一个索引图,并应用颜色映射。使用torch.max函数找到最大值及其索引。用PS软件打开可以看到它是索引图但是有上色。
2024-05-18 18:19:02
219
原创 【torch中计算tensor的按某个维度的最大值】
如果你需要计算整个张量的最大值,可以直接调用torch.max(tensor),它将返回张量中的最大值和其索引。注意,返回的索引是沿着指定的维度,对于整个张量,索引是一个标量,因为它只有一个最大值。max_columns 是一个包含每列最大值的张量,column_indices 是对应每列最大值的索引。max_rows 是一个包含每行最大值的张量,row_indices 是对应每行最大值的索引。max_all 是整个张量中的最大值,all_indices 是它在张量中的索引。
2024-05-18 11:07:38
803
原创 Pyqt中QThread传递自己定义的参数、类、函数
在PyQt中,当你想要在一个线程中传递自己的参数时,你可以通过子类化QThread并重写run方法来实现。然后你可以通过构造函数传递参数,并在run方法中使用这些参数。import sys# 定义一个信号,用于向主线程发送数据# 在这里处理数据,然后发送信号processed_data = self.data.upper() # 假设这是一个简单的处理过程# 创建线程并传递数据")
2024-05-14 20:30:04
2277
原创 Visual Studio调试技巧合集
(2)另外一种做法是将不需要运行的main文件注释掉(Ctrl+K,ctrl+C),再运行另外一个main文件则不会报错。,即显示“-”号排除,运行它main文件则可以运行不报错。(1)移动鼠标到需要关掉调试的文件,点击。
2023-12-13 10:30:30
1584
原创 【高数:2 数列的极限、函数的极限】
symbols()函数可接收一系列由空格分隔的变量名字符串,并将其赋给相应的变量名,例如:x,y,z=sy.symbols(‘x y z’)。limit()函数用来求极限,它有四个参数limit(f,x,x0,dir=‘+’), 其中, f 表示函数;x表示要取极限的变量;dir 表示取极限的方向, 如果 dir='+'则表示取右极限, '-‘表示取左极限,‘±’表示取双向左右极限, 默认 dir=’+’.趋于0的左右极限不相等,故当x->0时函数极限不存在。,证明当x->0时,函数极限不存在。
2023-12-07 12:22:28
1069
ConvNet ConvNeXt V1 - V2代码
2024-08-03
智能优化算法+黏菌算法及应用Python实现
2023-07-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人