赞
踩
有监督学习的训练集要求包括输入和输出,即特征和标签,包括回归、分类、支持向量机(SVM)、决策树、随机森林、人工神经网络等。无监督学习的样本数据类型未知,输入数据未被标记,在训练集中寻找规律,从而学到或建立模型,包括:聚类、主成分分析法(PCA)
TorchMetrics是一个开源的PyTorch原生的函数和度量模块的集合,用于简单的性能评估。目前支持超过25个指标,并不断增加更多的通用任务和特定领域的标准(目标检测,NLP等)
方法的重写,不能发生在同类中,只能发生在子类中。
若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。
① logistic:f(x)=1 / (1+e^(-x))
② softmax(Xi) = exp(Xi) / sum(exp(Xi))
nn.Softmax(dim)
若输入为二维,dim = 0为使列数据和为0;dim=1为使行数据为0
③ relu(X) = max(0, X)
① 二元交叉熵损失函数:nn.BCELoss() >>使用nn.BCELoss需要在该层前面加上Sigmoid函数
- from torch import nn
- loss = nn.BCELoss()
- l = loss(y_hat, y) # 预测值与标签输入顺序不能颠倒
② 交叉熵损失函数: nn.CrossEntropyLoss() ##softmax函数和交叉熵损失函数合并
③ 均方损失函数: nn.MSELoss() (y_hat - y) ** 2 / batch_size >> loss.mean()
- # 1
- torch.nn.MSELoss(y_hat, y, reduce, size_average)
- ## 默认reduce = True,返回标量形式的loss
- ## reduce = False,返回向量形式的los
- ## 默认size_average = True,返回loss.mean()
- ## size_average = False,返回loss.sum()
-
- # 2
- import torch.nn.functional as F
- loss = F.mse_loss(y_hat, target)
过拟合问题具体变现为:模型在train_data上训练情况良好,损失函数低,预测准确度高,而在test_data表现较差,损失函数比较大,预测精度很低。
- register_buffer(name, tensor)
- '''Adds a persistent buffer to the module''' # 向模型中加入持续缓冲区
- # name(string) -缓冲区的名称
- self.register_buffer("matrix", torch.tensor([0.233, 0.456, 0.174]))
我们在训练模型时,通过backward反向传播实现weight等参数的更新,但在某些情况下,我需要有些参数从训练开始到结束一直保持不变,不会被更新,则此时会用到register_buffer()。
2. __init__() >>带参数的初始化,初始化新创建对象的状态
“__”开头的函数声明该函数为私有,无法在类的外部使用或访问。
① torch.normal(means, std) >> 从给定参数的正态分布中返回随机数
np.random.normal(means, std, size) >> 从正态(高斯)分布中抽取随机样本
random.random(*size) >>返回一个介于左闭右开[0.0, 1.0)区间的浮点数
② torch.ones(*size) 返回输入size的全为1的tensor; torch.zeros(*size, dtpe = torch.float32)全为0
torch.zeros_like(X) 返回X.shape的全0 tensor
③ torch.range(1, 6) >> tensor[1., 2., 3., 4., 5., 6.] 结果包含end, 新版本中将被删除
④ torch.arange(1, 6) >>tensor[1., 2., 3., 4., 5.]
⑤ torch.rand(*size) >> 0-1的均匀分布
torch.randn(*size) >>标准正态分布(mean=0, std=1)
① torch.cat((A,B), dim) >>按照dim维度合并tensorA,B,除dim维度,其他维度数值必须一致; dim列合并,即合并完成后只有dim数值增大
① torch.index_select(input, dim, index) == input.index_select(dim, index)
>> input为索引查找的对象, dim为查找的维度, index为索引序列tensor(须为整型)
② torch.gather(tensor, dim, index)
>>沿着指定的dim从tonsor中提取索引index位置的元素,index对应dim,即dim若为行,index为行索引
② torch.where(condition, a, b) >>满足condition则输出a,否则则输出b
③ torch.squeeze() >> 压缩数据维度,去掉维数为1的维度
① torch.pow(X, y) >> X^y
② torch.max(input, other) >>两tensor比较,返回最大值
torch.max(input, dim) >>返回最大值和最大值索引,若shape为[2,3],dim=0,返回shape为[3]
③ torch.mm(A, B) >>矩阵A,B相乘,只适用于二维矩阵
torch.matmal(A, B) >>矩阵A,B相乘,适用于高维矩阵
torch.mul(A, B) >>矩阵A,B对应位置相乘,等同于 A * B
④ torch.log(x) >>以自然数e为底的对数函数 ln(x)
⑤ torch.sqrt(tensor) >>逐一元素计算平方根
⑥ torch.lt(input, other) >>元素比较 input < other 返回True (less than)
torch.gt(input, other) >>元素比较 input > other 返回True (greater than)
⑦ str.join(item) >>用str将item中的元素连接起来
>>括号内只允许有一个成员,可以为列表、元组、字典
str.upper() >> 字符串中的小写字母转为大写字母
⑦ vars() >>对象object的属性和属性值的字典对象
⑧ sort(list) >>list 排序
sorted(iterable) >>对所有可迭代的对象进行排序操作
⑨ lambda param : expression >> param参数执行expression表达式
plt.scatter(x, y, c, marker, s) >>散点图绘制: c为颜色, marker为标记的样式, s为点的大小
plt.plot(x, y, label=' ',"格式控制字符串") >>绘制点图和线图, xy可传入set,list,array,dataframe
plt.legend() >> 显示label内容
import torch.utils.data as Data
dataset = Data.TensorDataset(features, labels) # 合并特征值和标签
Data.DataLoader(dataset, batch_size, shuffle=)
(1) torch.optim.SGD(parameters(), lr= , momentum= ) # 参数,学习率,权重衰减
- optimizer = torch.optim.SGD(function.paramaters, lr) # 定义优化器
-
- # 训练模型
- optimizer.zero_grad()
- l.backward()
- optimizer.step()
- import torchvision
- import torchvision.transforms
-
- torch.transforms.ToTensor() #把PIL.Image或ndarray从(H x W x C)形状转换为(C x H x W)的tensor
# torchvision.datasets: 一些加载数据的函数及常用的数据集接口;
# torchvision.models:包含常用的模型结构(含预训练模型), 例如AlexNet、VGG、ResNet等;
# torchvision.transforms: 常用的图片变换,例如裁剪、旋转等;
① transforms.ToTensor()函数的作用是将【原始的PILImage格式或者numpy.array格式的数据】格式化为【可被pytorch快速处理的张量类型】
##(声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。