python中类的继承,子类的方法的添加,子类的方法的覆盖,子类的属性的添加,及继续父类的属性 python如果我们想要继承一个类的方法,并且不改当前类,我们可以新建一个子类,来继续他的方法
1、类的继承,我们先来创建一个Animal的父类,我们再来创建一个dog的子类,dog子类继承父类Animal的方法,但是里面没有执行任何代码,这时我们初始化一下dog子类为dog_1,记得也要传入身高还有体重,不然会报错我们可以发现dog_1继承了Animal里面的属性及方法。直接输出一下及调用一下。
class Animal():
def __init__(self, weight, high):
self.weight = weight
self.hig 交叉熵损失函数(Cross Entropy Loss) 基础不牢,地动山摇,读研到现在有一年多了,发现自己对很多经常打交道的知识并不了解,仅仅是会改一改别人的代码,这使我感到非常焦虑,自此开始我的打基础之路。如果博客中有错误的地方,欢迎大家评论指出,我们互相监督,一起学习进步。
交叉熵损失函数(Cross Entropy Loss)在分类任务中出镜率很高,在代码中也很容易实现,调用一条命令就可以了,那交叉熵是什么东西呢?为什么它可以用来作为损失函数?本文将会循序渐进地解答这些问题,希望能对大家有所帮助。
1. 交叉熵(Cross Entropy)
交叉熵是信息论中的概念,想要理解交叉熵,首先需要了解一些与之相关的信息论基础。
1.1 信息量(本节内 神经网络中view(),torch.flatten(),torch.nn.Flatten()详解
神经网络view(),torch.flatten(),torch.nn.Flatten()
1、view()2、torch.nn.Flatten()3、torch.flatten()
在神经网络中经常看到view(),torch.flatten(),torch.nn.Flatten()这几个方法。这几个方法一般用于改变tensor的形状。为日后方便使用下面就一一透彻的理解一下。
1、vi Pytorch卷积池化计算公式 一、前言
要设计卷积神经网络的结构,必须匹配层与层之间的输入与输出的尺寸,这就需要较好的计算输出尺寸。由于pytorch没有自动计算的函数,因此需要我们手动计算。
先列出卷积层和池化层的计算公式:
卷积后,池化后尺寸计算公式:
(图像尺寸-卷积核尺寸 + 2填充值)/步长+1
(图像尺寸-池化窗尺寸 + 2填充值)/步长+1
即:
卷积神将网络的计算公式为:
N=(W-F+2*P)/S+1
其中
N:输出大小
W:输入大小
F:卷积核大小
P:填充值的大小
S:步长大小
例Conv2d(后面给出实例来讲解计算方法):
torch.nn.Conv2d(in_channels, out 基于Pytorch编写深度学习基本步骤 一、前言
在我们要用pytorch构建自己的深度学习模型的时候,基本上都是下面这个流程步骤,无论是从自己写,还是阅读他人代码,按照这个步骤思想(默念4大步骤,找数据定义、找model定义、(找损失函数、优化器定义),主循环代码逻辑),直接去找对应的代码块,会简单很多。
二、基本步骤思想
分为四大步骤:
输入处理模块 (X 输入数据,变成网络能够处理的Tensor类型)
模型构建模块 (主要负责从输入的数据,得到预测的y^, 这就是我们经常说的前向过程)
定义代价函数和优化器模块 (注意,前向过程只会得到模型预测的结果,并不会自动求导和更新,是由这个模块进行处理)
构建训练过程 (迭代训练过 论文笔记-RevIN 原文地址:论文地址
摘要:
时间序列中的统计属性经常发生变化,即数据分布随时间而变化。这种时间分布变化是阻碍准确时间序列预测的主要挑战之一。为了解决这个问题,我们提出了一种简单但有效的归一化方法,称为可逆实例归一化(RevIN)。具体来说,RevIN 由两个不同的步骤组成,归一化和非归一化。前者对输入进行归一化以根据均值和方差来固定其分布,而后者将输出返回到原始分布。此外,RevIN 与模型无关,通常适用于各种时间序列预测模型,预测性能有显着提高。如图 1 所示,RevIN 有效地增强了基线的性能。我们广泛的实验结果验证了对各种现实世界数据集的普遍适用性和性能改进。
根据原作者给出的图,发现 深度学习归一化方法-Batch Normalization 一、前言
现在几乎所有的卷积神经网络都几乎使用了批量归一化的操作
批量归一化是一种流行和有效的技术,它可以持续加速深层网络的收敛速度
二、背景
为什么需要对数据做批量归一化?
答: 因为在输入数据的特征通常具有不同的量纲、取值范围,使得不同特征的尺度(scale)差异很大。不同机器学习模型对数据特征尺度的敏感程度不同。如果一个机器学习算法在数据特征缩放前后不影响其学习和预测,则称该算法具有尺度不变性(scale invariance)。理论上神经网络具有尺度不变性,但是输入特征的不同尺度会增加训练的困难,困难表现如下:
参数初始化困难
当使用具有饱和区的激活函数a=f(WX)a=f(W dynamic time warping(DTW)的基本思想 1、欧氏距离与DTW
描述两个序列之间的相似性,欧氏距离是一种十分简单且直观的方法,但对于序列之间out of phase的情况,计算欧氏距离得到的结果会比实际的最小距离大很多。除此之外,欧式距离还有不能计算等长序列的缺点。下面两个几乎一样的序列:
左边是欧氏距离的对应关系,在同一时刻上的点相互对应,计算总距离;右边是DTW的点对应关系,可以看到,下面序列某时刻的点可以对应上面序列非同一时刻的点,同时一个点可以对应多个点,多个点也可以对应一个点,也就是说每个点尽可能找离它距离最小的点,允许时间轴上的伸缩。显而易见的,这种情况下DTW计算的距离比欧氏距离更小。因此对于时间上有拉伸或压缩的序列, 数据相似性的度量方法总结 现实中,我们需要处理的数据具有着不同的形式和特征。而对数据相似性的度量又是数据挖掘分析中非常重要的环节。针对这些不同形式的数据,不可能找到一种具备普遍意义的相似性度量算法,甚至可以说,每种类型的数据都有它对应的相似度度量标准。这些标准很多,也比较杂乱,有必要作以总结。
废话不多说了,直接进入正题。
数据属性分类
现实世界,任何事物其实都可以描述成一个对象。这个概念其实跟面向对象编程中对象的含义是一致的。对象有很多属性,属性的类型当然也有所不同。打个比方说,如果把我看做一个对象,那我就基本拥有“姓名”、“性别”、“年龄”、“籍贯”等等,这些都是我的属性,和起来就是一条数据,也就是户籍部门拿到的关 LSH(Locality Sensitive Hashing)原理与实现(上) LSH(Locality Sensitive Hashing)翻译成中文,叫做“局部敏感哈希”,它是一种针对海量高维数据的快速最近邻查找算法。
在信息检索,数据挖掘以及推荐系统等应用中,我们经常会遇到的一个问题就是面临着海量的高维数据,查找最近邻。如果使用线性查找,那么对于低维数据效率尚可,而对于高维数据,就显得非常耗时了。为了解决这样的问题,人们设计了一种特殊的hash函数,使得2个相似度很高的数据以较高的概率映射成同一个hash值,而令2个相似度很低的数据以极低的概率映射成同一个hash值。我们把这样的函数,叫做LSH(局部敏感哈希)。LSH最根本的作用,就是能高效处理海量高维数据的最近邻 自动获取邮件附件并下载 库函数的导入,其中getpass是防止信息泄露
import poplib,email,datetime,time,traceback,sys,telnetlib,zipfile,os,shutil
from email.parser import Parser
from email.header import decode_header
from email.utils import parseaddr
from getpass import getpass
采用面向对象的方式进行编写代码,我们先定义一个邮件管理类,传入参数包括邮箱服务器地址(默认qq邮箱,因为我个人用的foxmail. 常见语法糖 1. 列表推导式与条件赋值
先看以下这段代码:
L = []
def my_func(x):
return 2*x
for i in range(5):
L.append(my_func(i))
L
#Output:[0, 2, 4, 6, 8]
事实上可以利用列表推导式进行写法上的简化:[* for i in ]。其中,第一个为映射函数,其输入为后面i指代的内容,第二个*表示迭代的对象。
[my_func(i) for i in range(5)]
#Output:[0, 2, 4, 6, 8]
列表表达式还支持多层嵌套,如下面的例子中第一个for为外层循环,第二个为 感知机模型 前期知识准备
线性可分定义
给定一个数据集
T={(x1,y1),(x2,y2),…,(xN,yN)}T = \{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N) \}
T={(x1,y1),(x2,y2),…,(xN,yN)}
其中,xi∈χ=Rn,yi∈Y={+1,−1},i=1,2,…,Nx_i \in \chi=\mathrm{R}^n, y_i \in \mathcal{Y}=\{+1,-1\},i=1,2,\dots,Nxi∈χ=Rn,yi∈Y={+1,−1},i=1,2,…,N,如果存在某个超平面(类似于我们初等数学学的线性方程,区别是用 python 装饰器详解 1、闭包
要想了解装饰器,首先要了解一个概念,闭包。什么是闭包?一句话说就是,在函数中再嵌套一个函数,并且引用外部函数的变量,这就是一个闭包了。下面给出一个闭包的代码:
def outer(x):
def inner(y):
return x + y
return inner
print(outer(6)(5))
-----------------------------
输出结果:11
如代码所示,在outer函数内,又定义了一个inner函数,并且inner函数又引用了外部函数outer的变量x,这就是一个闭包了。在输出时,outer(6)(5),第一