深度学习框架pytorch入门与实践(一):torch的基本使用

主要内容:

1、tensor的定义

2、tensor与numpy的相互转换

3、tensor使用cuda加速

4、tensor封装成Variable后的使用

# -*- coding: utf-8 -*-
"""
Created on Thu Aug  8 16:40:47 2019
pytorch快速入门教程
参考书籍:《深度学习框架pytorch:入门与实践》
@author: zhaoqidong
"""
import torch as t
import numpy as np

#####################1Tensor的基础使用###########
#1.1、构建5*3的矩阵,未分配空间进行初始化
x1=t.Tensor(5,3)
print(x1)

#1.2、使用[0 1]的均匀分布随机初始化二维数组
x2=t.rand(5,3)
print(x2)

#1.3、查看矩阵的形状
print(x2.shape)
print(x2.size())#等价写法

#1.4、tensor 的加法
y=t.rand(5,3)
z=y+x1
print(z)
y2=t.add(y,x1)#加法的等价写法
print(y2)
y2.add_(100)
print(y2)
#注释:add_与add的不同
#     add_ 以_进行结尾,函数会修改对象本身的值
#     add的语法则是等式形式
########################2、Tensor与numpy的结合###########################
#tensor不支持的操作可以先转为numpy,操作之后在转为tensor进行操作
#2.1、tensor转换为numpy
a_tensor=t.ones(5)
print(a_tensor)
b_np=a_tensor.numpy()#tensor—>numpy
print(b_np)
#2.2、将numpy转换为tensor
c_np=np.ones(5)
print(c_np)
d_tensor=t.from_numpy(c_np)#numpy->tensor
print(d_tensor)
#注意:tensor与numpy之间的转换,对象共享内存!!
#      内存共享意味着二者之间的转换会很快,
#      但是同时意味着一方的值改变之后,另外一方的值也会随之更改。
#验证如下:
a_tensor.add_(1000)
print("内存共享:",a_tensor)
print("内存共享:",b_np)
##################3、tensor可以使用CUDA加速######################
if t.cuda.is_available():
    y=y.cuda()
    y2=y2.cuda()
    print(x+y2)

#####################4、Autograd:自动微分#######################
#autograd.Veribale是Autograd中的核心类,封装了tensor之后,可以调用backward实现自动计算反向梯度

from torch.autograd import Variable
x_var=Variable(t.ones(2,2),requires_grad=True)
print(x_var)
y_var=x_var.sum()
print(y_var)
print(y_var.grad_fn)
y_var.backward()
print("第一次反向传播",x_var.grad)
y_var.backward()
print("第二次反向传播",x_var.grad)
# 注意:grad在反向传播的过程中是累加的,深度学习是多层神经网络,在每次反向传播结束之后会累加上次的结果。
#  基于上述原因,训练过程中会在首次反向传播之前将梯度置为零。

#将梯度置为零
x_var.grad.data.zero_()
print(x_var.grad)
y_var.backward()
print("置零之后反向传播",x_var.grad)

  

原文地址:https://www.cnblogs.com/xiaoxiaoke/p/11331272.html

时间: 2024-10-06 09:13:17

深度学习框架pytorch入门与实践(一):torch的基本使用的相关文章

一线开发者在Reddit上讨论深度学习框架:PyTorch和TensorFlow到底哪个更好?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 PyTorch   近日,Reddit用户 cjmcmurtrie 发了一个主题为「PyTorch vs. TensorFlow」的讨论帖,想要了解这两大流行的框架之间各自有什么优势. 原帖地址:https://redd.it/5w3q74 帖子一楼写道: 我还没有从 Torch7 迁移到 TensorFlow.我玩过 TensorFlow,但我发现 Torch7 更加直观(也许是我玩得不够?).我也尝试了

萌新深度学习与Pytorch入门记录(一):Win10下环境安装

深度学习从入门到入土,安装软件及配置环境踩了不少坑,过程中参考了多处博主给的解决方法,遂整合一下自己的采坑记录. (若遇到不一样的错误,请参考其他博主答案解决) 笔者电脑系统为win10系统,在此环境下安装 Pycharm 5.0.3 Anaconda  3 Python 3.6.9 cuda 10.1 Pytorch 1.3.1 1.安装Pycharm 5.0.3,顺带下载地址: PyCharm5.0(32/64)位下载地址: 链接:https://pan.baidu.com/s/1eTYTy

【pytorch】深度学习框架介绍+简单回归问题

深度学习框架 id="深度学习框架">深度学习框架 pytorch pytorch使用C和C++的后端,是站在torch框架基础上开发 pytorch和tensorflow的基本区别是使用了动态图和静态图的区别 机器学习中的常见的静态图和动态图 静态图必须事先定义好静态的公式,在使用过程中会非常麻烦,动态图则可以随时变更,方便调试的 动态计算意味着程序将按照我们编写命令的顺序进行执行.这种机制将使得调试更加容易,并且也使得我们将大脑中的想法转化为实际代码变得更加容易.而静态计算则

Tensorflow:实战Google深度学习框架(高清版)PDF

Tensorflow:实战Google深度学习框架(高清版)PDF百度网盘链接:https://pan.baidu.com/s/1GrKn451PECK0wupXcQDZ3g 提取码:tw9k 复制这段内容后打开百度网盘手机App,操作更方便哦哦内容简介 · · · · · · TensorFlow是谷歌2015年开源的主流深度学习框架,目前已在谷歌.优步(Uber).京东.小米等科技公司广泛应用.<Tensorflow实战>为使用TensorFlow深度学习框架的入门参考书,旨在帮助读者以最

《Tensorflow实战Google深度学习框架》PDF一套四本+源代码_高清_完整

TensorFlow实战 热门Tensorflow实战书籍PDF高清版一套共四本+源代码,包含<Tensorflow实战>.<Tensorflow:实战Google深度学习框架(完整版)>.<TensorFlow:实战Google深度学习框架(第2版)>与<TensorFlow技术解析与实战>,不能错过的学习Tensorflow书籍. TensorFlow是谷歌2015年开源的主流深度学习框架,目前已在谷歌.优步(Uber).京东.小米等科技公司广泛应用.&

深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?

深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?对于这几大框架在运行各项深度任务时的性能差异如何,各位读者不免会有所好奇. 微软数据科学家Ilia Karmanov最新测试的结果显示,亚马逊MXNet在CNN.RNN与NLP情感分析任务上性能强劲,而TensorFlow仅擅长于特征提取. 测试详情更新在Ilia Karmanov的GitHub项目DeepLearningFrameworks(https://github.com/ilkarman/De

《深度学习与计算机视觉算法原理框架应用》PDF+《深度学习之PyTorch实战计算机视觉》PDF

下载:https://pan.baidu.com/s/12-s95JrHek82tLRk3UQO_w <深度学习与计算机视觉 算法原理.框架应用>PDF,带书签,347页.<大数据架构详解:从数据获取到深度学习>PDF,带书签,373页.配套源代码. 下载:https://pan.baidu.com/s/1P0-o29x0ZrXp8WotN7GzcA<深度学习之PyTorch实战计算机视觉> 更多分享:https://pan.baidu.com/s/1g4hv05UZ_

从TensorFlow到PyTorch:九大深度学习框架哪款最适合你?

开源的深度学习神经网络正步入成熟,而现在有许多框架具备为个性化方案提供先进的机器学习和人工智能的能力.那么如何决定哪个开源框架最适合你呢?本文试图通过对比深度学习各大框架的优缺点,从而为各位读者提供一个参考.你最看好哪个深度学习框架呢? 现在的许多机器学习框架都可以在图像识别.手写识别.视频识别.语音识别.目标识别和自然语言处理等许多领域大展身手,但却并没有一个完美的深度神经网络能解决你的所有业务问题.所以,本文希望下面的图表和讲解能够提供直观方法,帮助读者解决业务问题. 下图总结了在 GitH

入门实战《深度学习技术图像处理入门》+《视觉SLAM十四讲从理论到实践》

学习图像识别处理,想在数据分析竞赛中取得较高的排名,看了<深度学习技术图像处理入门>电子书,一边看电子书一边做标记,对配套的代码也做了测试,收获颇多. 从机器学习.图像处理的基本概念入手,逐步阐述深度学习图像处理技术的基本原理以及简单的实现. 学习理论后做实验,使用卷积神经网络进行端到端学习,构建深度卷积神经网络,使用循环神经网络改进模型,评估模型,测试模型.最关键的是可以将模型运用于实战之中,将深度学习模型导入到工程中,数据类型转换函数,实施CAM可视化,这是我最需要的. 视觉和图形学真是一