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设计】。

相关文章

Python实现多并发访问网站功能示例

本文实例讲述了Python实现多并发访问网站功能。分享给大家供大家参考,具体如下: # Filename:visitweb_threads.py # Description:pyth...

基于python cut和qcut的用法及区别详解

我就废话不多说了,直接上代码吧: from pandas import Series,DataFrame import pandas as pd import numpy as np...

Python中使用copy模块实现列表(list)拷贝

引用是指保存的值为对象的地址。在 Python 语言中,一个变量保存的值除了基本类型保存的是值外,其它都是引用,因此对于它们的使用就需要小心一些。下面举个例子: 问题描述:已知一个列表,...

numpy中矩阵合并的实例

python中科学计算包numpy中矩阵的合并,需要用到如下两个函数: 列合并:np.column_stack() ,其中函数参数为一个tuple 行合并:np.row_stack(),...

使用Anaconda3建立虚拟独立的python2.7环境方法

由于一些不可预测的因素,必须使用python2.7进行开发,所以研究了一下怎么在Anaconda3下建立2.7的开发环境,发现十分方便,在此分享一下。 首先安装Anaconda3,这就不...