神经网络架构PYTORCH-宏观分析
基本概念和功能:
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-宏观分析的更多相关文章
- 神经网络架构PYTORCH-几个概念
使用Pytorch之前,有几个概念需要弄清楚. 什么是Tensors(张量)? 这个概念刚出来的时候,物理科班出身的我都感觉有点愣住了,好久没有接触过物理学的概念了. 这个概念,在物理学中怎么解释呢? ...
- 神经网络架构PYTORCH-前馈神经网络
首先要熟悉一下怎么使用PyTorch来实现前馈神经网络吧.为了方便理解,我们这里只拿只有一个隐藏层的前馈神经网络来举例: 一个前馈神经网络的源码和注释如下:比较简单,这里就不多介绍了. class N ...
- 神经网络架构PYTORCH-初相识(3W)
who? Python是基于Torch的一种使用Python作为开发语言的开源机器学习库.主要是应用领域是在自然语言的处理和图像的识别上.它主要的开发者是Facebook人工智能研究院(FAIR)团队 ...
- 神经网络架构pytorch-MSELoss损失函数
MSELoss损失函数中文名字就是:均方损失函数,公式如下所示: 这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标. 很多的 loss 函数都有 size_average 和 ...
- 怎样设计最优的卷积神经网络架构?| NAS原理剖析
虽然,深度学习在近几年发展迅速.但是,关于如何才能设计出最优的卷积神经网络架构这个问题仍在处于探索阶段. 其中一大部分原因是因为当前那些取得成功的神经网络的架构设计原理仍然是一个黑盒.虽然我们有着关于 ...
- MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...
- (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)
干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译 参与:老红.李亚洲 就像雨季后非洲大草原许多野 ...
- 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)
摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...
- 经典的卷积神经网络及其Pytorch代码实现
1.LeNet LeNet是指LeNet-5,它是第一个成功应用于数字识别的卷积神经网络.在MNIST数据集上,可以达到99.2%的准确率.LeNet-5模型总共有7层,包括两个卷积层,两个池化层,两 ...
随机推荐
- 【aardio】]SQL创建、读写 excel
import access; var db,err = access( "/test.xls" ) //文件不存在可自动创建 //创建表 if( ! db.existsTable( ...
- UI设计学习之工具中的色彩模式分析
图像根据其呈现的颜色样式分为多种色彩模式,常见的为RGB模式.CMYK模式.灰度模式.位图模式和索引模式. RGB模式 这是Photoshop最常用的颜色模式,也称之为真彩色颜色模式,在RGB模式 ...
- bittorrent 学习(四) tracker peer通讯
看看 tracker.c文件 http_encode() 为http发送进行编码转换 int http_encode(unsigned char *in,int len1,char *out,int ...
- PNP的学习-EPNP
EPNP主要是利用已知的3d点,通过PCA选择4个控制点,建立新的局部坐标系,从而将3d坐标用新的控制点表示出来. 然后,利用相机投影模型和2d点,转换到相机坐标系中,再在相机坐标系中建立和世界坐标系 ...
- 《Miracle_House》团队项目系统设计改进
一.团队项目系统设计改进: 1.分析项目系统设计说明书初稿的不足,特别是软件系统结构模型建模不完善内容: 对于原文档中,设计图中存在的错误以及文字描述不准确的地方进行了修改. 2. 团队项目Githu ...
- 初识STM32中的USMART组件
今天看了usmart那部分的模块,感觉使我们stm32的学习变更加方便,你可以通过串口查看和检验你所注册过的函数. USMART配步骤1.将USMART包添加到工程中,头文件要包括path2.添加所需 ...
- jieba库的使用和好看的词元
一.jieba库的使用与说明 1.jieba库基本介绍 jieba库是优秀的中文分词第三方库 -中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 ...
- 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB
走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...
- Linux学习---位运算符
<<.>> ① << 左移 乘以2^n m << n m*(2^n) eg:4: 0 0 1 0 0 8: 0 1 0 0 0 [数据.数字]移位 左 ...
- c# 自定义日期的时分秒
DateTime beginTime = DateTime.Now.Date; 2 Console.WriteLine(beginTime); DateTime endTime = , , ); Co ...