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 28 Python
Python多线程threading和multiprocessing模块实例解析
Jan 29 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
Python 控制终端输出文字的实例
Jul 12 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
Django中自定义查询对象的具体使用
Oct 13 Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
Python3爬虫带上cookie的实例代码
Jul 28 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
自动跳转中英文页面
2006/10/09 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
Destoon模板制作简明教程
2014/06/20 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
python实现飞机大战游戏
2020/10/26 Python
Django缓存系统实现过程解析
2019/08/02 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
数学教育专业求职信
2014/07/22 职场文书
2015年环卫工作总结
2015/04/28 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
浅析MongoDB之安全认证
2021/06/26 MongoDB
灵能百分百第三季什么时候来?
2022/03/15 日漫