目录
- 数据集读取
- 构建网络
- ==模型输入==
- ==卷积==
- ==反卷积==
- ==上采样==
- ==池化==
- ==BatchNormalization==
- ==激活==
- ==pytorch模型流程==
- ==实现VGG16过程对比==
- 训练
- 参考文章
数据集读取
构建网络
3、keras的Flatten操作可以视作pytorch中的view
模型输入
区别 |
区别 |
pytorch |
keras |
API |
torch.tensor |
Input |
形状 |
NCHW |
NHWC |
需要显示声明input_channels |
不需要input_channels,函数内部会自动获得 |
缩写意义 |
>API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
NCHW和NHWC:
N代表数量, C代表channel,H代表高度,W代表宽度.
NCHW和NHWC
代码 |
卷积
区别 |
区别 |
pytorch |
keras |
API |
nn.Conv2D |
Conv2D |
padding |
任意输入一个值 |
‘valid’没填充,’same’有填充 |
输入通道 |
参数有输入通道 |
没有输入通道 |
缩写意义 |
padding:在原始图像的边缘用了像素填充
程序 |
反卷积
区别 |
区别 |
pytorch |
keras |
API |
nn.ConvTranspose2d |
Conv2DTranspose |
输入通道 |
参数有输入通道 |
没有输入通道 |
程序 |
上采样
区别 |
区别 |
pytorch |
keras |
API |
nn.UpsamplingBilinear2d |
没有,需要自定义 |
程序 |
池化
区别 |
区别 |
pytorch |
keras |
API |
nn.AdaptiveAvgPool2d(1) |
没有自适应池化,需要利用自定义池化自定义 |
BatchNormalization
区别 |
区别 |
pytorch |
keras |
API |
nn.BatchNorm2d |
BatchNormalization |
输入通道 |
参数有输入通道 |
没有输入通道 |
程序 |
激活
区别 |
区别 |
pytorch |
keras |
API |
nn.ReLU |
Activation |
程序 |
pytorch模型流程
对象初始化。。。。
我年龄是: 10
forward 函数被调用了
我现在的年龄是: 12
1)__init__主要用来做参数初始化用,如 conv、pooling、Linear、BatchNorm 等,这点和tf里面的用法一样
2)forward是表示一个前向传播,构建网络层的先后运算步骤
3)__call__的功能和forward类似,所以很多时候,可以用__call__替代forward函数,两者区别是当网络构建完之后,调__call__的时候,会去先调forward,即__call__其实是包了一层forward,所以会导致两者的功能类似。
实现VGG16过程对比
训练
用Keras训练模特只需.fit()
在Pytorch中训练模型包括以下几个步骤:
- 在每批训练开始时初始化梯度
- 前向传播
- 反向传播
- 计算损失并更新权重
参考文章
pytorch转keraskeras pytorch 构建模型对比
keras 和 pytorch
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net