![](https://img-blog.csdnimg.cn/b6ac7e85a9364f3384df6180b4bdf942.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python和Pytorch学习
文章平均质量分 89
Python和Pytorch学习
好喜欢吃红柚子
行到水穷处,坐看云起时
展开
-
【深度学习代码缝合教程】二:适用于新手小白的超详细模块+模块=新模块的代码缝合
参考B站教学视频:上一篇写了如何把模块放进自己的主干网络进行模块的融合,那么如果想要把模块A+模块B进行融合然后形成一个新模块C要如何做呢?原创 2024-06-04 15:56:50 · 1026 阅读 · 0 评论 -
【深度学习代码缝合教程】一:适用于新手小白的超详细深度学习主干网络+模块代码缝合
教你如何缝合代码模块原创 2024-04-15 14:40:01 · 2944 阅读 · 1 评论 -
【新手适用】手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN三: 如何验证和测试模型
新建一个test.py文件,导入所需的包,并且定义测试数据集和dataloader。定义所需的设备。原创 2024-04-02 14:00:57 · 627 阅读 · 0 评论 -
【新手适用】手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN二: 如何训练模型,内附详细损失、准确率、均值计算
通过。原创 2024-04-02 11:32:06 · 1407 阅读 · 0 评论 -
【新手适用】手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN一: 创建model模块和加载数据集
前向传播函数需要传入self和输入的变量,一般写为x,即。在函数内把之前定义好的层按顺序调用,每一层在计算后会返回结果;我们需要一个变量进行保存,即,在最后将最后一步的计算结果返回。当网络中不存在跳跃连接或密集连接等分支结构的情况下,可以直接用x作为中间变量。依次调用前面定义的网络层修改需要变化的张量维度。原创 2024-03-12 14:31:57 · 1351 阅读 · 0 评论 -
【刘二大人】pytorch深度学习实践(三):如何实现线性模型的反向传播+代码实现详解(Tensor、backward函数)
y′w∗xy' =w*xy′w∗xlossy′−y2x∗w−y2lossy′−y2x∗w−y2这段代码是在构建如下的计算图,前向传播并且求出loss值此处的lll是一个张量(因为w是一个张量),所以后续需要lll的值时要使用liteml.item()litem的方法进行取值。原创 2023-12-06 09:58:56 · 524 阅读 · 0 评论 -
Vision Transformer
把class token从最终结果[197,768]中切片拿出来,对其进行linear全连接(简单理解),如果需要类别概率的话,可以再接一个softmax。在代码实现中,直接通过一个卷积层来实现以ViT一 B/16为例,使用卷积核大小为16x16,stride为16, 卷积核个数为768;对于标准的Transformer模块,要求输入的是token (向量)序列,即二维矩阵[num_token,token_dim];以及Position Embedding。借用我导的图片来总结一下。原创 2023-12-04 10:20:20 · 165 阅读 · 0 评论 -
适合小白的超详细yolov8环境配置+实例运行教程,从零开始教你如何使用yolov8训练自己的数据集(Windows+conda+pycharm)
yolov8源码下载地址:GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLiteyolov8使用文档: Home - Ultralytics YOLOv8 Docs教学视频参考: 包会!YOLOv8训练自己的数据集_哔哩哔哩_bilibili先用conda prompt创建一个虚拟环境,我的叫yolov8, python版本用3.10源码地址:GitHub - ul原创 2023-11-21 08:14:27 · 112447 阅读 · 165 评论 -
【刘二大人】pytorch深度学习实践(二):梯度下降算法详解和代码实现(梯度下降、随机梯度下降、小批量梯度下降的对比)
现在多使用小批量随机梯度下降算法来进行梯度的更新。原创 2023-10-27 11:37:38 · 2580 阅读 · 0 评论 -
【刘二大人】pytorch深度学习实践(一):线性模型y=w*x和y=w*x+b的代码和绘图实现
使用线性模型y = w*x计算模型的损失值并且使用matplotlib给出cost function图像。使用线性模型y = w*x+b给出cost function图像,使用3d图来绘制图像。记录日志,防止训练过程中程序异常停止时丢失训练数据。为什么要打印过程信息?原创 2023-10-25 12:15:35 · 266 阅读 · 0 评论 -
深度学习小白理论入门(一)之必备数学基础(自用笔记,方便快速查阅)
深度学习所需的数学基础原创 2023-09-13 09:14:29 · 463 阅读 · 0 评论 -
pytorch进阶学习(八):使用训练好的神经网络模型进行图片预测
课程资源: 【小学生都会的Pytorch】九、运用你的模型做预测(1)_哔哩哔哩_bilibili 笔记:https://blog.csdn.net/weixin_45662399/category_12040625.html?spm=1001.2014.3001.5482 目录一、原理介绍1. 加载模型与参数2. 读取图片3. 图片预处理4. 把图片转换为tensor5. 增加batch_size的维度6. 模型验证6.1 模型的初步输出 6.2 输出预测值概率最大的值和位置 6.3 把tensor转为原创 2023-04-14 10:33:23 · 14218 阅读 · 1 评论 -
pytorch进阶学习(七):神经网络模型验证过程中混淆矩阵、召回率、精准率、ROC曲线等指标的绘制与代码
在机器学习领域,混淆矩阵(ConfusionMatrix),又称为可能性矩阵或错误矩阵。混淆矩阵是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个混淆矩阵里面。在下图是否为猫的预测中,表格左上(实际为正和预测为正)和右下(实际为负和预测为负)是预测正确的值。根据左边表格的数据,可以得出右边表格中的数字,即得到了混淆矩阵。原创 2023-04-14 08:51:32 · 8072 阅读 · 0 评论 -
pytorch进阶学习(六):如何对训练好的模型进行优化、验证并且对训练过程进行准确率、损失值等的可视化,新手友好超详细记录
推荐与上一节搭配食用~原创 2023-04-13 11:26:26 · 7569 阅读 · 7 评论 -
pytorch进阶学习(五):神经网络迁移学习应用的保姆级详细介绍,如何将训练好的模型替换成自己所需模型
filter 函数将模型中属性 requires_grad = True 的参数选出来,然后使用随机梯度下降算法SDG对fc层参数进行梯度更新,控制优化器只更新需要更新的层。# filter 函数将模型中属性 requires_grad = True 的参数选出来params_conv = filter(lambda p: p.requires_grad, pretrain_model.parameters()) # 要更新的参数在parms_conv当中# 定义损失函数,计算相差多少,交叉熵,原创 2023-04-12 19:16:32 · 3306 阅读 · 1 评论 -
pytorch进阶学习(三):在数据集数量不够时如何进行数据增强
1. 尺寸放大缩小2. 旋转(任意角度,如45°,90°,180°,270°)3. 翻转(水平翻转,垂直翻转)4. 明亮度改变(变亮,变暗)5. 像素平移(往一个方向平移像素,空出部分自动填补黑色)6. 添加噪声(椒盐噪声,高斯噪声)原创 2023-04-11 11:26:14 · 3861 阅读 · 0 评论 -
pytorch进阶学习(四):使用不同分类模型进行数据训练(alexnet、resnet、vgg等)
数据集在data文件夹下。原创 2023-04-12 09:56:49 · 1901 阅读 · 0 评论 -
远程服务器连接出现qt.qpa.plugin: Could not find the Qt platform plugin xcb in 和: cannot connect to X server问题
我需要运行一个和学校服务器连接并且需要用到OpenCV和cv中的imshow方法的代码,然后进行图片显示框的弹出,运行时出现了如下问题。如果重新打开服务器后又出现连接不上的问题,则重新按照第5步开始再进行配置,因为可能连接的display的localhost改变了,再设置一遍就行。这个问题花了我一天时间终于解决了,好感人,使用免费的软件vcxsrv,然后进行xshell、服务器和pycharm的配置即可。后来我找到一个免费的软件vcxsrv,可以完成远程服务器的图片回传,成功解决了问题。原创 2023-04-11 08:36:14 · 1966 阅读 · 2 评论 -
pytorch进阶学习(二):使用DataLoader读取自己的数据集
该方法为class loaddata的主方法,使用index下标获取到每一张图片的path和label后,用flag判断为训练集还是验证集,并且采用对应的图片处理措施(train_tf/val_tf)。课程准备:本节课需要用到3个Python文件和一个数据集文件,代码后面我都会给出,zip需要自己下载,,数据集zip文件和所需的三个代码文件可以在“leo在这”进行下载。'CreateDataset.py' 用于把数据集文件夹中的所有图片文件生成一个TXT文件,其中存放着所有图片的路径和图片对应的标签。原创 2023-04-10 09:53:39 · 6814 阅读 · 1 评论 -
pytorch进阶学习(一):使用远程服务器在pycharm上运行简单的小型网络模型,使用fashion-minist数据集进行训练
教你如何在远程服务器上和pycharm结合起来跑程序原创 2023-03-23 19:56:35 · 2939 阅读 · 1 评论 -
手把手教你完成一个Python与OpenCV人脸识别项目(对图片、视频、摄像头人脸的检测)超详细保姆级记录!
彩色图像中的每个像素颜色由R、G、B三个分量来决定,而每个分量的取值范围都在0-255之间,这样对计算机来说,彩色图像的一个像素点就会有256*256*256=16777216种颜色的变化范围!在下图的路径中,我们可以看到需要xml文件,这些都是OpenCV中自带的分类器,根据文件名我们可以看到有识别眼睛的,身体的,脸的,等等。彩色图片的信息含量过大,而进行图片识别时,其实只需要使用灰度图像里的信息就足够了,此时为没有设定参数,可以看到图片识别人脸出现了失误,把背景中的海浪也识别为了人脸。原创 2023-02-12 16:35:08 · 17958 阅读 · 15 评论 -
在conda虚拟环境中安装OpenCv并在pycharm中使用
注意:cp39指Python的版本为3.9,amd64指操作系统为64位,我下载的是opencv_python-4.5.5-cp39-cp39-win_amd64.whl我的虚拟环境名称为testOpencv,Python版本为3.9使用cd命令定位到虚拟环境创建的路径中,为后面安装OpenCV文件做准备。原创 2022-12-23 12:25:57 · 8390 阅读 · 1 评论 -
pytorch初学笔记(十四):损失函数
L1损失函数: 基于逐像素比较差异,然后取绝对值。均方误差(Mean Square Error,MSE)是回归损失函数中最常用的误差,它是预测值f(x)与目标值y之间差值平方和的均值,其公式如下所示:1.2.2 参数介绍与上面的L1损失函数一样,我们可以改变reduction的值来进行对应数值的输出。原创 2022-11-30 10:04:25 · 2817 阅读 · 0 评论 -
pytorch初学笔记(十三):神经网络基本结构之Sequential层的使用以及搭建完整的小型神经网络实战
Sequential — PyTorch 1.13 documentation A sequential container. Modules will be added to it in the order they are passed in the constructor.构建一个序列化的container,可以把想要在神经网络中添加的操作都放进去,按顺序进行执行。把卷积、非线性激活、卷积、非线性激活使用sequantial进行组合,一起放在构建的model中。使用数据集为CIFAR10,其模型原创 2022-11-29 11:08:17 · 3678 阅读 · 1 评论 -
pytorch初学笔记(十二):神经网络基本结构之线性层
CLASS,,bias=True,,dtype=None)每一层的某个神经元的值都为前一层所有神经元的值的sum和。基于公式y=wx+b计算,w为权重,x为输入,b为偏置值。in_features,输入特征(int) – size of each input sample,输入的tensor大小out_features,输出特征(int) – size of each output sample,输出的tensor大小bias(boolFalseTrueweight(bias。原创 2022-11-28 10:44:15 · 5803 阅读 · 0 评论 -
pytorch初学笔记(十一):神经网络基本结构之非线性激活层的使用
在神经网络中,激活函数负责将来自节点的加权输入转换为该输入的节点或输出的激活。ReLU 是一个分段线性函数,如果输入为正,它将直接输出,否则,它将输出为零。它已经成为许多类型神经网络的默认激活函数,因为使用它的模型更容易训练,并且通常能够获得更好的性能。CLASS)inplace代表是否替换/保留的意思。inplace = True,代表确定替换,即不保留非线性激活之前的值,会把输入值直接替换为激活后的值。原创 2022-11-23 15:06:34 · 1642 阅读 · 1 评论 -
pytorch初学笔记(十):神经网络基本结构之最大池化的使用
池化核(Union[int,Tuple[int,int]]stride(Union[int,Tuple[int,int]]padding(Union[int,Tuple[int,int]]dilation(Union[int,Tuple[int,int]](bool) – ifTruelaterceil_mode(bool是否对结果进行保留,默认为FALSE注意:1. stride的默认大小为池化核的大小2. dilation:空洞卷积,如右图,进行卷积操作时会隔n个取一个。原创 2022-11-23 10:51:52 · 1904 阅读 · 1 评论 -
pytorch初学笔记(九):神经网络基本结构之卷积层
常用的参数主要是前五个。(int) – Number of channels in the input image,输入图片的通道数(int) – Number of channels produced by the convolution,输出图片的通道数(intortuple) – Size of the convolving kernel,卷积核的大小e.g. if kernel size = 3, 则卷积核的大小是3*3stride(intortuple,optional。原创 2022-11-21 18:09:34 · 2957 阅读 · 1 评论 -
pytorch初学笔记(八):神经网络之卷积操作
什么是二维卷积?二维卷积nn.Conv2d用于图像数据,对宽度和高度都进行卷积。原创 2022-11-20 17:23:56 · 2671 阅读 · 0 评论 -
pytorch初学笔记(七):神经网络基本骨架 torch.nn.Module
自定义名为Maweiyi的神经网络,继承自nn.Module重写init和forward两个方法,在forward中定义该神经网络的规则,即输入+1为输出实例化神经网络把tensor类型的值x放入神经网络中进行输出成功输出结果为 x+1# 创建神经网络# 输入的值为x,tensor型,数值为1# 输出为output。原创 2022-11-20 15:42:55 · 3249 阅读 · 0 评论 -
pytorch初学笔记(六):DataLoader的使用
DataLoader是一个可迭代的数据装载器,组合了数据集和采样器,并在给定数据集上提供可迭代对象。可以完成对数据集中多个对象的集成。CLASSDataLoaderdataset,,,,,,,,,timeout=0,,,,*,,,)Epoch: 所有训练样本都已输入到模型中,称为一个epochIteration: 一批样本(batch_size)输入到模型中,称为一个Iteration,原创 2022-10-30 20:54:27 · 20142 阅读 · 5 评论 -
pytorch初学笔记(五):torchvision中dataset的最详细使用(以CIFAR10和MNIST为例)
torchvision是pytorch下的一个包,主要由计算机视觉中的流行数据集、模型体系结构和常见图像转换等模块组成。Transforming and augmenting images:进行图片变换等。Models and pre-trained weights:提供一些预训练好的神经网络或权重参数等。Dataset :提供常用的数据集。CIFAR-10是一个更接近普适物体的彩色图像的小型数据集。一共包含10 个类别的RGB 彩色图片。原创 2022-10-30 15:00:34 · 5035 阅读 · 1 评论 -
pytorch初学笔记(三)Tranforms的使用
Python __call__()方法(详解版) (biancheng.net)call()方法是Python中一个很特殊的方法。凡是可调用对象,都可以通过调用__call__()方法来调用该对象。如果类中定义了__call__()方法,那么该类的实例对象也将成为可调用对象。该对象被调用时,将执行__call__()方法中的代码。该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。原创 2022-10-28 16:09:24 · 3386 阅读 · 5 评论 -
pytorch初学笔记(四):常见的Transforms使用(ToTensor、Normalize、Resize、Compose、RandomCrop)
输入(channel,height,width)形式的tensor,并输入每个channel对应的均值和标准差作为参数,函数会利用这两个参数分别将每层标准化(使数据均值为0,方差为1)后输出。为了让归一化结果更加明显,我们创建3个step,并且依次修改不同的mean和std,查看对应结果。该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,如果我们的输入在[0,1]之间,经过归一化之后结果即可在[-1 , 1]之间。结果如下,可以看到经过归一化后的图片产生了明显的变化。原创 2022-10-28 17:33:41 · 10541 阅读 · 2 评论 -
pytorch初学笔记(二):TensorBoard的使用
使用如下语句导入SummaryWriter类1. 定义SummaryWriter类可以在指定文件夹生成一个事件文件,这个事件文件可以对TensorBoard解析。'SummaryWriter 类提供了一个可以在已给定目录下创建事件文件的高级API,并可以向其中添加摘要和事件。该类可以异步的更新文件内容,允许训练程序调用方法直接从训练循环向文件添加数据,而不减慢速度培训。原创 2022-10-27 15:52:55 · 3688 阅读 · 4 评论 -
pytorch初学笔记(一):如何加载数据和Dataset实战
在python中定义类的要求:class关键字定义类,后面跟着类的全名,括号(object)表示该类是从哪个类中继承下来的,如果没有合适的继承类,则使用object类,这是所有类都会继承的类。在类里定义方法的要求:在类中定义方法时,第一个参数必须是self。在类中定义方法的要求:self变量无需传递,其他参数正常传入。例:从torch工具箱中导入Dataset模块。原创 2022-10-21 11:21:08 · 5463 阅读 · 7 评论 -
Python快速入门(1)常用容器和内置函数介绍
分别创建列表,元组,字典和集合#输出列表的第2个元素,下标从0开始#输出元组的第2个元素#输出字典中键为a的对应的值#输出列表的长度#输出元组中元素2首次出现的位置#输出字典中值为98的对应的键的内容#输出集合中最大的元素229731b3创建文件并写入内容a+:如果文件存在就在文件里追加内容,如果文件不存在就创建一个新文件,然后写入内容fp.close()原创 2022-10-12 12:02:26 · 1578 阅读 · 0 评论 -
python数据爬取疫情实时数据
jupyter笔记本交互性强,可以代码块执行。原创 2022-10-05 20:53:08 · 3937 阅读 · 1 评论