
pytorch学习笔记
文章平均质量分 66
个人学习笔记
onlywishes
我不知道路途的前方究竟有什么,但还是迈出了步伐,我们仍在旅途之中。
展开
-
关于卷积神经网络CNN
卷积神经网络卷积操作:卷积核和扫过的区域对应位置相乘再求和的操作,卷积完成后一般要加个偏置bias。一种Kernel如果分成多个通道上的子Kernel做卷积运算,最后运算结果还要加在一起后,再加偏置input_channels:输入的通道kernel_channels:有几个卷积核kernel_size:卷积核的大小stride:卷积核移动的步长padding:打补丁,1就是1层multi-kernels多kernel情况参数理解x: b...原创 2022-02-18 17:44:47 · 3628 阅读 · 1 评论 -
拟合性与学习率
过拟合由于函数模型的表现能力太强,如果数据量少的话,就会出现过拟合,与之对应的是欠拟合减少过拟合的方法regularization 又叫做 weight-decay实现方法对于L1对于L2weight_decay相当于λ ,会使二范数越来越接近0Dropout减少层与层间的连接pytorch与TensorFlow使用区别动量多减去一项,梯度就会向减去的梯度方向,这样就有偏向,zk是指向上一次的梯度方向...原创 2022-02-16 14:10:53 · 2466 阅读 · 0 评论 -
熵与全连接层
熵熵是信息量的期望值,它是一个随机变量的确定性的度量。熵越大,变量的取值越不确定,反之就越确定。import torcha = torch.full([4],1/4.)print(-(a*torch.log2(a)).sum()) #a,b,c假设四个选项选择正确的概率#tensor(2.) #熵越小说明越没有意外,熵越大则不确定越大b = torch.tensor([0.1,0.1,0.1,0.7])print(-.原创 2022-02-14 19:13:43 · 884 阅读 · 0 评论 -
关于感知机、链式法则and梯度下降
关于感知机,链式法则,梯度下降原创 2022-02-12 23:52:00 · 494 阅读 · 0 评论 -
梯度、激活函数 及Loss的梯度
梯度梯度是对函数求偏导,在组合,是向量有方向,导数是没有方向的常见函数的求导激活函数Sigmoid / Logistic将数据压缩在(0,1)之间sigmoid函数梯度使用import torcha = torch.linspace(-100,100,10) #生成10个线性间隔的数b = torch.sigmoid(a) print(a)print(b)tensor([-100.0000, ...原创 2022-02-10 22:27:12 · 2673 阅读 · 0 评论 -
两个高阶操作
wheretorch.where(condition, x y) --->Tensor对条件判断,满足的选择填充对应X位置元素,否则Y位置a = torch.rand(2,2)b = torch.tensor([[0,0], [0,0]])c = torch.tensor([[1,1],[1,1]])d = torch.where(a>0.5,b,c) #对条件判断,满足的获取b位置元素print(a)print(d)tensor([[0.728.原创 2022-02-09 17:02:40 · 835 阅读 · 0 评论 -
关于属性统计
norm范数torch.norm是对输入的Tensor求范数,指定在哪个维度,就会消掉对应维度0范数:向量中非零元素的个数1范数:绝对值之和2范数:相当于求摸,绝对值之和再开方无穷范数:取向量的最大值import torcha = torch.ones((2, 4)) # 建立tensora1 =a.norm(1) # 指定求1范数a2 =a.norm() # 默认求2...原创 2022-02-08 20:53:27 · 1494 阅读 · 0 评论 -
关于数学运算
加、减、乘、除这里直接用 符号 + - * / 就可以运算,结果和用函数是一样的,不过都要满足能运算的条件,满足broadcasting,a = torch.rand(3,4)b = torch.rand(4)c1 = a + bc2 = torch.add(a,b)d = torch.all(torch.eq(a-b,torch.sub(a,b))) #判断两种方法是否殊途同归e = torch.all(torch.eq(a*b,torch.mul(a,b)))f = to...原创 2022-01-31 21:40:56 · 1917 阅读 · 0 评论 -
Broadcasting、合并and拆分
broadcasting它的功能就是能够实现自动维度的扩展,使两个tensor的shape相同,也就是说节省了 unsqueeze 和 expand 操作,高效并且不需要复制数据,节省内存关键思想 只有size一致才能进行对应位置元素的相加如下图,第一行,两个tensor的shape相等,可以直接相加第二行,第二个tensor根据第一个tensor扩张到相同shape,在复制数据对应相加第三行, 两个tensor根据对方维度扩展到shape相同,相加...原创 2022-01-30 21:58:05 · 634 阅读 · 0 评论 -
维度的变换
view 和 reshape操作二者的功能和用法是相同的,不过要保证 view 的size整体不变,即numel()一致view操作会把维度信息给丢失掉,要记牢数据的存储顺序a = torch.rand(4,1,28,28)b = a.view(4,28*28) #丢失两个维度print(b)print(b.shape)c = a.view(4*28,28) #丢失两个维度d = a.view(4*1,28,28) #丢失一个维度e = a.resh...原创 2022-01-29 22:27:09 · 2162 阅读 · 0 评论 -
张量创建和索引and切片
创建张量从 numpy中创建 import from numpy原来的数据类型在创建后基本保持一一对应a=np.array([2,3.3])print(torch.from_numpy(a)) #从numpy导入的float是double类型b=np.ones([2,3])print(torch.from_numpy(b))从list中创建 import from list 在数据量小的情况下可以使用...原创 2022-01-28 23:06:38 · 1624 阅读 · 0 评论 -
pytorch张量数据类型
数据类型python与pytorch数据类型很相似,在pytorch中没有字符串的表达tensor 的基本数据类型32位浮点型:torch.FloatTensor。 (默认)64位整型:torch.LongTensor32位整型:torch.IntTensor16位整型:torch.ShortTensor64位浮点型:torch.DoubleTensorCPU tensor 和G...原创 2022-01-27 23:49:10 · 1606 阅读 · 0 评论