深度学习基础---综合
轻羽羽
学编程的美食爱好者,
有问题欢迎邮件联系szysunyi@163.com
展开
-
网络举例---------Pytorch
import torchimport torch.nn as nnimport torch.nn.functional as F1、卷积网络 class Net(nn.Module): def __init__(self,'这里放参数'): super(Net,self).__init__() @CNN # 输入通道数,输出通道数/卷积核个数,卷积核尺寸 self.conv1 =.原创 2020-05-21 11:57:26 · 269 阅读 · 0 评论 -
张量---------Pytorch
# numpy转tensor: torch.Tensor(trainDATA)# torch.view()==reshape()一、张量tensor 1.1 张量的建立 # 数据建议是列表 # 如果是numpy数组则会共享内存,即修改一个,另一个也跟着改变 x = torch.tensor([5.5, 3]) # 把张量放到gpu x = torch.tensor([5.5, 3],device='cuda') 1.2 特殊张量 # .原创 2020-05-21 11:56:42 · 192 阅读 · 0 评论 -
全连接网络与激活函数、权值初始化---------Pytorch
1、线性 # in_features 输入结点数 # out_features 输出结点数 # bias 是否要偏置 nn.Linear(in_features,out_features,bias=True)2、激活函数 2.1 nn.Sigoid # 输出(0,1) # 导数[0,0.25],易梯度消失 y = 1/(1+e**(-x)) 2.2 nn.tanh # 输出(-1,1) .原创 2020-05-21 11:56:05 · 1700 阅读 · 0 评论 -
损失函数---------Pytorch
1、交叉熵损失:分类 # weight:各类别的loss设置权值 # ignore_index:忽略某个类别,不计算其loss # reduction:计算方式(mean/none/sum) ''' mean:加权平均,返回标量(所有loss求平均) none:逐个元素计算(计算每个样本loss) sum:所有元素求和,返回标量(所有loss求和) ''' nn.CrossEntropyLoss(weight=None,ignore_.原创 2020-05-21 11:54:04 · 381 阅读 · 1 评论 -
网络容器------Pytorch
一、容器(在Net网络类的__init__函数中使用) 1、nn.Sequetial:按顺序包装多个网络层 class Net(nn.module): def __init__(self,classes) super(Net,self).__init__() self.network = nn.Sequetial( nn.Conv2d(3,6,5), .原创 2020-05-20 15:23:51 · 187 阅读 · 0 评论 -
优化器---------Pytorch
1、梯度清零 # 反向传播[loss.backward()]之前要梯度清零 optimizer.zero_grad()2、权值更新 optimizer.step()3、动量(冲量):结合当前梯度与上一次更新信息,用于当前更新4、优化器## SGD:对参数敏感,但合适的参数会使效果更好## Adam:每次迭代,学习率有一个确定的范围,使参数更新稳定 # rmsprop优化器是自适应学习率梯度下降法adagrad的改进 @随机梯度下降法 # pa.原创 2020-05-20 15:21:55 · 208 阅读 · 0 评论 -
循环神经网络(RNN、LSTM、GRU)---------Pytorch
# 处理不定长输入# 时间序列任务(输入数据具有前后关系)1、RNN # input_size:输入x的特征数量 # hidden_size:隐藏层的特征数量 # num_layers:RNN层数 # nonlinearity:默认tanh,非线性函数使用tanh还是relu # bias:默认True,是否使用偏置 # batch_first:默认False[即(序列长度seq,批大小batch,特征维度feature)];若True则(batch,s.原创 2020-05-20 15:20:34 · 730 阅读 · 0 评论 -
卷积和池化---------Pytorch
1、二维卷积 @输入数据形状:32*32*3(size*in_channels) # in_channels 输入通道数 # out_channels 输出通道数(卷积核个数) # kernel_size 卷积核尺寸 # stride 步长,默认1 # padding 填充个数,默认0 # dilation 空洞卷积大小,默认1(常用于图像分割) # groups 分组卷积设置,默认1,一幅图划分为多个区域且不同区域内有一个卷积核(常用于模型.原创 2020-05-20 15:18:20 · 588 阅读 · 0 评论 -
Pytorch中的保存与加载
path_model = 'model.pkl'path_state_dict = 'model_state_dict.pkl'1、保存(序列化) # obj:对象 # f:输出路径 torch.save(obj,f) 2、保存模型参数 # 数据以字典形式存储 # 获取模型的可学习参数 state_dict = net.state_dict() # 将参数保存 torch.save(state_dict,f)3、加载(反序列化) .原创 2020-05-20 15:17:38 · 676 阅读 · 0 评论 -
DataLoader以及图片处理操作---------Pytorch
一、DataLoader torch.utils.data.DataLoader( # 数据集;批大小;是否乱序 dataset,batch_size=1,shuffle=False, # 读取数据的进程数 num_workers=0, # 当样本数不能被batchsize整除时, # 是否舍弃最后一批数据 drop_last=False) 二、图片处理 # 组合图片的操作.原创 2020-05-20 15:14:51 · 1994 阅读 · 3 评论 -
torchvision视觉库---------Pytorch
0、制作网格图像(多张图组成一张网格) # tensor:图像数据,BatchSize图片数*C通道数*H高*W宽 # nrow:行数(列数自动计算) # padding:图像间距(像素单位) # normalize:是否将像素值标准化,默认False(默认数据[0,255]),但如果数据[0,1]可设置为True # range:标准化范围(在意的像素值区间:若像素值[-1000,2000],设置[-600,600],则小于-600的设置为-600,大于600的设.原创 2020-05-20 15:13:45 · 255 阅读 · 0 评论 -
torchsummary查看模型信息以及TensorBoard可视化---------Pytorch
0、查看模型信息# model:模型# input_size:模型输入size# batch_size# device:'cuda'或'cpu'torchsummary(model,input_size,batch_size=-1,device='cuda')from tensorboardX import SummaryWriter1、实例化SummaryWriter,并指明日志存放路径(若当前目录没有此文件将自动创建) # log_dir:event_file输出文件'log.原创 2020-05-20 15:12:08 · 1815 阅读 · 0 评论 -
Pytorch中的to方法------数据类型转换、GPU使用方法及注意点、单机多GUP并行执行任务
一、转换数据为浮点数# (张量不执行inplace操作,因此要重新赋值)tensorX = torch.ones((3,3))tensorX.to(torch.float64)二、将张量放至gpu # (张量不执行inplace操作,因此要重新赋值) tensorX = tensorX.to('cuda') # 指定gpu tensorX = tensorX.to('cuda:0') @以下是另一种方法 device = torch.devi原创 2020-05-20 15:09:06 · 5745 阅读 · 2 评论 -
TensorBoard---------tensorboardX版
import torchfrom tensorboardX import SummaryWriterwriter = SummaryWriter()for n_iter in range(10): scalar = torch.rand(1) writer.add_scalar('data/scalar',scalar[0],n_iter) writer.add_...原创 2019-11-19 15:38:21 · 440 阅读 · 0 评论