Pytorch卷积层手动初始化权值的实例

yipeiwu_com6年前Python基础

由于研究关系需要自己手动给卷积层初始化权值,但是好像博客上提到的相关文章比较少(大部分都只提到使用nn.init里的按照一定分布初始化方法),自己参考了下Pytorch的官方文档,发现有两种方法吧。

所以mark下。

import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np

# 第一一个卷积层,我们可以看到它的权值是随机初始化的
w=torch.nn.Conv2d(2,2,3,padding=1)
print(w.weight)


# 第一种方法
print("1.使用另一个Conv层的权值")
q=torch.nn.Conv2d(2,2,3,padding=1) # 假设q代表一个训练好的卷积层
print(q.weight) # 可以看到q的权重和w是不同的
w.weight=q.weight # 把一个Conv层的权重赋值给另一个Conv层
print(w.weight)

# 第二种方法
print("2.使用来自Tensor的权值")
ones=torch.Tensor(np.ones([2,2,3,3])) # 先创建一个自定义权值的Tensor,这里为了方便将所有权值设为1
w.weight=torch.nn.Parameter(ones) # 把Tensor的值作为权值赋值给Conv层,这里需要先转为torch.nn.Parameter类型,否则将报错
print(w.weight)

效果预览

以上这篇Pytorch卷积层手动初始化权值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python3+PyQt5 数据库编程--增删改实例

python3+PyQt5 数据库编程--增删改实例

本文通过python3+pyqt5改写实现了python Qt gui 编程变成15章的excise例子。 #!/usr/bin/env python3 import os impo...

Python表示矩阵的方法分析

Python表示矩阵的方法分析

本文实例讲述了Python表示矩阵的方法。分享给大家供大家参考,具体如下: 在c语言中,表示个“整型3行4列”的矩阵,可以这样声明:int  a[3][4];在python中一...

基于python3实现socket文件传输和校验

基于socket的文件传输并进行MD5值校验,供大家参考,具体内容如下 文件传输分为两个类,一个是服务端,一个是客户端。 客户端发起发送文件或接收文件的请求,服务端收到请求后接收或发送文...

Django实现登录随机验证码的示例代码

Django实现登录随机验证码的示例代码

登录验证码是每个网站登录时的基本标配,网上也有很多相应的文章, 但是从生成验证码到 应用到自己的网站上的全步骤,并没有看到很多, 为了节约大家的时间,我把整体步骤写下来, 即拿即用哈 1...

Python更新数据库脚本两种方法及对比介绍

最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新。 第一种:使用python的MySQLdb模块利用原生的sql语句进行更新 im...