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 11 Python
用Python设计一个经典小游戏
May 15 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
Python Image模块基本图像处理操作小结
Apr 13 Python
python实现根据文件格式分类
Oct 31 Python
python几种常用功能实现代码实例
Dec 25 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
django admin后管定制-显示字段的实例
Mar 11 Python
虚拟环境及venv和virtualenv的区别说明
Feb 05 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 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
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
解决python "No module named pip" 的问题
2018/10/13 Python
django ajax发送post请求的两种方法
2020/01/05 Python
使用Pycharm分段执行代码
2020/04/15 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
《美丽的黄昏》教学反思
2014/02/28 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
保险公司增员口号
2015/12/25 职场文书
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android
Python实现数据的序列化操作详解
2022/07/07 Python