python小知识
微信公众号[机器学习炼丹术]
每天都要进步
展开
-
【小白学PyTorch】7 最新版本torchvision.transforms常用API翻译与讲解
文章转自:微信公众号【机器学习炼丹术】。有需要的话,可以添加作者微信交流:cyx645016617。朋友圈经常抽奖送书送红包哈哈。参考目录:文章目录1 基本函数1.1 Compose1.2 RandomChoice1.3 RandomOrder2 PIL上的操作2.1 中心切割CenterCrop2.2 随机切割RandomCrop2.3 随机比例切割2.4 颜色震颤ColorJitter2.5 随机旋转RandomRotation2.6 灰度化Grayscale2.7 size2.8 概率随机(常用原创 2020-09-07 13:58:51 · 336 阅读 · 0 评论 -
【阿里云训练营】python查漏补缺 2
参考目录:文章目录1. if 语句2. if - else 语句3. if - elif - else 语句4. assert 关键词5. while 循环6. while - else 循环7. for 循环8. for - else 循环9. range() 函数6. enumerate()函数7. break 语句8. continue 语句9. pass 语句10. 推导式1. if 语句if 2 > 1 and not 2 > 3: print('Correct Judg原创 2020-09-06 07:16:19 · 450 阅读 · 0 评论 -
【阿里云训练营】python查漏补缺 1
文章来自微信公众号:【机器学习炼丹术】。欢迎大家关注,是我的个人学习干活分享基地。干货文章100+文章目录1 注释2 is 与 ==3 运算优先级4 查找所有属性和方法5 type和isinstance36 位运算6.1 原码、反码和补码6.2 按位运算6.3 利用位运算实现快速计算6.4 利用位运算实现整数集合1 注释在 Python 中,# 表示注释,作用于整行。''' ''' 或者 """ """ 表示区间注释,在三引号之间的所有内容被注释【例子】单行注释# 这是一个注释'''这是原创 2020-09-05 08:47:05 · 291 阅读 · 0 评论 -
一文读懂:GBDT梯度提升
先缕一缕几个关系:GBDT是gradient-boost decision treeGBDT的核心就是gradient boost,我们搞清楚什么是gradient boost就可以了GBDT是boost中的一种方法,boost还有XGBoost,adaboost。基本概念【Boost】就是让多个弱分类器,通过不同的集成方式,来让多个弱分类器变成一个强分类器。【gradient-boost】 梯度提升。简单的说,先训练一个弱分类器,然后弱分类器和目标值之间的残差,作为下一个弱分类器训练的目标原创 2020-06-22 03:30:06 · 715 阅读 · 0 评论 -
一文搞懂:Adaboost及手推算法案例
boostingBoosting 算法的特点在于:将表现一般的弱分类器通过组合变成更好的模型。代表自然就是我们的随即森林了。GBDT和Adaboost是boost算法中比较常见的两种,这里主要讲解Adaboost。AdaboostAdaboost算法的核心就是两个权重。对于数据有一个权重,权重大的数据计算的损失就大;然后对于每一个弱分类器有一个权重,这个权重就是每一个弱分类器最终投票的比重。【先给出Adaboost关键的公式】:α1=12ln(1−ϵ1ϵ1)\alpha_1=\frac{1}{2原创 2020-06-21 06:43:22 · 705 阅读 · 2 评论 -
【零基础(面试考点/竞赛用)】boosting算法中的佼佼者 LightGBM = GOSS + histogram + EFB
之前一直在用LightGBM模型,但是它的原理并不是非常的了解,与之前讲过的GBDT的区别也不甚清楚,所以今日一鼓作气,好好整明白这个运行的原理。先放一个GBDT的链接:【零基础学习(面试考点/竞赛不用)】GBDT Gradient-Boosting-Decision-Tree 梯度下降树其实在上面的讲解GBDT的博客中提到了:GBDT中寻找分隔点分割特征是使用穷举法。穷举所有可能的情况然后比较哪一个最好。所以可以看的出来GBDT和XGBoost(这个也是类似的)这两个Boosting算法是针对小规原创 2020-05-08 22:10:51 · 3909 阅读 · 0 评论 -
【零基础学习(面试考点/竞赛不用)】GBDT Gradient-Boosting-Decision-Tree 梯度下降树
1. 什么是GBDT这个就是一个集成算法,希望通过多个弱分类器的结合来训练出一个强分类器。这个弱分类器打个比方——决策树。用决策树作为弱分类器,然后训练10个决策树,这10个决策树组成的就是一个强分类器。GBDT是怎么运作的呢?GBDT是预测残差的。第一棵训练的决策树预测出来的结果肯定和目标值是存在偏差的,毕竟是一个弱分类器,出现偏差很正常。这个偏差,我们管它叫做残差。第二棵树预测的就是基于第...原创 2020-05-08 04:20:02 · 2032 阅读 · 0 评论 -
[类型建议符]python在def函数定义中出现了冒号:和箭头
今天在学习代码中看到了这样的写法:def name(x:'str')->'int': return int(x)这个写法是Python3.5新增加的功能。因为Python不需要像Java一样,在函数定义中规定参数的类型,所以给程序员带来方便的同时,也增加了代码阅读的难度所以:通过冒号和箭头来表示这个参数的类型以及这个函数返回值的类型。冒号:官方叫做参数的类型建议符箭头:叫做函...原创 2020-05-05 23:05:49 · 33615 阅读 · 2 评论 -
面试 笔试 在线编程最后一题 动态规划优化问题
假设有 1 元, 3 元, 5 元的硬币若干(无限) , 现在需要凑出 11 元,问如何组合才能使硬币的数量最少?直接上代码吧啊:# 动态规划思想 dp方程式如下# dp[0] = 0# dp[i] = min{dp[i - coins[j]] + 1}, 且 其中 i >= coins[j], 0 <= j < coins.length# 回溯法,输出可找的硬币...转载 2020-04-26 22:57:45 · 3828 阅读 · 0 评论 -
【入门级实战】fastAI分类猫狗实战代码
记录代码,方便之后快捷搭建框架,喜欢的可以收藏#导入库from fastai import *from fastai.vision import *#下载原数据path = untar_data(URLs.DOGS)URLs.DOGS,path# 生成fastai中专门的数据类ImageDateBunchdata = ImageDataBunch.from_folder(pa...原创 2020-02-04 06:22:31 · 3103 阅读 · 0 评论 -
【一看就懂】fastAI实战:MNIST识别+常见函数讲解
文章目录什么是FASTAI依赖实战untar_dataURLsget_transform()zoom_croprand_resize_cropfastai.vision.modelscnn_learner()什么是FASTAI是PyTorch的顶层框架,理念就是让神经网络变得非常假肚腩!!FastAI类似Keras,但是对新手更加友好。FastAI的后端框架PyTorch, 而Keras的...原创 2020-02-04 02:38:51 · 3158 阅读 · 0 评论 -
【一看就懂】EfficientNet详解。凭什么EfficientNet号称当今最强?
efficientNet的论文原文链接 英语过关的小伙伴也许可以挑战一下?哈哈模型扩展Model scaling一直以来都是提高卷积神经网络效果的重要方法。比如说,ResNet可以增加层数从ResNet18扩展到ResNet200。这次,我们要介绍的是最新的网络结构——EfficientNet,就是一种标准化的模型扩展结果,通过下面的图,我们可以i只管的体会到EfficientNet b0-b...原创 2020-02-03 02:42:47 · 36473 阅读 · 5 评论 -
迁移学习transfer learning与微调fineTune的区别?一看就懂
正如题目所言,我一直认为迁移学习transfer learning和finetune是一个东西,但是直到我看了一篇博文(见参考博文),讲解了两者的区别(也许是对的也许是错的),仁者见仁智者见智吧,反正就算说是这两者不太一样,其实也没差多远就是了。迁移学习和微调的区别什么是迁移学习即一种学习对另一种学习的影响,它广泛地存在于知识、技能、态度和行为规范的学习中。任何一种学习都要受到学习者已有知识...原创 2020-02-03 01:11:17 · 8899 阅读 · 1 评论 -
讲解GoogleNet的Inception从v1到v4的演变
GoogleNet和VGG是ImageNet挑战赛中的第一名和第二名。共同特点就是两个网络的层次都更深了。但是:VGG继承了LeNet和AlexNet的一些框架结构而GoogleNet则做了更大胆的尝试,虽然深度有22层,但是参数却是Alexnet的1/12.而VGG都是Alexnet的三倍,由此可见,在内存和计算资源有限的时候,GoogleNet是好的结构,而且这个的性能更加优越,碾压VG...原创 2020-02-02 08:42:06 · 5274 阅读 · 0 评论 -
什么是GoogleNet?什么是Inception?GoogleNet结构详解(2014年)
googleNet是2014年的ILSVRC的冠军模型,GoogleNet做了更大胆的网络上的尝试,而不是像vgg继承了lenet以及alexnet的一切框架。GoogleNet虽然有22层,但是参数量只有AlexNet的1/12GoogleNet论文指出获得高质量模型最保险的做法就是增加模型的深度,或者是它的宽度,但是一般情况下,更深和更宽的网络会出现以下问题:参数太多,容易过拟合,如果训...原创 2020-02-02 04:00:04 · 10668 阅读 · 1 评论 -
【从零学习PyTorch】 transfrom之三种旋转翻转的方法(Flip and Rotation)
RandomHorizontalFlip()class torchvision.transforms.RandomHorizontalFlip(p=0.5)功能:依据概率p对PIL图片进行水平翻转,p默认0.5RandomVerticalFlip()class torchvision.transforms.RandomVerticalFlip()**功能:**按照概率p对PIL图片...原创 2020-02-01 22:11:27 · 9176 阅读 · 0 评论 -
pytorch中的pretrain模型网络结构修改
pytorch中的pretrain模型网络结构修改继上篇文章提出的两种预训练模型的修改方法外,今天在这里推荐我新学习到的一种方法:这里还是以resnet模型为参考,在去掉预训练resnet模型的后两层(fc层和pooling层)后,新添加一个反卷积层、池化层和分类层。那么对于网络的修改怎样可以快速的去除model本身的网络层呢?一个继承nn.module的model它包含一个叫做child...原创 2020-02-01 05:58:51 · 1873 阅读 · 0 评论 -
从零学习Pytorch 什么是Variable?
Tensor是Pytorch的一个完美组件(可以生成高维数组),但是要构建神经网络还是远远不够的,我们需要能够计算图的Tensor,那就是Variable。Variable是对Tensor的一个封装,操作和Tensor是一样的,但是每个Variable都有三个属性,Varibale的Tensor本身的.data,对应Tensor的梯度.grad,以及这个Variable是通过什么方式得到的.gra...原创 2020-01-31 21:13:06 · 655 阅读 · 0 评论 -
【一看就懂】ravel()、flatten()、squeeze(),reshape()的用法与区别
ravel(),flatten(),squeeze()三个都有将多维数组转化为一维数组的功能:ravel(): 不会产生原来数据的副本flatten():返回源数据副本squeeze():只能对维度为1的维度降维reshape(-1):可以拉平多维数组PyTorch中还有view也有reshape的效果:下面我一个一个来对比ravel()arr = np.arange(12)....原创 2020-01-31 20:50:00 · 7074 阅读 · 1 评论 -
什么是test-time argument(测试数据增强)
可将准确率提高若干个百分点,它就是测试时增强(test time augmentation, TTA)。这里会为原始图像造出多个不同版本,包括不同区域裁剪和更改缩放程度等,并将它们输入到模型中;然后对多个版本进行计算得到平均输出,作为图像的最终输出分数这种技术很有效,因为原始图像显示的区域可能会缺少一些重要特征,在模型中输入图像的多个版本并取平均值,能解决上述问题。就是在训练的时候有一个tra...原创 2020-01-31 19:34:46 · 3605 阅读 · 0 评论 -
【学习笔记】pytorch中squeeze()和unsqueeze()函数介绍
unsqueeze()import torcha = torch.arange(0,6)print(a)print(a.view(1,6))print(a.view(6,1))print(a.unsqueeze(0))print(a.unsqueeze(1))print(a.unsqueeze(0).shape)print(a.unsqueeze(1).shape)可以看到...原创 2020-01-30 23:27:51 · 6405 阅读 · 0 评论 -
全网最详细最好懂 PyTorch CNN案例分析 识别手写数字
dataset首先先来看PyTorch的dataset类:我已经在从零学习pytorch 第2课 Dataset类讲解了什么是dataset类以及他的运行原理class MNIST_data(Dataset): """MNIST dtaa set""" def __init__(self, file_path, transform...原创 2020-01-31 01:23:45 · 6058 阅读 · 6 评论 -
Pytorch 中nn.Conv2d的参数用法 channel含义详解
文章目录nn.Conv2dnn.Conv2dnn.Conv2d是二维卷积方法,相对应的还有一维卷积方法nn.Conv1d,常用于文本数据的处理,而nn.Conv2d一般用于二维图像。先看一下接口定义:class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, ...原创 2020-01-30 19:21:02 · 49452 阅读 · 15 评论 -
从零学习PyTorch 第8课 PyTorch优化器基类Optimier
PyTorch中所有的优化器,像是optim.Adadelta,optim.SGD,optim.RMSprop等等,都是Optimizer的子类,Optimizer中定义了一些常用的方法,像是zero_grad(), step(closure), state_dict(), load_state_dict(state_dict) and add_param_group(param_group)。...原创 2020-01-29 20:54:55 · 2558 阅读 · 3 评论 -
从零学习PyTorch 第7课 模型Finetune与预训练模型
文章目录这一章比较有意思Finetune之权值初始化保存模型参数加载模型初始化不同层不同学习率这一章比较有意思上一课,介绍了模型的权值初始化,以及PyTorch自带的权值初始化方法函数。我们知道一个而良好的权值初始化,可以使收敛速度加快,甚至收获更好的精度。但是实际应用中,并不是如此,我们通常采用一个已经训练的模型的全职参数作为我们模型的初始化参数,这个就是Finetune,更宽泛的说,就是迁...原创 2020-01-29 04:57:47 · 3198 阅读 · 2 评论 -
从零学习PyTorch 第6课 权值初始化
上一节介绍了模型定义的方法,没有忘记吧?三个要素。定义完成之后,通常我们还需要对权值进行初始化,才能开始训练。权值初始化的重要性:初始化的方法会直接影响到模型的收敛与否。权值初始化的过程简单地说就两步:先设定什么层用什么初始方法,初始化的方法会在torch.nn.init中;实例化一个模型之后,执行该函数,即可完成初始化话不多说,看一个案例:# 定义权值初始化def initi...原创 2020-01-29 02:33:51 · 2109 阅读 · 2 评论 -
从零学习pytorch 第5.5课 Resnet34为例学习nn.Sequential和模型定义
代码摘取部分从github:class ResidualBlock(nn.Module): # 实现module:Residual Block def __init__(self,inchannel,outchannel,stride=1,shortcut=None): super(ResidualBlock.self).__init__() self.left = nn.Seque...原创 2020-01-29 00:16:49 · 2878 阅读 · 0 评论 -
从零学习pytorch 第5课 PyTorch模型搭建三要素
三要素其实很简单必须要继承nn.Module这个类,要让PyTorch知道这个类是一个Module在__init__(self)中设置好需要的组件,比如conv,pooling,Linear,BatchNorm等等最后在forward(self,x)中用定义好的组件进行组装,就像搭积木,把网络结构搭建出来,这样一个模型就定义好了我们来看一个例子:先看__init__(self)函数...原创 2020-01-28 19:31:33 · 2780 阅读 · 0 评论 -
从零学习pytorch 第4课 初见transforms
实际应用过程中,我们会在数据进入模型之前进行一些预处理,例如数据中心化(仅仅减去均值),数据标准化(减均值再除以标准差),随机剪裁,旋转一定角度,镜像等一系列操作。下面介绍一下这些方法。import torchvision.transforms as transformsnormMean = [0.49,0.48,0.44]normStd = [0.24,0.24,0.256]normTr...原创 2020-01-28 18:51:35 · 2178 阅读 · 0 评论 -
从零学习pytorch 第3课 DataLoader类运行过程
上一课中讲解了,如何构建Dataset子类,也就是MyDataset。MyDataset中,主要是获取图片的索引以及标签,但是触发Dataset去读取图片以及标签却是在DataLoader中实现的。咱们这一课一步一步来,看图片如何从硬盘,流到模型中的。train_data = MyDataset(txt_path = train_txt_path,…)train_loader = Data...原创 2020-01-28 17:48:40 · 2029 阅读 · 2 评论 -
从零学习pytorch 第2课 Dataset类
这一次主要讲解pytorch读取数据的机制和流程,然后按照流程编写代码Dataset基类PyTorch 读取图片,主要是通过 Dataset 类,所以先简单了解一下 Dataset 类。Dataset类作为所有的 datasets 的基类存在,所有的 datasets 都需要继承它。看一下源码:这里有一个getitem函数,getitem函数接收一个index,然后返回图片数据和标签,...原创 2020-01-28 07:22:38 · 11610 阅读 · 4 评论 -
从零学习pytorch 第1.5课 训练集、验证集和测试集的作用
经验误差与过拟合关键词:错误率(error rate),精度(accuracy)。错误率好理解,就是m个样本中,a个样本分类错误,则错误率E = a/m 。精度 就是 1-E。 其实很简单,但是为什么我还要提一提呢,因为机器学习里还有很多相关名词,例如:准确率,召回率,精确度等等,所以希望大家能清楚认识。关键词:经验误差(empirical error)。在训练集上,预测输出与样本...原创 2020-01-28 06:46:57 · 11747 阅读 · 0 评论 -
从零学习pytorch 第1课 搭建一个超简单的网络
1 任务首先说下我们要搭建的网络要完成的学习任务:让我们的神经网络学会逻辑异或运算,异或运算也就是俗称的“相同取0,不同取1” 。再把我们的需求说的简单一点,也就是我们需要搭建这样一个神经网络,让我们在输入(1,1)时输出0,输入(1,0)时输出1(相同取0,不同取1),以此类推。2 实现思路因为我们的需求需要有两个输入,一个输出,所以我们需要在输入层设置两个输入节点,输出层设置一个输出节...原创 2020-01-28 05:30:10 · 51351 阅读 · 0 评论 -
XBG和LGB和CATBOOST 要用哪一种? 深度分析
尽管最近几年神经网络复兴,并变得流行起来,但我还是更加关注 boosting 算法,因为在训练样本量有限、所需训练时间较短、缺乏调参知识的场景中,它们依然拥有绝对优势。2014 年 3 月,XGBOOST 最早作为研究项目,由陈天奇提出2017 年 1 月,微软发布首个稳定版 LightGBM2017 年 4 月,俄罗斯顶尖技术公司 Yandex 开源 CatBoost...原创 2020-01-27 23:57:04 · 3423 阅读 · 0 评论 -
CatBoost 代码模板(记忆不好的可以收藏)
代码来自数据来自import pandas as pdimport numpy as npfrom itertools import combinationsfrom catboost import CatBoostClassifiertrain_df = pd.read_csv('../input/train.csv')test_df = pd.read_csv('../inpu...原创 2020-01-27 23:36:19 · 1907 阅读 · 0 评论 -
python pandas库操作的一百个技巧 新手必看 学会你就是pandas大佬
文章目录Trick100:加载大数据Trick99:Trick100:加载大数据有的时候加载大数据的时候,不需要加载全部,而是仅仅用百分之一进行框架的构建和测试。# 加载全部数据df = pd.read_csv("../input/us-accidents/US_Accidents_Dec19.csv")print("The shape of the df is {}".format(d...原创 2020-01-27 04:06:24 · 859 阅读 · 0 评论 -
正则表达式 查询表
参考博文原创 2020-01-27 03:58:11 · 338 阅读 · 0 评论 -
小世界网络和复杂网络+python代码实现
文章目录小世界网络复杂网络的特性平均路径长度L聚集系数C度及度分布小世界效应规则网络随机网络小世界网络无标度网络python 代码生成小世界网络规则网络小世界网络[百度百科]:小世界网络模型是一类具有较短的平均路径长度又具有较高的聚类系数的网络的总称。小世界网络(small-world network)是指网络中大部分节点都不彼此相邻、但大部分节点都彼此联通的网络。简单来说,就是大部分节点都...原创 2020-01-26 00:44:51 · 14527 阅读 · 5 评论 -
看完必会的 python DEAP遗传算法库讲解+实战(中级)
文章目录TSP问题问题描述代码精讲结果展示(不重要)TSP问题之前用遗传算法解决了:多项式求极大值的问题。这个问题实在是太简单了,现在我们来处理一下更困难的问题——TSP旅行商问题问题描述TSP旅行商问题,traveling Salesman problem-如果旅行商从A地到B地的花费与B地到A地的花费相等,我们称之为对称旅行商问题(Symmetric Travelinig ...原创 2020-01-22 21:18:52 · 3301 阅读 · 1 评论 -
看完必会的 python DEAP遗传算法库讲解+实战(初级)
文章目录一个简单的遗传算法代码详细讲解一个简单的遗传算法我们来找这个函数的最大值:该函数的最大值应该出现在处28.309,值为1657.423。可以看到该函数有很多局部极值作为干扰项,如果进化算法过早收敛,很容易陷入某个局部最优。我们用二进制编码来解决这样的问题如果要求精度是六位的话,从-30到30,总共需要考虑60×10660 \times 10^660×106种情况。所以...原创 2020-01-22 20:48:41 · 38023 阅读 · 2 评论