机器学习
文章平均质量分 51
von Libniz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PyTorch内Tensor按索引赋值的方法比较
https://www.jianshu.com/p/e568213c8501转载 2022-04-23 14:51:48 · 1827 阅读 · 0 评论 -
深度可分离卷积 (Depth-wise Separabel Convolution)
深度可分离卷积深度可分离卷积 = depth-wise conv + point-wise conv。depth-wise conv:输入特征图每个通道作为一个group,用一个kernel处理。point-wise conv:kernel size =1 的普通卷积。import torchimport torch.nn as nnstride = 1kernel_size = 3in_ch = 10out_ch = 3conv_normal = nn.Conv2d(in_chan原创 2022-04-22 11:45:23 · 1404 阅读 · 1 评论 -
pytorch基操04-比较运算符
目录1 torch中的比较运算符1.1 torch.equal1.2 torch.equal1.3 torch.gt1.4 torch.ge1.5 torch.lt1.6 torch.le1.7 torch.ne1.8 torch.sort1.9 torch.topk1.10 torch.kthvalue1.11 torch.isinf1.12 torch.isfinite1.13 torch.nan1 torch中的比较运算符为了演示不同比较运算符的作用,先初始化两个tensor a和b。# 创建a原创 2022-03-17 11:25:59 · 2314 阅读 · 0 评论 -
pytorch基操03-取整取余操作
import torchtorch.manual_seed(1234)a=torch.empty(size=(2,3)).normal_(10,10)print('original :',a)# 向下取整print('floor :',torch.floor(a))# 向上取整print('ceil :',torch.ceil(a))# 四舍五入print('round :',torch.round(a))# 只取整数print('trunc :',torch.trunc(a))原创 2022-03-12 08:51:35 · 5969 阅读 · 0 评论 -
一句话理解pytorch中的广播机制
广播机制不同维度的张量可以通过广播机制进行运算,那什么是广播机制?两个张量要可以进行运算,从右到左,要么维度相等,要么其中一个为1( 不存在的认作1)。import torch# 从右到左,要么维度相等,要么其中一个为1,不存在的认作1a=torch.randn(size=(2,1,1,4))b=torch.randn(size=(4,2,4))c=a+bprint(c.size())torch.Size([2, 4, 2, 4])...原创 2022-03-08 23:18:34 · 291 阅读 · 0 评论 -
pytorch基操02-回到小学之基本算数运算
这里写目录标题1 基本算数运算1.1 加减法1.2 乘除法1.3 矩阵运算1.4 幂运算1.5 开方运算1.6 对数运算1 基本算数运算今天让我们回到小学,学习pytorch中的算数运算。1.1 加减法加法运算通过add方法实现,add_表示原地加,修改执行该操作的对象。# 加法运算print('-'*8+'add'+'-'*8)a=torch.ones(size=(2,3))b=torch.ones(size=(2,3))*2# a+bprint('a+b:\n',a+b)# tor原创 2022-03-04 17:33:44 · 903 阅读 · 0 评论 -
pytorch基操01-常用Tensor创建方法汇总
这里写目录标题1.Tensor的创建1.1 使用torch.Tensor1.2 使用torch.eye1.3 全0或全1的tensor1.4 根据分布随机生成tensor1.4.1 torch.rand1.4.2 torch.randn1.4.3 torch.normal1.4.4 torch.Tensor.uniform_1.5 生成序列tensor1.5.1 torch.arange(a,b,step)1.5.2 torch.linspace(a,b,num)1.5.3 torch.randperm(n原创 2022-03-04 11:59:36 · 2388 阅读 · 0 评论 -
线性回归python实现详解(附公式推导)
目录1线性回归1.1简单线性回归1.2 多元线性回归1.3 使用sklearn中的线性回归模型1线性回归1.1简单线性回归在简单线性回归中,通过调整a和b的参数值,来拟合从x到y的线性关系。下图为进行拟合所需要优化的目标,也即是MES(Mean Squared Error),只不过省略了平均的部分(除以m)。对于简单线性回归,只有两个参数a和b,通过对MSE优化目标求极值(最小二乘法),即可求得最优a和b如下,所以在训练简单线性回归模型时,也只需要根据数据求解这两个参数值即可。下面使用波士顿原创 2022-02-24 17:05:46 · 20111 阅读 · 0 评论 -
pytorch实现vgg11模型
VGG11这里实现最左侧的A,也就是原始的vgg11。import torchimport torch.nn as nnclass VGG11(nn.Module): def __init__(self, input_channel): super().__init__() self.conv_layers = nn.Sequential( nn.Conv2d(in_channels=input_channel, out_chan原创 2022-02-09 15:44:18 · 3944 阅读 · 1 评论 -
GRU与LSTM的原理总结
一、LSTM(长短期记忆网络) LSTM是一种特殊的RNN类型,一般的RNN结构如下图所示,是一种将以往学习的结果应用到当前学习的模型,但是这种一般的RNN存在着许多的弊端。举个例子,如果我们要预测“the clouds are in the sky”的最后一个单词,因为只在这一个...转载 2022-02-09 11:11:29 · 602 阅读 · 0 评论 -
pytorch多层感知机实现假钞识别(完整项目构建)
目录1 项目构建2 超参数设置 config.py3 数据集预处理 preprocess.py4 数据集类构建 dataset_banknote.py5 模型构建 model.py6 训练trainer.py6.1 查看损失曲线7 在测试集上运行 inference.py1 项目构建构建项目文件夹Banknote,以及子文件夹与py文件。名称作用data目录存放原始数据与预处理后切分为训练集、验证机、测试集的数据log目录存放训练过程中保存的指标,如损失、精确度等原创 2022-02-05 18:46:19 · 1962 阅读 · 3 评论 -
机器学习中的数据归一化
最值归一化 normalization最值归一化:把所有的数据映射到[0,1]之间。x=x−xminxmax−xmin\large x=\frac{x-x_{min}}{x_{max}-x_{min}}x=xmax−xminx−xmin下面使用np实现最值归一化。import numpy as npimport matplotlib.pyplot as plt#生成数据X=np.random.randint(0,10,(30,2))X=np.array(X,dtype=float原创 2022-02-02 10:11:17 · 2600 阅读 · 1 评论 -
使用pytorch实现逻辑回归
逻辑回归原理公式y^=σ(wTx+b),where σ=11+e−x , w,x∈Rd\Large \hat{y}=\sigma(w^{T}x+b),where \, \sigma=\frac{1}{1+e^{-x}}\,,\,w,x \in R^{d}y^=σ(wTx+b),whereσ=1+e−x1,w,x∈RdP(target=1∣xi)=yi^\large P(target=1|x_i)=\hat{y_i}P(target=1∣xi)=yi^P(target=0∣xi)=1原创 2022-02-01 19:28:47 · 1888 阅读 · 0 评论 -
sklearn中的超参数网格搜索
超参数网格搜索sklearn中封装了超参数网格搜索的方法,使用起来会比自己写更加方便。所谓的网格查找其实只是把所有的参数都遍历一边,然后选出一个最好的模型。下面对KNN模型进行超参数网格搜索。#导入库from sklearn.neighbors import KNeighborsClassifierfrom sklearn.model_selection import GridSearchCVfrom sklearn.datasets import load_digitsfrom sklear原创 2022-01-31 21:46:53 · 1338 阅读 · 0 评论 -
训练集测试集手动分割
手动实现分割通过按比例取打乱索引的方式,分割训练集和测试集,借口仿照sklearn。import numpy as npdef train_test_split(X,y,test_ratio=0.2,seed=None): """按test_size的比例分割训练集测试集""" assert X.shape[0]==y.shape[0],\ 'the shape of X must equal to y' assert 0.0<=test_ratio&l原创 2022-01-31 17:09:47 · 1063 阅读 · 0 评论 -
Numpy学习—np.random.randn()、np.random.rand()和np.random.randint()
在机器学习和神经网络中,常常会利用Numpy库中的随机函数来生产随机数,比如随机初始化神经网络中的参数权重W(备注:W是不能全部初始化为0的,这样会引起symmetry breaking problem,这样隐藏层设置多个神经元就没有任何意义了)。 在Numpy库中,常用使用np.random.rand()、np.random.randn()和np.random.randint()随机函数。这几个函数...转载 2022-01-31 16:12:36 · 990 阅读 · 0 评论 -
KNN算法的封装实现
1 KNN算法基本思想:对每一个测试样本,寻找训练集中k个距离最接近的样本,将出现次数最多的类别分类为当前样本类别。1.1 对单个样本实现knn#导入库import numpy as np import matplotlib.pyplot as pltfrom collections import Counterimport math#构建模拟数据集raw_data_X = [[3.393533211, 2.331273381], [3.110073483,原创 2022-01-31 15:47:06 · 999 阅读 · 0 评论 -
sklean中鸢尾花数据集可视化
数据集信息import matplotlib.pyplot as pltimport sklearn.datasets as datasetiris_data=dataset.load_iris()print(type(iris_data))#sklearn自定义的一种数据类型,类似字典print(iris_data.keys())#打印所有的keyprint('iris data:',type(iris_data.data),'shape:',iris_data.data.shape)#原创 2022-01-30 16:18:12 · 2318 阅读 · 0 评论 -
Matplotlib的简单使用
绘制折线图import numpy as npimport matplotlib.pyplot as pltx=np.linspace(0,10,100)#从0到10均匀取100个点siny=np.sin(x)cosy=np.cos(x)plt.plot(x,siny,label='sin')#使用label关键字参数添加标签plt.plot(x,cosy,color='red',linestyle='-.',label='cos')plt.axis([-2,12,-2,2])#使用ax原创 2022-01-30 15:22:41 · 560 阅读 · 0 评论 -
Jupyter Notebook中的常用魔法方法
目录01 %run 方法02 %load 方法04 %timeit与%%timeit05 导入自定义模块01 %run 方法%run方法用于运行指定的py文件,例如以下命令将执行当前目录下file/02magic文件夹下的helloworld.py文件。%run file/02magic/helloworld.py输出结果:hello worldhelloworld.py的内容如下:def say_something(): """ a function to say helloworl原创 2022-01-16 12:09:58 · 1272 阅读 · 0 评论
分享