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编写生成树状结构的文件目录的脚本的教程
May 04 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 Python
使用Python的turtle模块画图的方法
Nov 15 Python
Python进阶之@property动态属性的实现
Apr 01 Python
python tkinter图形界面代码统计工具(更新)
Sep 18 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
Sep 18 Python
详解基于Scrapy的IP代理池搭建
Sep 29 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
浅析pandas随机排列与随机抽样
Jan 22 Python
教你用python实现一个无界面的小型图书管理系统
May 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简单静态页生成过程
2008/03/27 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
javascript基本语法分析说明
2008/06/15 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
Python将图片转换为字符画的方法
2020/06/16 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
django如何通过类视图使用装饰器
2019/07/24 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
python 负数取模运算实例
2020/06/03 Python
基于python代码批量处理图片resize
2020/06/04 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
大国崛起观后感
2015/06/02 职场文书
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js