神经网络架构PYTORCH-宏观分析
2018-10-26 13:44
609 查看
基本概念和功能:
PyTorch是一个能够提供两种高级功能的python开发包,这两种高级功能分别是:
使用GPU做加速的矢量计算
具有自动重放功能的深度神经网络
从细的粒度来分,PyTorch是一个包含如下类别的库:
- Torch:类似于Numpy的通用数组库,可以在将张量类型转换为2 (torch.cuda.TensorFloat)并在GPU上进行计算。
- torch.autograd 支持全微分张量运算的基于磁带的自动微分库
- torch.nn 一个具有最大设计灵活性的高度集成的神经网络库
- torch.multiprocessing python的多重处理系统,通常用在数据加载和高强度的训练
- torch.utils 数据记载,训练和转换的接口函数
- torch.legacy(.nn/.optim) 从Torch上移植过来的代码,为了保证向后兼容.
安装指南:
安装有两种方式,一种是库文件安装详见目录:https://pytorch.org/
另外一种是源码安装:在github上把东西下载下来:https://github.com/pytorch/pytorch.git
下载之首先要进行源码安装,在根目录下执行:
python setup.py install
这个是linux下的源码安装,安装过程中很多情况下会缺少一些库,这个要根据实际的问题去谷歌搜,答案都能找到的.
源码分析:
源码的目录如下所示:
分解:
- aten: 在torch中实现矢量运算的简单的矢量库.
- caffe2:caffe2的源码和例子
- docs: 该系统的文档
- third_party 第三方的库文件和和源码
- torch torch的源码和使用例子
- binaries 各种基准的生成源码
最简实例:
下面一个例子是使用PyTorch做线性回归的例子,源码如下:
# -*- coding: utf-8 -*- import torch import torch.optim as optim import matplotlib.pyplot as plt learning_rate = 0.001 def get_fake_data(batch_size=32): ''' y=x*2+3 ''' x = torch.randn(batch_size, 1) * 20 y = x * 2 + 3 + torch.randn(batch_size, 1) return x, y x, y = get_fake_data() class LinerRegress(torch.nn.Module): def __init__(self): super(LinerRegress, self).__init__() self.fc1 = torch.nn.Linear(1, 1) def forward(self, x): return self.fc1(x) net = LinerRegress() loss_func = torch.nn.MSELoss() optimzer = optim.SGD(net.parameters(), lr=learning_rate) for i in range(40000): optimzer.zero_grad() out = net(x) loss = loss_func(out, y) loss.backward() optimzer.step() w, b = [param.item() for param in net.parameters()] print w, b # 2.01146, 3.184525 # 显示原始点与拟合直线 plt.scatter(x.squeeze().numpy(), y.squeeze().numpy()) plt.plot(x.squeeze().numpy(), (x*w + b).squeeze().numpy()) plt.show()
运行结果:
到此为止,PyTorch的基本认识算是结束,后面就要开始深入的分析它在各个方面的应用和代码了.
相关文章推荐
- 神经网络架构PYTORCH-初相识(3W)
- 神经网络架构PYTORCH-前馈神经网络
- 神经网络架构PYTORCH-几个概念
- PyTorch笔记4-快速构建神经网络(NN)
- PyTorch笔记5-save和load神经网络
- pytorch + visdom 应用神经网络、CNN 处理手写字体分类
- PyTorch快速入门教程三(神经网络)
- PyTorch快速搭建神经网络及其保存提取方法详解
- 几种经典的网络服务器架构模型的分析与比较
- 深度学习torch之三(神经网络的前向传播和反向传播以及损失函数的基本操作)
- 几种经典的网络服务器架构模型的分析与比较
- Torch构建神经网络学习
- 一步一步分析讲解深度神经网络基础-Convolutional Neural Network
- 【深度学习】详细的神经网络架构图
- 【machine-learning;】关于电力系统的数据分析(LM神经网络算法)
- 几种经典的网络服务器架构模型的分析与比较 心得
- 几种经典的网络服务器架构模型的分析与比较
- 机器学习必知的八大神经网络架构
- 【深度学习技术】神经网络整体架构
- 几种经典的网络服务器架构模型的分析与比较