pytorch 自定义参数不更新方式


Posted in Python onJanuary 06, 2020

nn.Module中定义参数:不需要加cuda,可以求导,反向传播

class BiFPN(nn.Module):
  def __init__(self, fpn_sizes):

  self.w1 = nn.Parameter(torch.rand(1))

  print("no---------------------------------------------------",self.w1.data, self.w1.grad)

下面这个例子说明中间变量可能没有梯度,但是最终变量有梯度:

cy1 cd都有梯度

import torch
 
xP=torch.Tensor([[ 3233.8557, 3239.0657, 3243.4355, 3234.4507, 3241.7087,
     3243.7292, 3234.6826, 3237.6609, 3249.7937, 3244.8623,
     3239.5349, 3241.4626, 3251.3457, 3247.4263, 3236.4924,
     3251.5735, 3246.4731, 3242.4692, 3239.4958, 3247.7283,
     3251.7134, 3249.0237, 3247.5637],
    [ 1619.9011, 1619.7140, 1620.4883, 1620.0642, 1620.2191,
     1619.9796, 1617.6597, 1621.1522, 1621.0869, 1620.9725,
     1620.7130, 1620.6071, 1620.7437, 1621.4825, 1620.5107,
     1621.1519, 1620.8462, 1620.5944, 1619.8038, 1621.3364,
     1620.7399, 1621.1178, 1618.7080],
    [ 1619.9330, 1619.8542, 1620.5176, 1620.1167, 1620.1577,
     1620.0579, 1617.7155, 1621.1718, 1621.1338, 1620.9572,
     1620.6288, 1620.6621, 1620.7074, 1621.5305, 1620.5656,
     1621.2281, 1620.8346, 1620.6021, 1619.8228, 1621.3936,
     1620.7616, 1621.1954, 1618.7983],
    [ 1922.6078, 1922.5680, 1923.1331, 1922.6604, 1922.9589,
     1922.8818, 1920.4602, 1923.8107, 1924.0142, 1923.6907,
     1923.4465, 1923.2820, 1923.5728, 1924.4071, 1922.8853,
     1924.1107, 1923.5465, 1923.5121, 1922.4673, 1924.1871,
     1923.6248, 1923.9086, 1921.9496],
    [ 1922.5948, 1922.5311, 1923.2850, 1922.6613, 1922.9734,
     1922.9271, 1920.5950, 1923.8757, 1924.0422, 1923.7318,
     1923.4889, 1923.3296, 1923.5752, 1924.4948, 1922.9866,
     1924.1642, 1923.6427, 1923.6067, 1922.5214, 1924.2761,
     1923.6636, 1923.9481, 1921.9005]])
 
yP=torch.Tensor([[ 2577.7729, 2590.9868, 2600.9712, 2579.0195, 2596.3684,
     2602.2771, 2584.0305, 2584.7749, 2615.4897, 2603.3164,
     2589.8406, 2595.3486, 2621.9116, 2608.2820, 2582.9534,
     2619.2073, 2607.1233, 2597.7888, 2591.5735, 2608.9060,
     2620.8992, 2613.3511, 2614.2195],
    [ 673.7830,  693.8904,  709.2661,  675.4254,  702.4049,
      711.2085,  683.1571,  684.6160,  731.3878,  712.7546,
      692.3011,  701.0069,  740.6815,  720.4229,  681.8199,
      736.9869,  718.5508,  704.3666,  695.0511,  721.5912,
      739.6672,  728.0584,  729.3143],
    [ 673.8367,  693.9529,  709.3196,  675.5266,  702.3820,
      711.2159,  683.2151,  684.6421,  731.5291,  712.6366,
      692.1913,  701.0057,  740.6229,  720.4082,  681.8656,
      737.0168,  718.4943,  704.2719,  695.0775,  721.5616,
      739.7233,  728.1235,  729.3387],
    [ 872.9419,  891.7061,  905.8004,  874.6565,  899.2053,
      907.5082,  881.5528,  883.0028,  926.3083,  908.9742,
      890.0403,  897.8606,  934.6913,  916.0902,  880.4689,
      931.3562,  914.4233,  901.2154,  892.5759,  916.9590,
      933.9291,  923.0745,  924.4461],
    [ 872.9661,  891.7683,  905.8128,  874.6301,  899.2887,
      907.5155,  881.6916,  883.0234,  926.3242,  908.9561,
      890.0731,  897.9221,  934.7324,  916.0806,  880.4300,
      931.3933,  914.5662,  901.2715,  892.5501,  916.9894,
      933.9813,  923.0823,  924.3654]])
 
 
shape=[4000, 6000]
cx,cy1=torch.rand(1,requires_grad=True),torch.rand(1,requires_grad=True)
 
cd=torch.rand(1,requires_grad=True)
ox,oy=cx,cy1
print('cx:{},cy:{}'.format(id(cx),id(cy1)))
print('ox:{},oy:{}'.format(id(ox),id(oy)))
cx,cy=cx*shape[1],cy1*shape[0]
print('cx:{},cy:{}'.format(id(cx),id(cy)))
print('ox:{},oy:{}'.format(id(ox),id(oy)))
distance=torch.sqrt(torch.pow((xP-cx),2)+torch.pow((yP-cy),2))
mean=torch.mean(distance,1)
starsFC=cd*torch.pow((distance-mean[...,None]),2)
loss=torch.sum(torch.mean(starsFC,1).squeeze(),0)
loss.backward()
print(loss)
print(cx)
print(cy1)
print("cx",cx.grad)
print("cy",cy1.grad)
print("cd",cd.grad)
print(ox.grad)
print(oy.grad)
print('cx:{},cy:{}'.format(id(cx),id(cy)))
print('ox:{},oy:{}'.format(id(ox),id(oy)))

以上这篇pytorch 自定义参数不更新方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python的Django框架中的templates设置
May 11 Python
python执行子进程实现进程间通信的方法
Jun 02 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python 将RGB图像转换为Pytho灰度图像的实例
Nov 14 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
python pandas 时间日期的处理实现
Jul 30 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 Python
详解python破解zip文件密码的方法
Jan 13 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 Python
3种python调用其他脚本的方法
Jan 06 #Python
pytorch 实现模型不同层设置不同的学习率方式
Jan 06 #Python
浅析Python3 pip换源问题
Jan 06 #Python
通过实例学习Python Excel操作
Jan 06 #Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 #Python
python与mysql数据库交互的实现
Jan 06 #Python
win10系统下python3安装及pip换源和使用教程
Jan 06 #Python
You might like
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
chrome原生方法之数组
2011/11/30 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
internal修饰符起什么作用
2013/12/16 面试题
东方红海科技面试题软件测试方面
2012/02/08 面试题
工作自荐信
2013/12/11 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
搞笑婚前保证书
2015/02/28 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
重阳节活动主持词
2015/07/04 职场文书
python编写函数注意事项总结
2021/03/29 Python
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
详解MySQL集群搭建
2021/05/26 MySQL
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技