自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 简单粗暴PyTorch之hook函数与CAM可视化

hook函数与CAM可视化

2022-02-19 18:25:34 394

原创 排序总结(python)

排序一、排序 Low B三人组1.1 冒泡1.2 选择1.3 插入二、排序 NB 三人组2.1 快排2.2 归并2.3 堆排一、排序 Low B三人组1.1 冒泡思想:1> 每两个相邻的数,如果前面比后面大,则交换这两个数。2> 一趟排序完成后,则无序区减少一个数,有序区增加一个数。3> 代码关键点:趟、无序区范围代码:def bubble_sort(li): for i in range(len(li)-1): for j in range(len

2021-04-02 09:24:17 258 1

原创 BERT 运行MRPC demo问题

如果出现:No registered '_CopyFromGpuToHost' OpKernel for CPU devices compatible with node tensorflow.python.framework.errors_impl.NotFoundError: No registered '_CopyFromGpuToHost' OpKernel for CPU devices compatible with node swap_out_gradients/bert/encoder

2020-11-13 12:29:10 676

原创 CUDA安装位置版本查询

1: nvcc --version 查看版本2:set cuda 查看位置

2020-11-12 12:22:54 18788

原创 Anaconda虚拟环境操作Windows

创建虚拟环境:conda create -n 虚拟环境名 python=3.6激活虚拟环境:使用如下命令即可激活创建的虚拟环境Linux: source activate 虚拟环境名Windows: activate 虚拟环境名此时使用python --version可以检查当前python版本是否为想要的(即虚拟环境的python版本)。退出虚拟环境:使用如下命令即可退出创建的虚拟环境Linux: source deactivate 虚拟环境名Windows:deactivate

2020-10-24 11:08:40 496

原创 Glove安装

1、pip install glove-python-binary2、下载源代码:https://github.com/maciejkula/glove-python/files/4622557/glove_python-0.1.0-cp37-cp37m-win_amd64.zip,解压放到自己环境的site-packages中参考https://blog.csdn.net/weixin_41596463/article/details/106781674?utm_medium=distribu

2020-10-22 21:05:48 1067

转载 pip后面的清华镜像源地址

pip install XXXX -i https://pypi.tuna.tsinghua.edu.cn/simple

2020-09-16 11:50:56 19112 1

原创 Python之更简洁的语法(解析语法、条件表达式)

更简洁的语法一、解析语法1.1 解析语法的基本结构2.2 其他解析语法的例子二、条件表达式一、解析语法ls = [[0]*10 for i in range(5)]lsoutput:[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

2020-09-12 16:47:16 461

原创 Python之数据类型底层实现

数据类型的底层实现一、从奇怪的列表说起1.1 错综复杂的复制1.2 列表的底层实现1.3 引入深拷贝二、神秘的字典1.1 快速的查找1.2 字典的底层实现一、从奇怪的列表说起1.1 错综复杂的复制list_1 = [1, [22, 33, 44], (5, 6, 7), {"name": "Sarah"}]浅拷贝# list_3 = list_1 # 错误!!!list_2 = list_1.copy() # 或者list_1[:] \ list(list_1)

2020-09-12 16:17:46 390

原创 Python之文件、异常和模块

文件、异常和模块一、文件1.1 文件的打开1.2 文件的读取1.3 文件的写入1.4 既读又写1.5 数据的存储与读取一、文件实际应用中,我们绝大多数的数据都是通过文件的交互完成的1.1 文件的打开文件的打开通用格式with open("文件路径", "打开模式", encoding = "操作文件的字符编码") as f: "对文件进行相应的读写操作"使用with 块的好处:执行完毕后,自动对文件进行close操作。【例1】一个简单的文件读取with open("E:\ip

2020-09-09 16:12:56 180

原创 Python之类-面向过程的编程

类一、类的定义1.1 类的命名1.2 类的属性1.3 类的方法二、创建实例2.1 实例的创建2.2 访问属性2.3 调用方法2.4 修改属性三、类的继承3.1 简单的继承3.2 给子类添加属性和方法3.3 重写父类的方法——多态3.4 用在类中的实例一、类的定义三要素:类名、属性、方法1.1 类的命名要有实际意义驼峰命名法——组成的单词首字母大写Dog、 CreditCard、 ElectricCar# class 类名:"""类前空两行"""​​class Car(): ""

2020-09-08 21:18:25 252

原创 Python之函数-面向过程的编程

函数一、函数的定义及调用1.1为什么要用函数1.2 函数的定义及调用1.3 参数传递1.4 函数体与变量作用域1.5 返回值1.6 几点建议二、函数式编程例子三、匿名函数四、面向过程和面向对象一、函数的定义及调用1.1为什么要用函数1、提高代码复用性——抽象出来,封装为函数2、将复杂的大问题分解成一系列小问题,分而治之——模块化设计的思想3、利于代码的维护和管理顺序式# 5的阶乘n = 5res = 1for i in range(1, n+1): res *= iprint

2020-09-01 20:42:23 532

原创 Python之程序控制结构

程序控制结构一、条件测试1.1 比较运算1.2 逻辑运算1.3 存在运算二、分支结构2.1 单分支2.2 二分支2.3 多分支2.4嵌套语句三、遍历循环四、无限循环五、注意问题一、条件测试1.1 比较运算a = 10b = 8print(a > b) # 大于print(a < b) # 小于print(a >= b) # 大于等于print(a <= b) # 小于等于print(a == b) # 等于print(a != .

2020-08-25 10:50:00 184

原创 Python之组合数据类型(列表、元组、字典、集合)

一、列表1.1 列表的表达序列类型:内部元素有位置关系,能通过位置序号访问其中元素列表是一个可以使用多种类型元素,支持元素的增、删、查、改操作的序列类型ls = ["Python", 1989, True, {"version": 3.7}]lsoutput:[‘Python’, 1989, True, {‘version’: 3.7}]另一种产生方式:list(可迭代对象)可迭代对象包括:字符串、元组、集合、range()等字符串转列表list("人工智能是未来的趋势")ou.

2020-08-24 15:49:34 1658

原创 Python之基本数据类型总结

基本数据类型一、数字类型1.1数字类型的组成1.1.1整数 不同进制转换1.1.2 浮点数——不确定性1.2数字运算操作符(a 操作符 b)1.3 数字运算操作函数 function(x, ...)二、字符串类型三、布尔类型四、类型转换一、数字类型1.1数字类型的组成1.1.1整数 不同进制转换·默认输入十进制,二进制0b、八进制0o、十六进制 0x·十进制转换其他进制a = bin(16) # 转二进制b = oct(16) # 转八进制c= hex(16) # 转十六进制print(

2020-08-23 15:19:32 868

原创 简单粗暴PyTorch之TensorBoard详解

TensorBoard一、TensorBoard介绍二、SummaryWriter学习三、图像可视化四、卷积核与特征图可视化一、TensorBoard介绍TensorBoard:TensorFlow中强大的可视化工具运行机制在python脚本中记录可视化的数据,就是要监控的数据import numpy as npfrom torch.utils.tensorboard import SummaryWriter# SummaryWriter最根本的类,创建一个writerwriter =

2020-08-22 21:38:10 1871

原创 Python之基本语法

基本语法一、数据类型1.1 数字类型1.2 字符串类型1.3布尔类型 逻辑运算1.4 列表list1.5元祖tuple1.6 字典dict1.7集合 set二、变量2.1变量的命名2.2 不允许情况2.3 变量名定义技巧三、控制流程四、输入输出五、程序格式一、数据类型1.1 数字类型int 整型 :2float 浮点型: 2.0complex 复数: 3+4j1.2 字符串类型"jpop -jlkj"1.3布尔类型 逻辑运算y=2>1yTrue上述类型均为单个数据,若有自

2020-08-21 09:53:30 132

原创 简单粗暴PyTorch之学习率调整策略

一、为什么要调整学习率?开始时用大步伐,快到最低点时,下降步伐减小,慢慢靠近。梯度下降:????????+???? = ???????? − ????(????????)????????+???? = ???????? − LR * ????(????????)学习率(learning rate)控制更新的步伐二、pytorch的六种学习率调整策略六种都是继承一种基类class _LRScheduler主要属性:• optimizer:所关联的优化器• last_epoch:记录epo

2020-08-20 15:11:30 1133

原创 简单粗暴PyTorch之优化器

优化器一、优化器属性与方法二、一、优化器属性与方法pytorch的优化器:管理并更新模型中可学习参数的值,使得模型输出更接近 真实标签导数:函数在指定坐标轴上的变化率方向导数:指定方向上的变化率梯度:一个向量,方向为方向导数取得最大值的方向基本属性• defaults:优化器超参数• state:参数的缓存,如momentum的缓存• params_groups:管理的参数组,list中有个字典• _step_count:记录更新次数,学习率调整中使用基本方法• zero_gra

2020-08-19 10:22:56 2760

原创 简单粗暴PyTorch之18个损失函数

损失函数一、损失函数概念二、交叉熵损失函数三、NLL/BCE/BCEWithLogits Loss3四、其他损失函数一、损失函数概念损失函数:衡量模型输出与真实标签的差异损失函数(Loss Function): ???????????????? = ????(????^, ????)代价函数(Cost Function):目标函数(Objective Function): ???????????? = ???????????????? + Regularization二、交叉熵损失函数三、NL

2020-08-18 17:37:14 3046

原创 简单粗暴PyTorch之权值初始化方法与重要性

权值初始化一、梯度消失与爆炸二、Xavier方法与Kaiming方法三、常用初始化方法一、梯度消失与爆炸不恰当的权值初始化,可能带来梯度消失与爆炸。H2=H1∗W2ΔW2=∂Loss∂W2=∂Loss∂out∗∂out∂H2∗∂H2∂w2=∂Loss∂out∗∂out∂H2∗H1\begin{aligned}\mathrm{H}_{2}=& \mathrm{H}_{1} * \mathrm{W}_{2} \\\Delta \mathrm{W}_{2} &=\frac{\parti

2020-08-15 22:58:27 653

原创 简单粗暴PyTorch之nn网络层(卷积、池化、线性、激活)

nn网络层一、卷积层1.1 卷积概念1.2 nn.Conv2d1.3 转置卷积二、池化层 Pooling Layer2.1 最大池化nn.MaxPool2d2.2 平均池化nn.AvgPool2d2.3 反池化上采样nn.MaxUnpool2d三、线性层 Linear Layer四、激活函数层 Activation Layer4.1 nn.Sigmoid4.2 nn.tanh4.3 nn.ReLU4.4 改进ReLU函数一、卷积层1.1 卷积概念卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行

2020-08-12 23:22:34 1782

原创 简单粗暴PyTorch之模型容器与AlexNet构建

模型容器与AlexNet构建一、模型容器1.1 nn.Sequetial1.2 nn.ModuleList1.3 ModuleLDictAlexNet构建一、模型容器模型容器包含:nn.Sequetialnn.ModuleListnn.ModuleDict1.1 nn.Sequetialnn.Sequential 是 nn.module的容器,用于按顺序包装一组网络层• 顺序性:各网络层之间严格按照顺序构建• 自带forward():自带的forward里,通过for循环依次执行前向传播

2020-08-11 16:35:23 179

原创 简单粗暴PyTorch之模型创建与nn.module

模型创建与nn.module一、模型的创建1.1 构建子模块1.2 拼接子模块二、nn.Module一、模型的创建模型创建的步骤:模型构建的两个要素构建子模块拼接子模块1.1 构建子模块以之前上传的纸币二分类代码为例,对模型的构建进行讲解。在70行设置断点,查看如何构建LeNet网络。step into 进入进入到LeNet的__init__函数构建子模块,创建了两个卷积层与三个全连接层。运行完最后一个子模块self.fc3就会跳出返回,模型的初始化便完成了。1.2 拼接

2020-08-11 15:45:45 718

原创 简单粗暴PyTorch之transforms详解(二)

这里写目录标题一、数据增强二、裁剪三、翻转和旋转四、图像变换五、transforms的操作六、自定义transforms一、数据增强数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更 丰富,从而让模型更具泛化能力从:到:二、裁剪transforms.CenterCrop功能:从图像中心裁剪图片• size:所需裁剪图片尺寸transforms.RandomCrop功能:从图片中随机裁剪出尺寸为size的图片• size:所需裁剪图片尺寸• padding:

2020-08-10 11:45:10 2653 2

原创 简单粗暴PyTorch之transforms详解(一)

transforms详解一、transforms 介绍二、 transforms 运行机制一、transforms 介绍transforms在计算机视觉工具包torchvision下:torchvision.transforms : 常用的图像预处理方法torchvision.datasets : 常用数据集的dataset实现,MNIST,CIFAR-10,ImageNet等torchvision.model : 常用的模型预训练,AlexNet,VGG, ResNet,GoogLeNet等t

2020-08-09 22:28:51 44775 4

原创 简单粗暴PyTorch之Dataloader与Dataset(数据读取的核心)

Dataloader与Dataset一、Dataloader二、Dataset机器学习模型训练步骤由数据、模型、损失函数、优化器、迭代训练五部分组成。数据部分由数据收集、数据划分、数据读取、数据预处理四部分组成。Dataloader与Dataset是Pytorch数据读取的核心一、Dataloadertorch.utils.data.DataLoader()功能:构建可迭代的数据装载器• dataset: Dataset类,决定数据从哪读取及如何读取• batchsize : 批大小•

2020-08-09 16:27:30 825

原创 简单粗暴PyTorch之autograd自动求导系统

autograd自动求导系统一、autograd一、autogradtorch.autograd.backward()功能:自动求取梯度• tensors: 用于求导的张量,如 loss• retain_graph : 保存计算图• create_graph : 创建导数计算图,用于高阶 求导• grad_tensors:多梯度权重与上一篇博客中的y.backward()有何不同debug后发现调用的是torch.autograd.backword() # grad_tenso

2020-08-09 11:20:55 355

原创 简单粗暴PyTorch之计算图与动态图

计算图与动态图机制一、计算图二、PyTorch的动态图机制一、计算图计算图是用来描述运算的有向无环图计算图有两个主要元素:结点(Node)和 边(Edge)结点表示数据,如向量,矩阵,张量边表示运算,如加减乘除卷积等用计算图表示:y = (x+ w) * (w+1)a = x + w ,b = w + 1y = a * bx = 2 , w =1 带入计算,计算图如下图所示:使梯度求导更加方便计算图与梯度求导y=(x+w)∗(w+1)a=x+wb=w+1y=a∗b∂y∂w=∂

2020-08-08 23:33:16 830

原创 简单粗暴PyTorch之张量操作

张量操作1、张量的操作:拼接、切分、索引和变换1.1 张量的拼接与切分1.2 张量的索引1.3 张量变换2、张量的数学运算2.1 加减乘除2.2 对数、指数、幂函数2.3 三角函数3、线性回归1、张量的操作:拼接、切分、索引和变换1.1 张量的拼接与切分拼接torch.cat() # 不会扩张维度功能:将张量按维度dim进行拼接• tensors: 张量序列 • dim : 要拼接的维度 t = torch.ones((2, 3)) t_0 = torch.cat([t, t

2020-08-08 21:25:58 1572 1

原创 简单粗暴PyTorch之张量创建

张量1、 Tensor概念2、 Tensor直接创建3、 Tensor数值创建4、 Tensor概率分布创建1、 Tensor概念张量是一个多维数组,它是标量、向量、矩阵的高维拓展Variable是torch.autograd中的数据类型 主要用于封装Tensor,进行自动求导PyTorch0.4.0版开始, Variable并入Tensor• data: 被包装的Tensor• dtype: 张量的数据类型,如 torch.FloatTensor, torch.cuda.FloatTenso

2020-08-08 16:50:51 245

原创 线性回归就是这么so easy(附Python与Sklearn代码实现)

逻辑回归一、线性回归简介1.1 线性回归1.2 损失函数二、梯度下降法三、Ridge回归四、Lasso回归五、最小二乘法求线性回归六、Sklearn实现一、线性回归简介1.1 线性回归  我们以身高来举例,直觉告诉我们爸爸妈妈的身高会共同影响子女的身高,为了同时考虑到父母双方的身高的影响,可以取其两者的平均值作为因素进行研究,这里父母的平均身高就是自变量x,而我们的身高就是因变量y,y 和 x 之间存在线性关系:  那我们怎么求出上面的参数 w 和 b 呢,就是需要我们收集足够多的 x, y ,然后

2020-08-06 15:22:18 222

原创 全卷积网络FCN详解与代码实现

简单粗暴——FCN一、学习目标二、CNN 与 FCN 的区别三、FCN结构四、FCN缺点五、VGG网络的FCN化先附上FCN论文Pytorch实现 https://github.com/wkentaro/pytorch-fcn一、学习目标1、理解FCN原理2、掌握FCN的关键技术3、掌握FCN的实现二、CNN 与 FCN 的区别  FCN与CNN的区域在把于CNN最后的全连接层换成卷积层。  对于一般的分类CNN网络,如VGG和Resnet,都会在网络的最后加入一些全连接层,经过softm

2020-08-05 11:11:00 4034

原创 简单粗暴——快速排序介绍(Python实现LeetCode215)

快速排序快速排序(Quick Sort)算法也是一种递归排序,对冒泡排序的改进,分而治之,减少比较次数,牺牲空间。原理设置一个基准值(pivot),这个基准点可以随意设置,但是一般来说我们选择第一个数据。将列表分成左右两部分,一部分比基准大一部分比基准小。采用挖坑法:1、用left标识数组的第一个数据,right标识数组的最后一个数据2、如果right位上的数据大于基准值,则继续往后遍历(right- -);’如果小于基准值,则将right位上的值赋值给left位。3、让left往前遍历,

2020-08-03 16:08:27 567

原创 手动配置Anaconda3环境变量

忘记安装时勾选环境变量手动配置环境变量几个文件的含义路径 含义 D:\Study\Anaconda3 ...

2019-10-30 11:11:52 1890

Python刷LeetCode汇总.zip

使用Python进行力扣刷题,题目按照知识点汇总

2020-08-10

transforms.zip

简单粗暴PyTorch之transforms详解中的代码与数据集

2020-08-09

空空如也

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

TA关注的人

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