程序媛养成第0天--pytorch入门学习

本篇基于《深度学习框架-pytorch入门与实践》陈云  

有一起监督学习打卡的小伙伴请私信

 2.2 pytorch入门第一步

2.2.1 Tensor

# 分配矩阵空间但不初始化

#使用 [0-1] 随机初始化二维数组

#使用 初始化全为1的二维数组

#查看形状 ==2种 // 查看某一行某一列的形状

# 加法 ==5种    (1123第一次练习第三四五种出错)

#改变数值的加法 不改变数值的加法

#切片 取一行/一列

# numpy转tensor  

#tensor转numpy  共享内存  只有tensor才可以用add_()函数

#使用cuda

2021.11.25  摸鱼了一天 剑哥刚通知三个小时后检查我学到哪里了 肝!

2.2.2 Autograd 自动微分

深度学习算法的本质是通过反向传播求导数 

autograd.Variable 包含data grad grad_fn三种属性。data存储Tensor, grad储存Tensor的梯度,他们都是Variable。grad_fn指向Function

In [1]: import torch as t

In [2]: import torch.nn as nn

# 参数依次为batch_size, 通道数,长,宽

In [3]: inp = t.ones(1,1,9,9)

# 参数依次为输入通道数,输出通道数,卷积核

In [4]: con1 = nn.Conv2d(1,1,3)

#新增两个参数分别为步长,padding数

In [5]: con2 = nn.Conv2d(1,1,3,2,1)

In [6]: out1 = con1(inp)
[W NNPACK.cpp:79] Could not initialize NNPACK! Reason: Unsupported hardware.

#分析原因:网络问题

In [7]: out1 = con1(inp)

In [8]: out2 = con2(inp)

In [9]: out1.shape
Out[9]: torch.Size([1, 1, 7, 7])

#计算公式  输入(9)+1 - 卷积核数(3)=7

In [10]: out2.shape
Out[10]: torch.Size([1, 1, 5, 5])
#计算公式  输入(9)+padding(1*2) 视为12

12 + 1 - 卷积核数(3) 最后除以二 =5

卷积的本质是 输入和卷积核对应格相乘,然后把这9个积加起来,最后加bias (Wx+b)

maxpooling 是采样 只采最大的 即权重最大 可能为目标的概率最大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值