深度学习框架Torch
Vic时代
这个作者很懒,什么都没留下…
展开
-
Torch——错误集锦
matio/home/victoria/torch/install/share/lua/5.1/trepl/init.lua:389: /home/victoria/torch/install/share/lua/5.1/trepl/init.lua:389: /home/victoria/torch/install/share/lua/5.1/matio/ffi.lua:24: Could not原创 2017-05-10 02:31:09 · 7907 阅读 · 0 评论 -
PyTorch学习系列(十六)——如何使用cuda进行训练?
如果想在CUDA上进行计算,需要将操作对象放在GPU内存中。 对于普通的张量,可以直接:x = torch.randn(2, 3)x = x.cuda()对于神经网络:model = MyModel()model.cuda()同一个GPU上的张量计算后的结果仍然保存在该GPU上。参考[1] http://pytorch.org/docs/notes/cuda.html#原创 2017-06-05 21:46:30 · 34830 阅读 · 2 评论 -
PyTorch——Tensor_把索引标签转换成one-hot标签表示
对于分类问题,标签可以是类别索引值也可以是one-hot表示。以10类别分类为例,lable=[3] 和label=[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]是一致的.现在给定索引标签,怎么将其转换为one-hot标签表示?原创 2017-06-06 09:14:54 · 61448 阅读 · 8 评论 -
PyTorch的错误
1、nn.CrossEntropyLoss() 这个计算的结果和自己实现的结果不一样。计算简单的网络,发现应该是这个函数错了。原创 2017-06-06 11:26:45 · 1677 阅读 · 0 评论 -
Pytorch——把模型的所有参数的梯度清0
有两种方式直接把模型的参数梯度设成0:model.zero_grad()optimizer.zero_grad()#当optimizer=optim.Optimizer(model.parameters())时,两者等效如果想要把某一Variable的梯度置为0,只需用以下语句:Variable.grad.data.zero_()原创 2017-06-30 09:00:24 · 9517 阅读 · 1 评论 -
Pytorch学习系列(八)——训练神经网络
训练神经网络的训练主要包含以下语句:if cuda: model.cuda()model.train()#把模型的状态设置为训练状态,主要针对Dropout层optimizer = torch.optim.SGD((model.parameters(), lr=lr, momentum=momentum))for epoch in range(epochs): for batc原创 2017-06-29 17:05:42 · 10077 阅读 · 1 评论 -
PyTorch学习系列(九)——参数_初始化
上篇文章介绍了神经网络的参数定义,并简单提到了其默认初始化。这里详细聊聊怎么根据用户的需求对参数进行初始化。PyTorch提供了多种参数初始化函数:torch.nn.init.constant(tensor, val)torch.nn.init.normal(tensor, mean=0, std=1)torch.nn.init.xavier_uniform(tensor, gain=1)等原创 2017-06-05 22:16:43 · 55256 阅读 · 0 评论 -
PyTorch——错误集锦
1、KeyError:原创 2017-05-23 08:35:18 · 20198 阅读 · 5 评论 -
深度学习——如何运行在移动设备上
Caffe mobile Tensorflow Caffe2 CoreML原创 2017-07-03 22:26:02 · 1664 阅读 · 0 评论 -
PyTorch学习系列(一)——加载数据并生成batch数据
开始学习PyTorch,在此记录学习过程。准备按顺序写以下系列:加载数据并生成batch数据数据预处理构建神经网络Tensor和Variable定义loss自动求导优化器更新参数训练神经网络参数_定义参数_初始化如何在训练时固定一些层?绘制loss和accuracy曲线torch.nn.Container和torch.nn.Module各层参数及激活值的可视化保存训练好原创 2017-05-17 09:12:19 · 50482 阅读 · 14 评论 -
PyTorch学习系列(三)——构建神经网络
本文将介绍怎么在利用PyTorch框架构建自己的神经网络模型。原创 2017-05-17 09:39:35 · 7618 阅读 · 0 评论 -
PyTorch学习系列(十五)——如何加载预训练模型?
torch.nn.Module对象有函数static_dict()用于返回包含模块所有状态的字典,包括参数和缓存。键是参数名称或者缓存名称。函数Module::load_state_dict(state_dict)用state_dict中的状态值更新模块的状态值。static_dict中的键应该和函数static_dict()返回的字典中的键完全一样。下面给出加载预训练的模型的示例:pretrain原创 2017-05-31 16:24:23 · 31229 阅读 · 9 评论 -
Torch学习资料
学习Lua语言:学习Torch: - Deep Learning with Torch: the 60-minute blitz - 文档 - Demos - Tutorials原创 2017-05-12 09:40:00 · 1155 阅读 · 0 评论 -
PyTorch介绍与安装
Facebook的AI研究团队发布了Python工具包——PyTorch,专门用于GPU加速的深度学习编程,实现了在Python语言下使用Torch。原创 2017-02-27 15:39:26 · 2030 阅读 · 0 评论 -
PyTorch之示例——MNIST
from __future__ import print_functionimport argparseimport torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torchvision import datasets, transformsfrom to原创 2017-05-16 23:09:51 · 27272 阅读 · 4 评论 -
PyTorch学习系列(二)——数据预处理torchvision.transforms
import torchvision.transforms as transforms transforms模块提供了一般的图像转换操作类。class torchvision.transforms.ToTensor 把shape=(H x W x C)的像素值范围为[0, 255]的PIL.Image或者numpy.ndarray转换成shape=(C x H x W)的像素值范围为[0.0,原创 2017-05-31 17:15:23 · 23252 阅读 · 0 评论 -
PyTorch学习系列(四)——Tensor 和 Variable
TensorPyTorch中的Tensor本质上和numpy数组是一样的:Tensor是一个n维数组,并且PyTorch定义了关于Tensor的很多操作。并且Tensor和numpy一样,不知道深度学习、计算图和梯度的概念,它们都是通用的科学计算工具。但是和numpy不同的是,Torch可以利用GPU来加速数值计算。Variable如果用numpy或者Tensor来实现神经网络,需要手动写出前向过程原创 2017-05-24 09:12:36 · 17681 阅读 · 0 评论 -
PyTorch学习系列(五)——自定义loss
在PyTorch中可以自定义loss,并且只要输入到输出的过程中一直使用的都是Variable(没有用tensor或者numpy),那么loss可以自动求梯度。原创 2017-05-26 16:11:06 · 10936 阅读 · 0 评论 -
PyTorch学习系列(六)——自动求导
各种深度学习框架大大简化了研究人员的工作量,这主要归功于它们的自动求导功能。如果不借助于这些深度学习框架,我们不仅需要写大量构建网络的代码,而且还要推导网络在各层的梯度并实现导数计算,这是非常费时的,而且极易出错。本文介绍如何使用PyTorch的自动求导功能。原创 2017-05-19 21:39:11 · 8252 阅读 · 1 评论 -
PyTorch学习系列(十)——如何在训练时固定一些层?
有时我们会用其他任务(如分类)预训练好网络,然后固定卷积层作为图像特征提取器,然后用当前任务的数据只训练全连接层。那么PyTorch如何在训练时固定底层只更新上层呢?这意味着我们希望反向传播计算梯度时,我们只希望计算到最上面的卷积层,对于卷积层,我们并不希望计算梯度并用梯度来更新参数。 我们知道,网络中的所有操作对象都是Variable对象,而Variable有两个参数可以用于这个目的:requi原创 2017-05-27 10:52:34 · 25322 阅读 · 5 评论 -
PyTorch学习系列(十四)——保存训练好的模型
PyTorch提供了两种保存训练好的模型的方法。 第一种是只保存模型参数,这也是推荐的方法:#保存torch.save(the_model.state_dict(), PATH)#读取the_model = TheModelClass(*args, **kwargs)the_model.load_state_dict(torch.load(PATH))第二种方法保存整个模型:#保存tor原创 2017-06-02 08:48:43 · 14094 阅读 · 4 评论 -
PyTorch学习系列(一)——加载数据2
生成batch数据现在有了由数据文件生成的结构数据MyDataset,那么怎么在训练时提供batch数据呢?PyTorch提供了生成batch数据的类。PyTorch用类torch.utils.data.DataLoader加载数据,并对数据进行采样,生成batch迭代器。class torch.utils.data.DataLoader(dataset, batch_size=1, ...原创 2018-05-14 20:08:21 · 4894 阅读 · 1 评论