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 相关文章推荐
21行Python代码实现拼写检查器
Jan 25 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
浅谈机器学习需要的了解的十大算法
Dec 15 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
pytorch 实现删除tensor中的指定行列
Jan 13 Python
浅谈matplotlib.pyplot与axes的关系
Mar 06 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 Python
什么是python的列表推导式
May 26 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
paramiko使用tail实时获取服务器的日志输出详解
Dec 06 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 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
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
javascript下function声明一些小结
2007/12/28 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
python自动zip压缩目录的方法
2015/06/28 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
公司授权委托书范本
2014/04/03 职场文书
班级课外活动总结
2014/07/09 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
自我检讨书范文
2015/01/28 职场文书
主持人开幕词
2015/01/29 职场文书
音乐研修感悟
2015/11/18 职场文书