Pytorch基本变量类型FloatTensor与Variable用法


Posted in Python onJanuary 08, 2020

pytorch中基本的变量类型当属FloatTensor(以下都用floattensor),而Variable(以下都用variable)是floattensor的封装,除了包含floattensor还包含有梯度信息

pytorch中的dochi给出一些对于floattensor的基本的操作,比如四则运算以及平方等(链接),这些操作对于floattensor是十分的不友好,有时候需要写一个正则化的项需要写很长的一串,比如两个floattensor之间的相加需要用torch.add()来实现

然而正确的打开方式并不是这样

韩国一位大神写了一个pytorch的turorial,其中包含style transfer的一个代码实现

for step in range(config.total_step):

    
    # Extract multiple(5) conv feature vectors
    target_features = vgg(target)  # 每一次输入到网络中的是同样一张图片,反传优化的目标是输入的target
    content_features = vgg(Variable(content))
    style_features = vgg(Variable(style))

    style_loss = 0
    content_loss = 0
    for f1, f2, f3 in zip(target_features, content_features, style_features):
      # Compute content loss (target and content image)
      content_loss += torch.mean((f1 - f2)**2) # square 可以进行直接加-操作?可以,并且mean对所有的元素进行均值化造作

      # Reshape conv features
      _, c, h, w = f1.size() # channel height width
      f1 = f1.view(c, h * w) # reshape a vector
      f3 = f3.view(c, h * w) # reshape a vector

      # Compute gram matrix 
      f1 = torch.mm(f1, f1.t())
      f3 = torch.mm(f3, f3.t())

      # Compute style loss (target and style image)
      style_loss += torch.mean((f1 - f3)**2) / (c * h * w)  # 总共元素的数目?

其中f1与f2,f3的变量类型是Variable,作者对其直接用四则运算符进行加减,并且用python内置的**进行平方操作,然后

# -*-coding: utf-8 -*-
import torch
from torch.autograd import Variable

# dtype = torch.FloatTensor
dtype = torch.cuda.FloatTensor # Uncomment this to run on GPU

# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# Randomly initialize weights
w1 = torch.randn(D_in, H).type(dtype) # 两个权重矩阵
w2 = torch.randn(D_in, H).type(dtype)
# operate with +-*/ and **
w3 = w1-2*w2
w4 = w3**2
w5 = w4/w1


# operate the Variable with +-*/ and **
w6 = Variable(torch.randn(N, D_in).type(dtype))
w7 = Variable(torch.randn(N, D_in).type(dtype))
w8 = w6 + w7
w9 = w6*w7
w10 = w9**2
print(1)

基本上调试的结果与预期相符

Pytorch基本变量类型FloatTensor与Variable用法

所以,对于floattensor以及variable进行普通的+-×/以及**没毛病

以上这篇Pytorch基本变量类型FloatTensor与Variable用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中文件遍历的两种方法
Jun 16 Python
简单介绍Python中利用生成器实现的并发编程
May 04 Python
Python中__init__.py文件的作用详解
Sep 18 Python
简单谈谈python中的语句和语法
Aug 10 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 Python
python判断所输入的任意一个正整数是否为素数的两种方法
Jun 27 Python
python批量修改ssh密码的实现
Aug 08 Python
python retrying模块的使用方法详解
Sep 25 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 #Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 #Python
pycharm激活码有效到2020年11月底
Sep 18 #Python
pymysql的简单封装代码实例
Jan 08 #Python
pytorch使用 to 进行类型转换方式
Jan 08 #Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 #Python
Pytorch to(device)用法
Jan 08 #Python
You might like
php ctype函数中文翻译和示例
2014/03/21 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
修复IE9&safari 的sort方法
2011/10/21 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
用js编写留言板
2020/03/17 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python2中的raw_input() 与 input()
2015/06/12 Python
python函数的作用域及关键字详解
2019/08/20 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
基于python 凸包问题的解决
2020/04/16 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
国际经济贸易专业推荐信
2013/11/06 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
教师个人事迹材料
2014/12/17 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android