PyTorch基础学习
线性回归
第一步:构建数据
1 | import torch |
第二步:设计模型
1 | class LinearModle(torch.nn.Module): # 定义为一个类。应该继承自nn.Module,它是所有nn模块的基类。 |
第三步:损失函数和优化器
1 | criterion = torch.nn.MSELoss(size_average=False, reduce=True) # 是否求均值=True,是否求和=True |
第四步:训练(前馈,反馈,更新)
1 | for epoch in range(100): |
多维输入处理
第一步:构建数据
1 | import numpy as np |
第二步:设计模型
1 | class Model(torch.nn.Module): |
后两步基本一样
Dataset和DataLoader
Dataset,数据集,需要支持索引。
DataLoader,主要是支持拿出Mini-Batch
Epoch:所有训练样本都进行一次前向传播和一次反向传播。
Batch-Size:每次训练所用样本数量
Iteration: = 样本数 / Batch-Size
1 | # Training cycle |
实现
1 | import torch |
CNN实现1
input output 卷积核 大小
1 | import torch |
一次简单的卷积
1 | import torch |
网络模型
1 | import torch |
训练
1 | def train(epoch): |
测试
1 | def test(): |
CNN实现2
GoogLeNet
如上图,从左到右编号1 2 3 4,见注释
Inception块
1 | import torch |
用Inception构建一个简单网络
1 | class Net(nn.Module): |
ResNet
残差块
1 | class ResidualBlock(nn.Module): |
网络
1 | import torch |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 魔法使いの秘密基地!
评论