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中__new__与__init__方法的区别详解
May 04 Python
Python运算符重载用法实例分析
Jun 01 Python
Python2.x利用commands模块执行Linux shell命令
Mar 11 Python
python实现图片筛选程序
Oct 24 Python
设置python3为默认python的方法
Oct 31 Python
python循环定时中断执行某一段程序的实例
Jun 29 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
python Selenium 库的使用技巧
Oct 16 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
pycharm debug 断点调试心得分享
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
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
JavaScript中的Array对象使用说明
2011/01/17 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
[02:29]大剑、皮鞭、女装,这届DOTA2勇士令状里都有
2020/07/17 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Python序列类型的打包和解包实例
2019/12/21 Python
python3正则模块re的使用方法详解
2020/02/11 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
2015中学教师个人工作总结
2015/07/22 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
Python制作动态字符画的源码
2021/08/04 Python